摘要:
题目链接动态规划题,LCS的变形。无语了,写错两个字母,WA了3次啊!#include <stdio.h>#include <string.h>#define MAX(a,b) ((a)>(b)?(a):(b))#define N 105int m[5][5]={ 5,-1,-2,-1,-3, -1,5,-3,-2,-4, -2,-3,5,-2,-2, -1,-2,-2,5,-1, -3,-4,-2,-1,-10000};char a[N],b[N],vis[N][N],la,lb;int c[N][N];int f(int x,int y){ int i,... 阅读全文
posted @ 2012-04-07 23:32
BeatLJ
阅读(136)
评论(0)
推荐(0)
摘要:
题目链接题目大意,给定一个字符串,求至少需插入多少字符使其变成回文。动态规划题。#include <stdio.h>#include <memory.h>#include <string.h> #define MIN(a,b) ((a)<(b)?(a):(b)) #define N 5001 char s[N]; int c[N]; int main() { int i,j,n,a,b; while(scanf("%d",&n)!=EOF){ getchar(); gets(s); for(i=n-2;i>=0;i-- 阅读全文
posted @ 2012-04-07 20:11
BeatLJ
阅读(270)
评论(0)
推荐(0)
摘要:
题目链接题目的模型为给定含m个数的数列,将其分为连续的n段,使每段的和的最大值最小(刘汝佳白书上有)。由于是连续的,题目就简单了,之前就是没注意到这点,想了好久都没思路。我们可以首先可以确定结果的上界和下界,然后使用二分法将这个区间不断缩小,这个过程中要判断对于一个给定的x,是否能够在x天内修完路,因为路段是连续的,所以可以使用贪心来判断,贪心策略为,从第一个数开始,将尽量多的数分配到第一段,以此类推,直至分配完成,若分配的段数大于n则无法在x天内完成,否则可以。 1 #include <stdio.h> 2 #define MAX(a,b) ((a)>(b)?(a):(b) 阅读全文
posted @ 2012-04-07 19:49
BeatLJ
阅读(236)
评论(0)
推荐(0)