摘要: 这题是学着小媛学姐写的.. 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 120 8 9 int n, np, nc, m;10 int cap[N][N];11... 阅读全文
posted @ 2014-05-25 09:47 霖‘ 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目大概意思是,有N条水沟和M个水池,问从第一个水池到最后一个水池在同一时间内能够流过多少水第一行有两个整数N,M接下来N行,每行有3个整数,a,b,c,代表从a到b能够流c单位的水超级模板题,一个有向图,源点为1,汇点为M,套最大流模板就行了我就通过这水题理解EK的... 1 #include 2... 阅读全文
posted @ 2014-05-25 09:45 霖‘ 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 大概的题意是给出n,p,一共有n个节点,问你要剩下p个节点,最少减去最少的边是多少。dp[root][i]:记录root结点,要得到一棵i个节点的子树去掉的最少边数详细解释看代码: 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 160 6 #define INF 0x3ffffff 7 8 int dp[N][N],son[N],bro[N],fa[N]; 9 int root,n,p;10 11 void dfs(int root)12 {13 int tem;14 for(int i... 阅读全文
posted @ 2014-04-11 11:27 霖‘ 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 15 6 #define mod 100000000 7 8 int map[N][N],map_num[N],dp[N][1<<N]; 9 10 bool check_raw(int num)//判断同一行上是否合法,如10110则不合法11 {12 for(int i=1; i<num; i<<=1 )//一位一位判断,每合法一位则左移一位13 {14 if((num & i) != 0 && (num 阅读全文
posted @ 2014-04-11 11:25 霖‘ 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 多重背包..看代码吧还是orz#include using namespace std;#define LEN 7#define INIT 0xffffffffint F[60001];int max(int x, int y){ return x>y?x:y;}void ZeroOnePack(int cost, int weight, int V){ for (int v=V; v>=cost; --v) { F[v] = max(F[v], F[v-cost]+weight); }}void CompletePack(int cost, int weigh... 阅读全文
posted @ 2014-04-04 12:05 霖‘ 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 设 d[ i ][ j ] 表示走到坐标为(i, j)的格子时最大的幸运值。初始化:dp[i][j]的第0行和第0列初始化为负的无穷大。。、#include #include #include using namespace std;int map[25][1005],dp[25][1005];int main(){ int t,n,m,i,j,k; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(i = 1; i<=n; i++) for(j = 1; j< 阅读全文
posted @ 2014-04-04 12:03 霖‘ 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 最长上升子序列裸题在网上看到有两种方法...一种复杂度O(N^2),一种O(NlogN)。orzO(N^2):#include#define N 1001int main(){ int n,ans; int a[N],d[N]; while(~scanf("%d",&n)){ for(int i=1; ia[j] && d[i]ans) ans=d[i]; } printf("%d\n",ans); } return 0;}View CodeO(NlogN): #include using namespace s... 阅读全文
posted @ 2014-04-04 12:01 霖‘ 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 就是找两个字符串的最长公共子序列的长度#include#includeconst int Max=1000;int res[Max][Max];using namespace std;int main(){ string str1,str2; int len1,len2; while(cin>>str1) { cin >> str2; int i,j; memset(res,0,sizeof(res)); len1=str1.length(); len2=str2.length(); f... 阅读全文
posted @ 2014-04-04 12:00 霖‘ 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 求猜存钱罐中至少有多少钱。容易知道金币总的重量,接着背包。#include#includeusing namespace std;#define N 10010#define M 100000000int dp[N];int val[501],we[501];int main(){ int t; scanf("%d",&t); while(t--) { int em,fu; scanf("%d%d",&em,&fu); int n; scanf("%d",&n); for(int i=0; i<n 阅读全文
posted @ 2014-04-04 11:59 霖‘ 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 背包问题,在定容量的背包中放入物体求装满价值最大。因为每种物体数量只有1,故只有放与不放。#include#include#includeusing namespace std;#define N 3410#define M 13000int dp[M];int main(){ int n,m; int val[M],w[N]; while(~scanf("%d%d",&n,&m)) { memset(dp,0,sizeof(dp)); for(int i=1;i=w[i];j--) { d... 阅读全文
posted @ 2014-04-04 11:58 霖‘ 阅读(193) 评论(0) 推荐(0) 编辑