- 博客(17)
- 收藏
- 关注
原创 HDU 1864 01背包
#include #include #include #include using namespace std;const int maxn=5000005;int f[maxn];int num[50];double q;int t;int main(){ int i,j,n,m; double x; int ta,tb,tc,r; ch
2013-09-22 20:27:06 538
原创 Codeforces Round #197 (Div. 2) A题
擦,这题有个地方搞了好久,主要是一个地方不知道,就是字符串如果定义为全局变量就是全部为 \0, 如果定义为局部变量就只有在字符串的末尾是\0;哎!解题报告:#include #include #include #include #include using namespace std;int main(){ char s[105]; int a[100],i
2013-09-21 16:29:47 423
原创 Codeforces Beta Round #25 (Div. 2 Only) A题
这题只要看懂了意思,一分钟就可以A掉,我一开始理解错了题目意思,还是我同学告诉我的,这题大概意思就是:给你一个n,然后有n个数,这n个数中,要么只有一个偶数,要么只有一个奇数,找出这一个偶数或者奇数的位置!!代码如下:#include #include #include using namespace std;int s[105];int main(){ int n
2013-09-21 15:32:29 507
原创 poj 3628 01背包
这道题目的意思看了好久,看了discuss后,写了一下,竟然WA了,后来看了别人的博客才发现与我所理解的意思刚好相反!!英语不行真命苦啊!!这里我大致说一下题目意思:输入 n 和 b,其中n是指奶牛的数量,b则是指书架的高度,然后奶牛之间叠罗汉,找出超出书架的值中取最小的!!代码如下:#include #include #include #include using namesp
2013-09-12 21:21:45 599
原创 POJ 3624 01背包入门题目
#include #include #include #include using namespace std;const int maxn=15005;int value[3500],cost[3500];int f[maxn];int n,m;void zeropack(int cost1,int value1){ for(int i=m; i>=cost1;
2013-09-12 20:27:11 654
原创 HDU 3732 多重背包
这道题目意思很简单就是:输入 N 和 C ,N是代表N行,而C是复杂性,输入一些单词,然后告诉这些单词的价值,还有这些单词的复杂性! 一开始我一看这个题目就以为是01背包,然后就马上写完,第一组测试数据过了,但是却WA!后来看别人的博客,发现用多重背包,就想想,后来想通了,首先用01背包做第一组数据之所以能过,是因为第一组数据没有给出重复的单词,如果给出重复的单词就会出现数目的问题,就不能用
2013-09-12 18:40:40 731
原创 HDU 1059多重背包
#include #include #include #include using namespace std;const int maxn=200005;int cost[10],value[10];int f[maxn];int a[7];int v;void zeropack(int cost1,int value1){ for(int i=v; i>=co
2013-09-11 22:13:52 491
原创 HDU 2191 多重背包
这道题目以前也看过,但是没学多重背包,就没做,今天做一下,思路要清晰,一定要搞清楚,谁是背包容量,这里背包容量就是所带的钱,单价是cost,粮食的重量是value,代码如下:#include #include #include #include using namespace std;const int maxn=20005;int value[maxn],cost[maxn],
2013-09-11 18:16:21 475
原创 HDU 1171 多重背包
这道题目真是各种小陷阱啊!我发现了必须看题,我一开始做时,看一下直接是以输入-1为终止条件,可是提交上去就是一直错,哎!后来看了别人代码发现是N>=0,再看一下题目的确啊!是以负整数输入为终止条件!!!还有这题就是范围不是题目所给的!一定要开大来!!!这样就能AC了!!#include #include #include #include using namespace std;con
2013-09-11 15:39:35 513
原创 HDU 2844
这是一道多重背包的题目,所谓多重背包,就是选取的物品数量有所限制,并不是像完全背包一样无限次选,也并不是像01背包一样选一次!!多重背包只要理解了这段代码就好办了:代码如下:#include #include #include #include using namespace std;const int maxn=100005;int cost[maxn],value[maxn]
2013-09-11 14:44:05 631
原创 HDU 1114 && POJ 1384
这道题目就是裸的完全背包题目,题目中还涉及到一个初始化的问题,就是恰好装满!!那么初始化就是 f[0]=0; for(i=1; i<maxn; i++) f[i]=inf;HDU 1114 & poj 1384#include #include #include #include using namespace std;const int maxn=50005;c
2013-09-10 20:04:09 565
原创 HDU 2602 01背包中两种写法
做背包题目:要注意一点就是各个数组的初始化!01背包中初始化要分两种情况:1:恰好装满,就是const int inf=0x3f3f3f3f; f[0]=0; for(i=1; i<maxn; i++){ f[i]=inf;}2:如果没有要求恰好装满!!!那就可以这样赋值!for(i=0; i<maxn; i++){ f[i]=0;}//一
2013-09-09 20:28:37 467
原创 poj 3974 HDU 3068
这两道题解法是一样,就是输出格式有点不同,不过在poj 3974 中我学到一点!HDU 3068#include #include #include #include using namespace std;const int maxn=110005;char b[maxn],a[maxnint p[maxnint main(){
2013-09-07 11:38:01 521
原创 poj 2406
原来KMP中有好多知识点啊!这题就是求周期!有一个公式:如果 len%(len-next[len])==0的话,那么周期==len/(len-next[len])否则就是输出 1代码如下:#include #include #include using namespace std;const int maxn=10000010;//这里注意不要开太大了,!int next1[
2013-09-04 19:50:30 467
原创 HDU 3746
这道题目题目意思只要看懂这一句就知道了:Just like the pictrue below, this CharmBracelet's cycle is 9 and its cyclic count is 2这道题目是KMP-----next数组的应用!利用next来求循环周期!!!代码如下:#include #include #include using name
2013-09-04 18:40:46 497
原创 HDU 1686
这道题目和hdu2087差不多,都是求匹配数,但是又有点不同,不同点在于,当找到一个匹配后,HDU 2087是一定要从该主串匹配后一位开始进行匹配,而HDU 1686 则不同,是匹配后,然后可以从已经匹配好的字符串中开始进行匹配!HDU 1686代码如下:#include #include #include using namespace std;const int maxn1=10
2013-09-04 16:05:22 732
原创 HDU 1711
这是一道KMP入门题目!直接套模板!#include #include #include using namespace std;const int maxn1=1000005;const int maxn2=10005;int next1[maxn2];int s1[maxn1],s2[maxn2];void getnext(int s2[],int lent){
2013-09-04 15:27:40 493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人