摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4714思路:其实就是求树的分支数,然后就是分支数*2+1(要删边,加边变成直线最后在成环)。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 1000100 8 #pragma comment(linker, "/STACK:1024000000,1024000000") 9 10 int n,ans;11 vector >G;12 13 阅读全文
posted @ 2013-09-08 21:18 ihge2k 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3905思路:dp[i][j]表示前i分钟,睡了j分钟收获的的最大价值,并记tmp_dp[i][j]为从i开始前的连续L分钟都是醒着的,并且睡了j分钟所能得到的最大价值,于是状态转移方程可以表示为:第 i 分钟睡dp[i][j]=dp[i-1][j-1];第 i 分钟醒着 dp[i][j]=max{dp[i][j],tmp_dp[i][j]}而tmp_dp[i][j]的转移方程为tmp_dp[i][j]=max(tmp_dp[i-1][j]+a[i],dp[i-l][j]+sum[i]-sum[i-l 阅读全文
posted @ 2013-09-08 20:19 ihge2k 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4708思路:由于N不大,并且我们可以发现通过旋转得到的4个对角线的点的位置关系,以及所要旋转的最小步数,然后把所有的符合条件的都加入数组中,最后排序即得。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 struct Node{ 8 int sum,step; 9 }node[11][11],ans[11][11];10 11 int n,p,k;12 int map[11][11];13 14 ... 阅读全文
posted @ 2013-09-08 19:56 ihge2k 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4715思路:先打个素数表,然后判断一下就可以了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 bool isprime[7000002]; 9 int num[7000000];10 11 int main()12 {13 int k=0;14 memset(isprime,true,sizeof(isprime));15 isprime[0]=ispri... 阅读全文
posted @ 2013-09-08 19:50 ihge2k 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://code.hdu.edu.cn/showproblem.php?pid=2412思路:这篇文章讲的很清楚:http://wenku.baidu.com/view/84164e1a227916888486d7d6.html。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 int dp[222][2];11 int flag[222][2];12 int n;13 vector >G;14 15 void 阅读全文
posted @ 2013-09-08 10:54 ihge2k 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011思路:dp[i][j]表示以i为根的子树派遣j个士兵占领的最大价值。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 111 8 9 10 int dp[MAXN][MAXN];11 int num[MAXN],val[MAXN];12 int n,m;13 bool mark[MAXN];14 vector >G;15 16 void dfs(int 阅读全文
posted @ 2013-09-08 00:13 ihge2k 阅读(174) 评论(0) 推荐(0) 编辑