上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 61 下一页
摘要: 题目链接:http://acdreamoj.sinaapp.com/problem.php?id=1083没什么好说的,具体看代码吧。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 int dp[11][4];//0没有3和8,1只有3,2只有8,3有3和8 7 int digit[11]; 8 9 int dfs(int pos,int have,int doing){10 if(pos 阅读全文
posted @ 2013-05-21 10:10 ihge2k 阅读(705) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1544思路:枚举中间点,分为奇数长度和偶数长度,然后向两边扩展就可以了,如果不相等,就直接跳出; 1 #include 2 #include 3 #include 4 using namespace std; 5 #define MAXN 5005 6 char str[MAXN]; 7 8 int main(){ 9 while(~scanf("%s",&str)){10 int len=strlen(str),l,r;11 int ans=len;12 ... 阅读全文
posted @ 2013-05-20 23:54 ihge2k 阅读(1416) 评论(0) 推荐(1) 编辑
摘要: 题目链接:http://acm.upc.edu.cn/problem.php?cid=1028&pid=3刚刚做的比赛的一道dp题,感觉不错,就拿出来分享一下:思路://dp[i][j][k]表示前i个字符算出的值是j并且最后一位为k(0/1)的数的个数//dp[i][j][0]=dp[i-1][j][0]+dp[i-1][j][1];//dp[i][j][1]=dp[i-1][j-1][1]+dp[i-1][j][0];下面的就简单了。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring& 阅读全文
posted @ 2013-05-20 22:24 ihge2k 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3468大牛思路:用BFS找出每一个集合点到其它可达点的距离以及这个集合点到下一集合点的距离枚举是否能从一个集合点K经过一个宝物点X到达下一个集合点(K+1).如果能的话,则path[K][X]=true;如果发现有一个集合点不可达的话,则输出-1; 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 110 8 char map[MAXN][MAXN]... 阅读全文
posted @ 2013-05-20 19:01 ihge2k 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4549思路:大牛思路:简单推导下有, a, b, a^1*b^1, a^1*b^2 .... 可以知道a,b的幂满足Fib, 然后构造矩阵快速幂...就好了.还需要个性质: A^X = A^( X mod Eular(M) ) ( mod M ) .然后我就郁闷啦,自己的代码怎么都过不了,orz...一下是wa代码,哪个大神帮忙看看: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MOD 10 阅读全文
posted @ 2013-05-20 11:02 ihge2k 阅读(641) 评论(1) 推荐(0) 编辑
摘要: 最近重新学习了一下KMP算法,然后重新做了自己的模板。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1686 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MAXN 10010 7 #define MAXM 1000010 8 char str1[MAXN]; 9 char str2[MAXM];10 int Next[MAXN];11 12 int len1,len2;13 14 void Get_Next(){15 int j=... 阅读全文
posted @ 2013-05-20 10:57 ihge2k 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4308思路:就是一般的广搜,然后要注意的地方就是位置P了,一次把所有的都入队列,然后标志置为true。别的的话就是随便搞搞就行了。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue> 5 using namespace std; 6 #define inf 1<<30 7 #define MAXN 5050 8 struct Node{ 阅读全文
posted @ 2013-05-19 19:50 ihge2k 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4548思路:打表什么的没有什么技巧性可言,最后二分的时候得小心返回位置!!! 1 #include 2 #include 3 #include 4 using namespace std; 5 bool mark[1000010]; 6 int num[1000010]; 7 int k; 8 9 int Judge(int n){10 int ans=0;11 while(n){12 ans+=n%10;13 n/=10;14 }15 ... 阅读全文
posted @ 2013-05-18 18:56 ihge2k 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2512思路:dp[i][j]表示第i张校园卡放到j本书中(保证每本书中必须至少有一张校园卡)的方案数,于是有dp[i][j]=j*dp[i-1][j]+dp[i-1][j-1](从i-1到i的状态可以在有j本书的情况下选择任意一本书放入校园卡,也可以放入放到新加进来的书中)这样的话最后只要FOR(i,1,n)sum+=dp[n][1]就可以啦(表示n张校园卡可以放入一本书或者2本书...或者n本书的情况总和)。 1 #include<iostream> 2 #include<cst 阅读全文
posted @ 2013-05-18 11:21 ihge2k 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1983思路:算得上是暴力解放了。。。orz...由于最多封锁4个区域,因此直接dfs枚举,bfs暴搜即可!!!跑了将近4000ms啊... 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue> 5 using namespace std; 6 #define MAXN 10 7 struct Node{ 8 int x,y,time; 9 int ke 阅读全文
posted @ 2013-05-18 11:21 ihge2k 阅读(220) 评论(0) 推荐(0) 编辑
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 61 下一页