摘要: 题目链接好久没有 搞递推,这个题在DP专题,其实是赤裸裸的一维的递推,想了好一会啊。F(n)可以由第一个不放F(n-1)加第一个放第二个不放f(n-2)加。。。F(N) = F(N-1)+F(N-2)...F(N-M)删除中间输出的时候,改错了2次。。。 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 __int64 p[51]; 5 int main() 6 { 7 int bi[7]; 8 int i,j,n,m; 9 bi[0] = 1;10 for(i = 1;i 阅读全文
posted @ 2012-08-15 20:55 Naix_x 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 题目链接这种黑白问题,遇到好几次了,杭电1838和这个非常类似,这个题是他的加强版,不仅要求正方形还要求矩形的最大面积。先是两个标记数组o1,o2标记颜色不同的最大长度。sq存在正方形的最大边长正方形的状态转移就是if(p[i][j] == p[i-1][j-1])sq[i][j] = getmin(sq[i-1][j-1]+1,o1[i][j],o2[i][j]);最复杂的是矩形的最大面积。矩形分两种情况,一种是横着,一种是竖着放,开4个数组分别标记长宽。最后找最大就好。写的有点繁琐。PS:刚看了一下讨论区,我晕我的程序这么搓啊,内存多+程序跑的慢。。。 1 #include <std 阅读全文
posted @ 2012-08-15 19:22 Naix_x 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 题目大意:n个人要分成两个队,m种敌对关系,选出两个相同人数去比赛,一个人至多有两个敌人,敌对的不能在一个队伍,求最少有个人不能上场。我竟然没发现一个人至多有两个敌人这句话。。。然后就悲剧啊!!!用并查集去判断,是否存在奇数环。。研究了好一会别人代码。。才发现了那个条件,我本来以为并查集有很神的用法或者有证明神马的呢。。这就算个规律题吧。 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #include <math.h> 5 #define N 10000000 阅读全文
posted @ 2012-08-15 17:16 Naix_x 阅读(232) 评论(0) 推荐(0) 编辑