上一页 1 2 3 4 5 6 ··· 8 下一页
摘要: /* 说到底,还是并查集; 当然这题比较特殊;*/一般的并查集应该这么写: for(int i = 1; i #include #include #include #include #include #include #define maxn 2005 int father[maxn],sex[maxn]; using namespace std; int find(int x) //查找根 { if(father[x]==x) return x; else return father[x] = find(father[x]); } void Uni... 阅读全文
posted @ 2013-04-18 16:39 简洁是智慧的灵魂 阅读(159) 评论(0) 推荐(0)
摘要: /* 学习李大牛每天复习之前写过的算法,每天找一题出来做做复习; *****并查集篇*******/这还算是一道简单的并查集,思路在代码中:15MS340K#include #include #include #include #include #include #include #define x m*(i-1)+j //define 实际上是字符替换,利用这一点将题中本应该是m*(i-1)+j的地方替换为x //使得程序简洁 using namespace std; char m... 阅读全文
posted @ 2013-04-17 21:16 简洁是智慧的灵魂 阅读(122) 评论(0) 推荐(0)
摘要: /* 有关这个问题画了太多时间了; 对自己真的很失望,思维能力太差了; 庆幸的是自己坚持看懂了; 希望下次碰到能够灵活运用;*/题目其实可以转换成背包问题;由于数据是-100000~100000;所以我们取数组 dp[100000*2];我们产生一个相对坐标的概念,100000相对坐标为0;99995相对坐标为-5;x的相对坐标为x-100000;由于每组数据的属性都为价值;而对于背包的容量是无限扩展的,(题目要求的就是 背包最大能装多少价值的东西)我们对此做个变形,对于smartness (S),funness(F),将S总和作为背包的容量(可扩展),将F总和作为背包... 阅读全文
posted @ 2013-04-15 21:05 简洁是智慧的灵魂 阅读(176) 评论(0) 推荐(0)
摘要: /*一直没复习;感觉以前学的忘光了*/#include #include #include #include #include #include #include #define maxn 3500 int cost[maxn],worth[maxn]; int dp[12885]; using namespace std; int max(int a, int b) { return a>b?a:b; } void ZeroOnePack(int cost, int worth, int V) { for(int j = V; j >= cost; j--) dp[j]... 阅读全文
posted @ 2013-04-14 16:36 简洁是智慧的灵魂 阅读(143) 评论(0) 推荐(0)
摘要: 时间限制: 4000ms 内存限制: 256MB描述对于两个长度相等的字符串,我们定义其距离为对应位置不同的字符数量,同时我们认为距离越近的字符串越相似。例如,“0123”和“0000”的距离为 3,“0123”和“0213”的距离则为 2,所以与“0000”相比,“0213”和“0123”最相似。现在给定两个字符串 S1 和 S2,其中 S2 的长度不大于 S1。请在 S1 中寻找一个与 S2 长度相同的子串,使得距离最小。输入输入包括多组数据。第一行是整数 T,表示有多少组测试数据。每组测试数据恰好占两行,第一行为字符串 S1,第二行为 S2。所有字符串都只包括“0”到“9”的字符。输出对 阅读全文
posted @ 2013-04-13 16:28 简洁是智慧的灵魂 阅读(135) 评论(0) 推荐(0)
摘要: 坐标规划型动态规划题目描述:开始的位置是5;有0。1。2。。。9。10这11个点位置;馅饼的掉落位置在这11个位置中,gameboy只能接到方圆1单位的馅饼;(移动一个单位需要一秒)给出各个时间点T,馅饼掉落的位置;求最多接到多少个馅饼;(注意开始点是5);状态转移方程:dp[i][j] += max(dp[i+1][j],dp[i+1][j+1],dp[i+1][j-1])代码:#include #include #include #include #include #include #include #define N 100005 using namespace std; ... 阅读全文
posted @ 2013-04-11 19:44 简洁是智慧的灵魂 阅读(123) 评论(0) 推荐(0)
摘要: /*真伤心,学的好慢啊;脑子越来越笨了,根本转不过来;回寝室去啦~~~还需继续努力啊!*///一个长方体 衍生出3个; 对总的进行排序;保证s[i].x>s[i+1].x 如果相等,则保证s[i].y>s[i+1].y;//状态转移方程:dp[i] = max{dp[j]} + s[i].h;#include #include #include #include #include #include #include #define maxn 31 struct stone{ int x; int y; int h; }s[maxn*3]; int dp[m... 阅读全文
posted @ 2013-04-09 22:48 简洁是智慧的灵魂 阅读(128) 评论(0) 推荐(0)
摘要: 状态转移方程:num[p] = min(num[i]*2,num[j]*3,num[k]*5,num[l]*7);#include #include #include #include #include #include #include #define maxn 5900 int num[maxn]; char _th[][11] ={"th","st","nd","rd","th","th","th","th","th&q 阅读全文
posted @ 2013-04-09 18:12 简洁是智慧的灵魂 阅读(151) 评论(0) 推荐(0)
摘要: 最初写法: dp[0][0] = s1[0]==s2[0]?1:0; for(int j = 1; j = 0; i--) //********** { for(int j = len2-1; j >= 0; j--) //********* { if(s1[i]==s2[j]) //######### dp[i][j] = dp[i+1][j+1]+1; else ... 阅读全文
posted @ 2013-04-07 20:37 简洁是智慧的灵魂 阅读(150) 评论(0) 推荐(0)
摘要: 时间限制: 1000ms 内存限制: 256MB描述Alice和Bob还有其他几位好朋友在一起玩传话游戏。这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位。然后,Alice想一句话悄悄告诉第二位游戏者,第二位游戏者又悄悄地告诉第三位,第三位又告诉第四位……以此类推,直到倒数第二位告诉Bob。两位游戏者在传话中,不能让其他人听到,也不能使用肢体动作来解释。最后,Bob把他所听到的话告诉大家,Alice也把她原本所想的话告诉大家。由于传话过程中可能出现一些偏差,游戏者越多,Bob最后听到的话就与Alice所想的越不同。Bob听到的话往往会变成一些很搞笑的东 阅读全文
posted @ 2013-04-06 18:58 简洁是智慧的灵魂 阅读(202) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 8 下一页