上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页
摘要: 把每个方形看成一个点,如果先染a,再染b,a->b有向线,如果入度为0就可以染了。构图跟拓扑排序似的,然后搜索回溯方法跟zoj1004差不多代码:#include<iostream>#include<cstdio>#include<string>#include<cstring>#define Min(a,b)a<b?a:busing namespace std;int map[20][20],vs[20],deg[20];int n,ans;struct Node{ int x1,y1,x2,y2,c;}node[20];void 阅读全文
posted @ 2012-03-07 00:11 快乐. 阅读(217) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1655跟3107差不多代码:#include<iostream>#include<cstdio>#include<string>#include<cstring>#define Min(a,b)a<b?a:b#define Max(a,b)a>b?a:b#define MAX 20005using namespace std;int head[MAX],sumVal[MAX];int n,s_edge,ans_node,ans_cnt;bool vs[MAX];struct Edg 阅读全文
posted @ 2012-03-05 23:38 快乐. 阅读(158) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3107题意:给出n个点,n-1条边,去掉一个点(x)后形成的子树最多点 最小的点(x)以前貌似做过,现在重新用树形dfs缕缕思路代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#define Max(a,b)a>b?a:b#define Min(a,b)a<b?a:b#define MAX 50005using namespace std;i 阅读全文
posted @ 2012-03-05 13:14 快乐. 阅读(165) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3140题意:给出n个点,每个点有一个权值,给出m条边,点和边形成一棵树,求去掉一条边,两棵树最小的查是多少m条边,m给出的范围还比n大,迷惑人呐,形成树的话,就是n-1条边;由点权的范围知用到__int64;abs求绝对值函数,不能用于__int64代码:#include<iostream>#include<cstdio>#define MAX 100005#define EMAX 1000005#define Min(a,b)a<b?a:busing namespace std;int val[MAX],he 阅读全文
posted @ 2012-03-05 00:08 快乐. 阅读(215) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1324题意:省略;这个题纠结一天多了,算是了解什么叫状态吧 思路 代码都是参考别人的写的,没有加任何优化 以后了解多了再优化吧代码:#include<iostream>#include<string>#include<cstring>#include<cstdio>using namespace std;int n,m,L,dir[4][2]={-1,0,0,-1,0,1,1,0};bool map[21][21],vs[21][21][1<<14];struct State{ i 阅读全文
posted @ 2012-03-02 18:53 快乐. 阅读(202) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3894学长推荐的这个题,他预言这题可以改变俺的人生观,世界观。。。就是有几个需要注意色温地方 1 n<=10000所以用链表 2 员工标记是从 n~n-1所以 link[MAX] vs[MAX]都是错的 应是link[MAX*2] vs[MAX*2] 3 edge[MAX]数组明显开小了 edge[MAX*MAX]系统是可以接受的 (MAX=10005)代码:#include<iostream>#include<cstdio>#include<string>#include<cstring&g 阅读全文
posted @ 2012-03-02 00:16 快乐. 阅读(209) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3414题意:给出两个杯子a,b,六种操作,问能否得到c升水 如果可以求最少步数 并输出过程 否则输出impossible 值得品味的一道题代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<string> 4 #include<cstring> 5 #define Min(a,b)a<b?a:b 6 #define MAX 105 7 using namespace std; 8 int a,b,c; 9 bool vs[MAX] 阅读全文
posted @ 2012-03-02 00:09 快乐. 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 给出任意n,找出是它的任意倍数的数m,要求m必须由0,,1组成余数作为状态,初始状态是0,状态转移num[end++]=num[now]*10; num[end++]=num[now]*10+1;代码:#include<iostream>#include<cstdio>using namespace std;long long num[21000000]={0};//这里num为什么开这么大,还是不懂~int main(){ int n,now,end; while(~scanf("%d",&n)&&n) { num[0]=1 阅读全文
posted @ 2012-03-01 00:07 快乐. 阅读(162) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1523求割点,还要判断割点把图分为几部分WA了N次,if(!vs[v])chil[x]++是错误的,应为if(!vs[v]){...... if(dfn[x]<=low[v])child[x]++;代码:#include<iostream>#include<cstdio>#include<string>#include<cstring>#define nMAX 1005using namespace std;int map[nMAX][nMAX],dfn[nMAX],low[nMAX], 阅读全文
posted @ 2012-02-29 23:59 快乐. 阅读(148) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1321题意:汉语的,so good。和zoj1002差不多,递归,回溯代码:#include<iostream>#include<cstdio>#include<string>#include<cstring>using namespace std;int map[10][10];int n,k;int ans;bool judge(int x,int y){ for(int i=x-1;i>=0;i--) { if(map[i][y]==2)return 0; } for(int i= 阅读全文
posted @ 2012-02-25 02:15 快乐. 阅读(176) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页