摘要: 题目链接: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 阅读(578) 评论(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 阅读(199) 评论(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 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1895思路:就是先两两合并,然后排序一下二分就可以了,最后要注意的地方就是二分找到解得时候,还要看一下相邻的数是否与解相等(因为可能有多个这样的数)Ps:郁闷死了,一开始用的是long long ,然后wa到死,结果改成int就过了,而且那个1000000007也没有用,orz... 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 333 8 int num[6] 阅读全文
posted @ 2013-05-18 10:01 ihge2k 阅读(200) 评论(0) 推荐(0) 编辑