摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2159#include<cstdio>#include<cstring>#definemax(a,b)a>b?a:busingnamespacestd;intdp[105][105];structpage{intw;intv;}pg[105];intmain(){intn,m,k,s,i,j,h;while(~scanf("%d%d%d%d",&n,&m,&k,&s)){for(i=1;i<=k;i++)scanf(&qu 阅读全文
posted @ 2011-11-17 22:15 追逐. 阅读(280) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2191 转化为01背包问题,只是将原来的放或不放第i件物品改为放几件第i件物品。#include<cstdio>#include<cstring>#definemax(a,b)a>b?a:busingnamespacestd;intdp[105];structpage{intweight;intvalue;intnum;}pg[105];intmain(){intt,n,m,i,j,k;scanf("%d",&t);while(t--){scanf(& 阅读全文
posted @ 2011-11-14 23:14 追逐. 阅读(246) 评论(0) 推荐(0) 编辑
摘要: poj又很英勇的挂掉了,无奈。。再挂上几次我就转战zoj! 今天刷了几道最小生成树,都是用prim写的#include<cstdio>#include<cstring>#defineamin(a,b)a<b?a:b#defineMAX99999999usingnamespacestd;intmap[105][105];inti,j,k;intprim(intn){intdis[105];intx=1;intsum=0;memset(dis,127,sizeof(dis));dis[1]=0;for(i=2;i<=n;i++)if(map[x][i]!=0)d 阅读全文
posted @ 2011-10-22 19:28 追逐. 阅读(1471) 评论(0) 推荐(0) 编辑
摘要: 今天做题卡在MEMSET函数的使用上了,本来以为int a[100]; memset(a, MAX,sizeof(a));就是将a数组全部赋值为MAX,现在才知道他的填充是以字节为单位,一般用于对字符型变量的初值进行赋值. 更详细的解说见百度百科 -->http://baike.baidu.com/view/982208.htm1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#includevoid main(){char *s="Golden Global View" 阅读全文
posted @ 2011-10-22 19:01 追逐. 阅读(250097) 评论(11) 推荐(9) 编辑
摘要: 简单二分,下限为每天花费的最大值,上限是所有天数花费的总和.#include<iostream>#include<cstdio>usingnamespacestd;intmon[100005];inti,j,n,m;intjud(intmid){ints=0,count=1;for(i=0;i<n;i++){s+=mon[i];if(s>mid){s=mon[i];count++;}}if(count>m)returntrue;elsereturnfalse;}intmain(){intans;intmax,sum;while(scanf(" 阅读全文
posted @ 2011-10-21 17:07 追逐. 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1837 用DP求解,相当与01背包。起初依然是没有想到具体的思路,看了下解题报告后发现与01背包如此接近。 从此题开始进入DP模式...#include<iostream>#include<cstdio>#include<cstring>usingnamespacestd;intdp[20][15010],C[25],G[25];intmain(){intc,g,i,j,k;while(~scanf("%d%d",&c,&g)){for(i=1;i<=c 阅读全文
posted @ 2011-10-16 20:48 追逐. 阅读(193) 评论(0) 推荐(1) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 普通trie树,只是在构建的时候统计出每个节点儿子的个数,最后直接匹配每个前缀,输出最后一个前缀字符在树中儿子的个数加一(其本身)即可。 纠结的是题目没给数据范围,tree数组开100010 RE,开200010 还是RE,一狠心开了500010,果断AC。。。代码:#include<iostream>#include<cstring>#include<cstdio>usingnamespacestd;intnum;intans;structnode{in 阅读全文
posted @ 2011-10-13 19:47 追逐. 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2141#include<iostream>#include<algorithm>#include<cstdio>usingnamespacestd;inta[505],b[505],c[505],s[1005],ans[250005];intmain(){intl,n,m,x,mid,low,high,i,j,t=1;boolflag;while(scanf("%d%d%d",&l,&n,&m)!=EOF){for(i= 阅读全文
posted @ 2011-10-12 23:46 追逐. 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3630 单纯的trie树。code:#include<cstring>#include<cstdio>charstr[100];//模式串#defineMAX26//字符集大小typedefstructTrieNode{intcount;//记录该字符出现次数boolf;structTrieNode*next[MAX];}TrieNode;TrieNodeMemory[1000000];intallocp=0;/*初始化*/voidInitTrieRoot(TrieNode**pRoot){*pRoot=N 阅读全文
posted @ 2011-10-12 22:06 追逐. 阅读(177) 评论(0) 推荐(0) 编辑
摘要: trie树——字典树 详细讲解!!又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。字典树与字典很相似,当你要查一个单词是不是在字典树中,首先看单词的第一个字母是不是在字典的第一层,如果不在,说明字典树里没有该单词,如果在就在该字母的孩子节点里找是不是有单词的第二个字母,没有说明没有该单词,有的话用同样的方法继续查找.字典树不仅可以用来储存字母,也可以储存数字等其它数据。Trie 阅读全文
posted @ 2011-10-12 11:41 追逐. 阅读(519) 评论(0) 推荐(0) 编辑