上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页
摘要: http://poj.org/problem?id=3600 枚举subimage第一行在image中的位置,然后在image中选取c列,若这c列中有r行和subimage相同,那么即为有解。code:#include<cstdio>#include<cstring>#include<iostream>usingnamespacestd;intvis[21];charsmap[21][21],imap[21][21];intr,c,R,C,flag;intcheck(intcr){//判断imap中是否有r行与smap相同inti,j,count=0,x=0 阅读全文
posted @ 2012-04-14 08:30 追逐. 阅读(357) 评论(0) 推荐(1) 编辑
摘要: http://poj.org/problem?id=1222 和poj 1753类似,1753是求全0或全1的步数,这题是求全0的解决方案。 当时是拿1753的代码改的,枚举步数,最多30步,这样的话状态总量就是2^30。。。 枚举第一行状态,共2^6,第一行确定了便可确定其余行,最后看末行是否全为0即可。code:#include<cstdio>#include<cstring>intmap[5][6],ans[5][6];inttur[5][2]={0,0,0,1,0,-1,1,0,-1,0};intflag;voidTur(intx,inty){for(inti= 阅读全文
posted @ 2012-04-13 11:46 追逐. 阅读(305) 评论(0) 推荐(1) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1089 递归实现的排列组合。code:#include<cstdio>intdata[20];intans[6],n;voidwork(intdiex,intaiex){inti;if(aiex==6){for(i=0;i<5;i++)printf("%d",ans[i]);printf("%d\n",ans[i]);return;}for(i=diex;i<n;i++){ans[aiex]=data[i]; 阅读全文
posted @ 2012-04-11 23:20 追逐. 阅读(173) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2058 一道简单的找规律题。 每一行中的两个相邻字符必定不同。 行从1开始,偶数行的'@'和'*'必定各占一半,奇数行分两种情况,若不全为'?',此行中第一个不为'?'的字符及其下标的奇偶决定'@'个数,若为'@'且下标为奇则'@'为i/2+1,反则为i/2。code:#include<cstdio>#include<iostream># 阅读全文
posted @ 2012-04-11 23:19 追逐. 阅读(218) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1428 今天练习赛的题目,我先读的,以为是图论,叫XSY去看,结果越弄越理不清头绪。。最后没办法只能放弃。 下午结束后才知道原来是道DP。以三辆车的位置为状态,j,k为不动的车位置,i为当前移动车的位置。dp[j,k,i]可由dp[j,k,i+1],dp[j,i,i+1],dp[k,i,i+1]移动一次达到。 另外长了个记性,以后绝对不再使用宏定义了,宏定义的取最值方法老是出错,找不出来原因。code:#include<cstdio>#include<c 阅读全文
posted @ 2012-04-11 23:12 追逐. 阅读(244) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3080 还是和3450一样的。code:#include<cstdio>//最长公共子串#include<cstring>#defineMax(a,b)a>b?a:bconstintmaxn=650;intwa[maxn],wb[maxn],wv[maxn],ws[maxn],rank[maxn],height[maxn],sa[maxn],s[maxn],loc[maxn];charstr[61],ans[101];boolvis[101];intm;intcmp(int*r,inta,intb,intl){ 阅读全文
posted @ 2012-04-10 22:16 追逐. 阅读(225) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3450 假期做过这题,当时是用KMP做的,这次用后缀数组。 把n个字符串连接起来,中间用不同的且输入串中不会出现的字符隔开,对新生成串的每个字符根据所在原子串划分区域,用Loc数组标记。 二分公共子串长度,查找相邻的后缀中是否有连续n个后缀的height值大于枚举值,且分属于n个不同的串。code:#include<cstdio>//最长公共子串#include<cstring>#defineMax(a,b)a>b?a:bconstintmaxn=805000;intwa[maxn],wb[maxn],wv[m 阅读全文
posted @ 2012-04-10 21:21 追逐. 阅读(1020) 评论(4) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2774 给两个字符串,求最长公共子串。 这里比较好处理,把两个字符串连接到一起,在中间加个分隔符。求出sa, height数组,只要得出分属于两个字符串的前缀的height值的最大值即可。 这里有更详细的说明http://hi.baidu.com/fhnstephen/blog/item/8666a400cd949d7b3812bb44.htmlcode:#include<cstdio>//最长公共子串#include<cstring>#defineMax(a,b)a>b?a:bconstintmaxn=210 阅读全文
posted @ 2012-04-08 20:11 追逐. 阅读(187) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1272 裸的并查集,注意两个地方: 1. 最后所有的点要在同一个集合中 2. 输入只有0 0时需要特殊处理code:#include<cstdio>#include<cstring>intp[100001];boolvis[100001];voidmake_set(){for(inti=1;i<=100001;i++)p[i]=i;}intfind_set(intx){if(p[x]!=x)p[x]=find_set(p[x]);returnp[x];}voidunion_set 阅读全文
posted @ 2012-04-07 13:19 追逐. 阅读(235) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4198 今天杭电热身赛的B题,读完题就上手写dfs,结果爆栈了,500*500的规模对暴力递归来说有点多。 然后就是bfs,遇到@时先放入另一队列,当当前step>que[head].step时que[head]入队(这里可以证明que[head]的step是que总的最小值)。第一个出口便为最终解。 思路就这样,结果写出来各种bug各种蛋疼。最后直接调晕了...code:#include<cstdio>#include<cstring>#defineMin(a,b)a>b 阅读全文
posted @ 2012-04-03 19:57 追逐. 阅读(381) 评论(1) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页