ACM
文章平均质量分 66
chenjiang492943457
软件工程本科在读。。。
展开
-
pku1386
/* * File: pku1386.cpp * 欧拉回路,判断是否有欧拉回路或者是欧拉路径 * 有向图有欧拉回路的充要条件是图必须是联通的,而且节点的出度等于入度 * 有向图有欧拉路径的充要条件是图必须是联通的,而且仅有一个点的出度比入度 * 大1,仅有一个点的入度比出度大1,其他点的入度等于出度 * * 建图:首字母连一条有向边到末字母,首字母出度加一,末尾字母入度加一 * * df原创 2010-05-11 20:49:00 · 436 阅读 · 0 评论 -
pku2060
/* * File: pku2060.cpp * Author: chenjiang * * Created on 2010年4月21日, 上午11:15 */#include #include #include #include #include #include using namespace std;#define _max 505int mapmap[_max][_max], M原创 2010-04-21 13:00:00 · 342 阅读 · 0 评论 -
pku1719
/* * File: pku1719.cpp * Author: chenjiang *做完这题,进一步加深了对匈牙利算法的理解。 * Created on 2010年4月21日, 下午5:00 */#include #include #include #include using namespace std;#define _max 1005int mapmap[_max][_max]原创 2010-04-21 19:07:00 · 365 阅读 · 0 评论 -
pku1087
/* * File: pku1087.cpp * Author: chenjiang *终于过了这题,好难建图啊。 * Created on 2010年4月18日, 下午4:02 */#include #include #include #include #include #include using namespace std;#define _max 600int mapmap[_m原创 2010-04-18 19:17:00 · 361 阅读 · 0 评论 -
pku1089
/* * File: pku1089.cpp * Author: chenjiang *贪心算法+排序 * Created on 2010年4月18日, 下午2:29 */#include #include #include using namespace std;#define _max 50005struct node { int start, end;} a[_max];原创 2010-04-18 15:07:00 · 331 阅读 · 0 评论 -
pku2584
其实就是模版题,最大流建一个超级源点和一个超级汇点,超级源点和每个选手连一条权值为1的边,每个选手和他适合的衣服连一条权值的为1的,每种size的衣服和超级汇点连一条以这种衣服的数量为权值的边。然后求最大流就行了。wa了两天啊,郁闷。一开始建图出错,后来是最大流写错了。/* * File: pku2584.cpp * Author: chenjiang * * Created原创 2010-04-16 18:55:00 · 357 阅读 · 0 评论 -
pku2349
/* * File: pku2349.cpp * Author: chenjiang * * Created on 2010年4月2日, 下午6:13 */#include #include #include #include using namespace std;#define inf 1e300#define Max_V 505int link[Max_V], s, p;doubl原创 2010-04-02 21:24:00 · 271 阅读 · 0 评论 -
pku 2446
/* * File: pku2446.cpp * Author: chenjiang * * Created on 2010年4月11日, 下午9:00 * 题目大意:一张m*n的棋盘,里面有k个洞,要你用1*2的纸能否全部盖住剩下的点 * 纸张不能重叠,不能盖住洞。 * 思路:二分匹配,相邻的没有洞的两个格子连一条边,如果最大匹配数等于剩下的 * 格子数,则能实现,否则,不能实现。 *原创 2010-04-13 17:14:00 · 361 阅读 · 0 评论 -
pku2186
/* * File: pku2186.cpp * Author: chenjiang *pku2186强联通分量的应用,题意:n头牛,m中关系, * 每种关系包括a b ,表示a认为b流行,要求图中被其他 * 所有牛都认为流行的牛的头数 * 思路:求图中强联通分量,并求每个强联通分量的出度,若 * 只有一个强联通分量的出度为0,则这个强联通分量里点的个数 * 即为所求。当出度为0的强联通分量原创 2010-04-02 11:31:00 · 390 阅读 · 0 评论 -
java Bigdecimal的应用
import java.io.*;import java.math.*;import java.util.*;public class Main{ public static void main(String[] args) { Scanner cin=new Scanner(System.in); BigDecimal a; BigDec原创 2010-04-14 13:07:00 · 283 阅读 · 0 评论 -
pku3159
/* * File: pku3159.cpp * Author: chenjiang *终于明白了图的这种表示法,head[i]后面连接的是以i为开始点的边 * 当图的顶点很多时用这种方法比较好 * Created on 2010年4月22日, 下午8:37 */#include #include #include #include #include using namespace st原创 2010-04-23 12:32:00 · 349 阅读 · 0 评论 -
pku2724
/*pku2724*/#include #include #include #include #include using namespace std;#define _max 3000int mapmap[_max][_max], N, M, my[_max];bool visited[_max], num[_max], used[_max][_max];int n, hash[_max];原创 2010-04-23 20:22:00 · 319 阅读 · 0 评论 -
hdu2216
/* * File: hdu2216.cpp * Author: chenjiang * * Created on 2010年5月9日, 下午7:33 */#include #include #include #include #include #include #include using namespace std;#define _max 25#define inf 2147483原创 2010-05-10 13:34:00 · 435 阅读 · 0 评论 -
hdu1285
/* * tuopu排序,但是要求按序号排出,按普通的拓扑排序不行,所以就只有从前往后 * 扫描,每一趟只排一条边 */#include #include #include using namespace std;#define _max 505int stu[_max];int indegree[_max];bool visited[_max];int n, m;int main() {原创 2010-05-10 19:42:00 · 919 阅读 · 0 评论 -
hdu3342
/* * File: hdu3342.cpp,拓扑排序 * Author: chenjiang * * Created on 2010年5月10日, 下午1:49 */#include #include #include #include #include #include using namespace std;#define _max 105int n, m;vectorv[_max原创 2010-05-10 14:02:00 · 943 阅读 · 0 评论 -
pku2762(Going from u to v or from v to u?)
/* * File: pku2762.cpp,判断是否为若联通图,缩点后构建新图,对新图进行拓扑排序, * 如果拓扑序列唯一,则为若联通图 * Author: chenjiang * * Created on 2010年5月8日, 下午4:05 */#include #include #include #include #include #include using namespace原创 2010-05-08 20:50:00 · 381 阅读 · 0 评论 -
hdu1269
/* * File: 1269.cpp,直接判断一个图是否是强联通图,直接带模版 * Author: chenjiang * * Created on 2010年5月8日, 上午10:53 */#include #include #include #include #include #include using namespace std;#define _max 10005bool v原创 2010-05-08 11:26:00 · 463 阅读 · 0 评论 -
hdu1878
/* * File: * 判断是否存在欧拉回路,存在欧拉回路的条件:所有顶点的度为偶数,并且图是联通的 * 判断顶点的度是否为偶数只要进行统计判断就行,判断图的联通可以用并查集,判断所 * 有的顶点是否在一棵树上。 * Author: chenjiang * * Created on 2010年5月7日, 下午1:21 */#include #include #include #inc原创 2010-05-07 13:42:00 · 1119 阅读 · 1 评论 -
数独算法
/* * File: 数独游戏算法,输入一个初始状态,如下图,0表示空 103000509 002109400 000704000 300502006 060000050 700803004 000401000 009205800 804000107 结果如图143628579572139468986754231391542786468917352725863914237481695原创 2010-05-05 13:32:00 · 667 阅读 · 0 评论 -
pku1158
/* * File: pku1158.cpp * Author: chenjiang *好长的代码啊,4012B,最短路径的应用,主要是边长是动态变化的,比较难处理。 * Created on 2010年4月22日, 下午3:37 */#include #include #include #include using namespace std;#define _max 305#defi原创 2010-04-22 19:59:00 · 377 阅读 · 0 评论 -
pku2195
/* * File: main.cpp * Author: chenjiang *最小费用最大流,直接套模版 * Created on 2010年4月23日, 下午9:17 */#include #include #include #include #include #include using namespace std;#define _max 300#define inf 3147原创 2010-04-24 12:14:00 · 422 阅读 · 0 评论 -
pku3281
又是网络流,题意:有N头牛,F种食物,D种饮料,每一头牛有自己喜欢的食物和饮料,每次一头牛要吃一种食物和一种饮料,问当给你N,F,D的值时,求最多能满足多少头牛。建图过程:把一头牛分成两头,设为左牛和右牛,当某头牛喜欢某种食物时,把食物和关联,权值为1,当某头牛喜欢某种饮料时,把饮料和牛关联,权值为 1,每一头牛的左牛和右牛关联,权值为1,最后源点和所有食物关联,权值为 1,汇点和饮料关联,权原创 2010-03-24 20:52:00 · 659 阅读 · 1 评论 -
pku1149
一道最大流的题目,题意大概是:某某人有m个猪圈,有n个顾客,顾客要买猪,每个顾客手头有若干个猪圈的钥匙,每个顾客只能买他有钥匙的那个猪圈的猪,顾客买猪有先后顺序,问能卖出最多多少猪。主要是建图,当当前顾客能打开的猪圈在以后某个顾客也能打开时,在当前顾客和那个顾客之间连一条边,权值为无穷大。/* * File: pku1149.cpp * Author: chenjiang * * C原创 2010-03-24 19:06:00 · 459 阅读 · 0 评论 -
hdu1754_I Hate It(线段树)
/* * File: main.cpp * Author: Administrator * * Created on 2010年1月25日, 下午7:33 */#include #includeusing namespace std;#define N 200005struct Node { int l, r, _max;} Tree[N * 3];int A[N];int原创 2010-01-25 20:14:00 · 275 阅读 · 0 评论 -
pku2823_Sliding Window
一开始用线段树写的,超时,后来看了看大牛的双端队列版的,勉强过了,好艰辛啊。不过通过这题了解了双端队列,还是有很大收获的。线段树版(超时版)/* * File: main.cpp * Author: Administrator * * Created on 2010年1月24日, 下午2:03 */#include #includeusing namespace std;#def原创 2010-01-25 15:10:00 · 325 阅读 · 0 评论 -
pku2251(广度优先搜索)
我是用广搜做的,可是TLE,很郁闷,现在还没找出错误来。。。。。TLE的代码:/* * File: main.cpp * Author: Administrator * * Created on 2010年1月27日, 上午11:51 */#include #include#include#includeusing namespace std;#define Max_Size 3原创 2010-01-27 13:40:00 · 382 阅读 · 0 评论 -
hdu1698_Just a Hook(线段树)
开始超时,后来请教了hdu的大牛才过自己的超时版:/* * File: hdu1698.cpp * Author: Administrator * * Created on 2010年1月25日, 下午8:24 */#include #includeusing namespace std;#define N 100005struct Node { int l, r, s原创 2010-01-25 22:05:00 · 416 阅读 · 0 评论 -
pku2352——Stars(经典树状数组的应用)
/* * File: main.cpp * Author: Administrator * * Created on 2010年1月25日, 上午11:05 */#include #includeusing namespace std;#define N 32005int in[N], a[N];int n = N;int Lowbit(int x)//x转化为二进制时末尾0的原创 2010-01-25 11:36:00 · 434 阅读 · 0 评论 -
hdu 1166_敌兵布阵_线段树版
刚才用树状数组做了下,发现可以用线段树,试着写了写,果然可以。。。。。。。/* * File: main.cpp * Author: Administrator * * Created on 2010年1月24日, 下午7:26 */#include #include#includeusing namespace std;#define N 50005struct Node {原创 2010-01-24 20:29:00 · 322 阅读 · 0 评论 -
hdu 1166_敌兵布阵
题目大意:敌兵有N个军营,排成一排,a[i]表示第i个军营的人数,有几种操作,当输入的是“Query i j”时,表示从第i个军营到第j个军营的人数总和,当输入 Add i j,表示第i个军营加入j个人,当输入 Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30);思路:树状数组/* * File: main.cpp * Author: Administra原创 2010-01-24 19:09:00 · 293 阅读 · 0 评论 -
pku 3264Balanced Lineup
题目意思是:给你一组数,在给你一个范围,要你求这个范围里最大值与最小值的差。思路:用线段树做,节点保存线段的左右端点,最大值和最小值。/* * File: main.cpp * Author: Administrator * * Created on 2010年1月23日, 下午4:02 */#include #include using namespace std;#defin原创 2010-01-24 11:07:00 · 303 阅读 · 0 评论 -
123456789
/* * File: main.cpp * Author: Administrator * * Created on 2010年1月22日, 下午12:02 */#include #includeusing namespace std;void Insertion_Sort(int *a,int n){ int i,j,key; for(j=2;j { k原创 2010-01-23 13:00:00 · 373 阅读 · 0 评论 -
pku2367(拓扑排序)
这是一道赤裸裸的拓扑排序,题意是:首先输入n个点,表示有向图中有n个点,接下来n行,每行输入几个数字,第i行的数字表示顶点i个后继节点,当数字为0时,表示i点没有后继节点了。要求这个有向图的拓扑序列。思路:要求有向图的拓扑序列,就要对图进行搜索,所以这个算法是基于图的搜索的,可用深搜,也可用广搜基于深搜的代码:(栈为辅助数据结构)/* * File: main.cpp * Aut原创 2010-01-26 15:39:00 · 571 阅读 · 0 评论 -
pku2828,2182
有关逆序的pku2828/* * File: main.cpp * Author: Administrator * * Created on 2010年1月26日, 下午7:22 */#include #include#includeusing namespace std;#define N 200005struct Node{ int l,r,num;}Tree[3*N]原创 2010-01-26 19:55:00 · 350 阅读 · 0 评论 -
hdu 1004 (字符串哈希函数的应用)
/* * File: hdu1004.cpp * Author: chenjiang *字符串哈希函数的应用 hdu 1004 * Created on 2010年3月24日, 下午1:32 */#include #include #include using namespace std;char ch[1000],ch1[1000];int a[1005];//RS哈希unsigned原创 2010-03-24 13:43:00 · 521 阅读 · 0 评论 -
hdu 1720
把十六进制转化为十进制,并进行加法运算#include#includeusing namespace std;int fun(char ch){ if(ch>=0&&ch else { ch=toupper(ch); return ch-A+10; }}int fun2(int k){ int i,ans=1; for(原创 2010-01-08 20:19:00 · 410 阅读 · 0 评论 -
hdu 1719
复习中,看书看烦了,刷水题解闷。。。。。#include#includeusing namespace std;int main(){ int n,i,j; while(cin>>n) { if(n==0){cout n++; while(n!=1) { if(n%2==0)n/=2;原创 2010-01-08 20:17:00 · 819 阅读 · 2 评论 -
整理的高精度算法
以前做过一些高精度的题目,可以用java的BigInteger,但是运行时间长,还是用C写高精度好,整理出了几种常用的。主要思想是用数组保存数字。 //a=a*b 大整数a* 整数 b , M进制 void mult(int *a,int b){ int w,i; int M=10000; w=a[0];a[0]=0; for(i=1;i原创 2010-01-04 21:19:00 · 334 阅读 · 0 评论 -
pku 1125—Stockbroker Grapevine
/*floyd算法 */#include#includeusing namespace std;#define L INT_MAXint a[105][105],max0[105];void floyd(int n){ int i,j,k; for(k=1;k for(i=1;i for(j=1;j {原创 2010-01-02 18:17:00 · 281 阅读 · 0 评论 -
hdu1217(汇率兑换问题)-用bellmen_ford算法
/* * File: hdu1217.cpp * Author: chenjiang * * Created on 2010年3月13日, 下午7:56 */#include #include #include #include using namespace std;#define Max_E 1000#define Max_V 50mapmapmap;string str, str1原创 2010-03-13 20:47:00 · 742 阅读 · 0 评论