上一页 1 2 3 4 5 6 7 ··· 9 下一页
  2011年11月12日
摘要: 入门题。#include<iostream> #include<string> #define max(a,b) (a>b?a:b) using namespace std; char s1[500],s2[500]; int n1,n2; int mat[2][500]; int main() { while(scanf("%s%s",s1+1,s2+1)!=EOF) { memset(mat,0,sizeof(mat)); n1=strlen(s1+1); n2=strlen(s2+1); for(int i=1;i<=n1;i++) 阅读全文
posted @ 2011-11-12 16:31 不是我干的 阅读(116) 评论(0) 推荐(0)
  2011年11月11日
摘要: 题意:有一些价值不等的石头,要把他们均分成两份。问是否能均分。思路:多重背包入门题,价值和重量相等。总价值除于2作为背包问题的w。然后进行多重背包dp,看是否能等于w。#include<iostream> #define max(a,b) (a>b?a:b) using namespace std; const int N=200; const int W=60000; int n,w; int value[N]; int f[W]; void dp() { for(int i=1;i<=n-1;i++) for(int j=w;j>=value[i];j--) 阅读全文
posted @ 2011-11-11 10:53 不是我干的 阅读(152) 评论(0) 推荐(0)
  2011年11月10日
摘要: 算是完全背包入门题吧。#include<iostream> #define max(a,b) (a>b?a:b) using namespace std; const int inf=2001000; const int year=45; int w,n,y; struct { int interest; int w; }bond[15]; int mat[inf]; int dp(int w) { w/=1000; for(int i=1;i<=n;i++) for(int j=bond[i].w;j<=w;j++) { mat[j]=max(mat[j],ma 阅读全文
posted @ 2011-11-10 13:30 不是我干的 阅读(142) 评论(0) 推荐(0)
  2011年11月7日
摘要: 这日志算是记录一下吧。之所以比较认真对待这个小学期,是因为一个同学找我(因为这个小学期是两人一队验收)。说想认真做一下分数得高一点。然后我就答应了。我就负责编,刚开始因为12864他把管脚插错了,总是不行,刚开始我还比较急躁。觉得他连硬件电路都搭不好我怎么编,而且眼看着只剩两三天时间就验收了。好在后来电路搭好了(就一个管脚接错了而已!),而且我编程顺利,最后验收效果不错。我觉得玩起来挺爽的,加速键用着爽。算一个纪念吧。#include<avr/io.h> #include<avr/interrupt.h> #define uchar unsigned char #def 阅读全文
posted @ 2011-11-07 21:08 不是我干的 阅读(350) 评论(0) 推荐(0)
  2011年11月3日
摘要: Description一组数字,本是两两相同,但由于某种意外,一个数字消失了,请你找出失落的那个数字吧。Input多组输入,以EOF结尾。对于每组输入,第一行为一个整数n(0<n<500000,且n为奇数),接下来n行,每行一个整数pi(0<pi<int_max)。Output对于每组输入,输出一行,包括一个整数,即失落的那个数。Sample Input532443Sample Output2Hint请注意内存限制!都说很水的题目,但是我觉得还是挺巧妙的,如果不熟悉异或的话不容易一下子想出来。0和任何数字异或,如果这些数字都是成对存在的,那到最后异或的结果肯定为0.所有 阅读全文
posted @ 2011-11-03 09:12 不是我干的 阅读(220) 评论(0) 推荐(0)
摘要: Descriptiondalong的舅舅最近到外地旅游时给dalong带回来一种神奇的水果:多彩瓜。这种瓜太漂亮了,它有很多层,每一层都是一种颜色。由于多彩瓜放久了会变坏,dalong决定每天吃一层,可是多彩瓜有好多层,每天吃一层的话还没吃完多彩瓜就坏了,因为多彩瓜颜色很多,dalong把一些很相近的颜色认为是同一种颜色,这样合并颜色后多彩瓜就没有原来这么多层了,dalong就可以在多彩瓜变坏之前吃完它喽~oh,yeah。现在dalong告诉你多彩瓜最初每一层的颜色,颜色之间的关系,你能帮助他算出吃完这些瓜要几天么?注意,如果dalong认为颜色a和颜色b是同一种颜色,颜色b和颜色c是同一种颜 阅读全文
posted @ 2011-11-03 09:05 不是我干的 阅读(189) 评论(0) 推荐(0)
  2011年10月31日
摘要: 01背包第一题。刚开始开的数组为int mat[N][W],然后内存超了。然后优化成这样既可。#include<iostream> #define max(a,b) (a>b?a:b) using namespace std; //const int N=3410; const int W=13888; int mat[2][W]; int n,w; int main() { scanf("%d%d",&n,&w); int wi,di; for(int i=1;i<=n;i++) { scanf("%d%d",& 阅读全文
posted @ 2011-10-31 23:16 不是我干的 阅读(121) 评论(0) 推荐(0)
摘要: 一.01背包问题给定一个容量为W的背包。和n个物品各为wi重量和价值各为ci的物品i。(1<=i<=n)问放哪几个物品进去使总价值最大。顾名思义,01背包,01的0代表不放进去,1代表放进去。对于每个物品i都有01两种选择。如果用最原始的枚举法。从第一个物品开始对每个物品进行枚举放还是不放。这样的算法实际上是一棵n层二叉树,所以时间复杂度为(2^n)。显然应该有更好的算法来解决。从构造这个二叉树的过程中其实就可以发现。每个节点其实是一个状态,每个状态含有两个关键参数CC\WW。比如:根节点(第0层)代表任何物品都不放进去,状态参数为0\W,前者代表此时总价值0,可用背包容量为W。第 阅读全文
posted @ 2011-10-31 22:23 不是我干的 阅读(204) 评论(0) 推荐(0)
  2011年10月30日
摘要: 题意:此题最难的部分即是理解题意。注意要求得点的定义为:所有这个点能到达的点都能到达这个点。思路:强连通,缩点,找出出度为0的强连通分量集合,就是要求得点集合。#include<iostream> #define min(a,b) (a<b?a:b) using namespace std; const int N=5005; bool mat[N][N]; int dfn[N],low[N]; bool instack[N]; int indgr[N]; int outdgr[N]; int stack[N]; int sp; int index; int n,m; int 阅读全文
posted @ 2011-10-30 19:28 不是我干的 阅读(143) 评论(0) 推荐(0)
摘要: 题意:每个学校有他的对象名单。即给你一个有向图。问题一:要求信息从某些节点进去,能到达所有其它节点。求出“某些节点”这个节点集合的最小值。问题二:要求添加“某些有向边”,满足无论信息从哪个节点进入,都能传达到所有节点。求“某些有向边“这个集合的最小值。思路:先用tarjan求出强连通分量,然后缩点形成一个有向无环图。有向无环图肯定存在入度为0的节点。入度为0的节点的个数=问题1的答案。对于问题二。其实不难。注意到缩点后形成的是有个有向五环图。可以看成森林,即多棵树。查找根节点和叶子节点,即入度为0的节点和出度为0的节点。要让一棵树为连通,很直观的就可以看出,最简单的办法就是将叶子节点直接连在根 阅读全文
posted @ 2011-10-30 15:59 不是我干的 阅读(146) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 9 下一页