
hdu
PaigeWw
这个作者很懒,什么都没留下…
展开
-
hdu2191(多重背包)
多重背包基础题#include #include #include #include #include using namespace std;#define N 100#define INF 25000005int weight[N],price[N],cnt[N];int dp[N*20];int main(){ int T;scanf("%d",&T);原创 2015-08-23 10:42:34 · 334 阅读 · 0 评论 -
hdu2222(AC自动机入门)
http://acm.hdu.edu.cn/showproblem.php?pid=2222#include #include #include #include #includeusing namespace std;#define N 500010#define MAXN 1000010char str[MAXN],keyword[51];int head,tai原创 2015-08-12 09:09:35 · 334 阅读 · 0 评论 -
hdu1874(最短路:一道题学习Floyd,Dijkstra,Bellman-Ford,SPFA)
Floyd(动态规划)1,从任意一条单边路径开始。所有两点之间的距离是边的权, 如果两点之间没有边相连,则权为无穷大。2,对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比已知的路径更短, 如果是更新它。#include #include #include #include #include #define M原创 2015-07-30 13:09:47 · 493 阅读 · 0 评论 -
hdu3038,3047(带权并查集)
这两道题一模一样,代码都通用....................带权并查集和并查集偏移向量一回事儿#include #include #include #include #include #include #include using namespace std;#define N 200050int p[N],sum[N];int find(int x){原创 2015-08-13 15:40:29 · 414 阅读 · 0 评论 -
hdu2255 (二分图最优匹配)
Kuhn Munkras算法纯模板题。具体实现还不太懂,先贴模板。有空再研究。很好的参考资料:http://www.cnblogs.com/skyming/archive/2012/02/18/2356919.html#include #include #include #include #include #include using namespace std;#def原创 2015-08-06 18:50:19 · 453 阅读 · 0 评论 -
hdu3829 Cat VS Dog(二分最大独立集)
http://acm.hdu.edu.cn/showproblem.php?pid=3829详解见:http://blog.youkuaiyun.com/niushuai666/article/details/7076116写得很详细,很清楚#include #include #include #include #include #include #define INF 10原创 2015-08-06 09:49:36 · 398 阅读 · 0 评论 -
hdu4135(容斥原理)
http://acm.hdu.edu.cn/showproblem.php?pid=4135参考:http://www.cnblogs.com/kane0526/archive/2013/03/14/2795446.html#include #include #include #include #include #include >#include using nam原创 2015-08-18 11:12:09 · 457 阅读 · 0 评论 -
hdu2841(容斥原理)
http://acm.hdu.edu.cn/showproblem.php?pid=2841参考:http://www.cnblogs.com/kane0526/archive/2013/03/14/2795446.html#include #include #include #include #include #include #include using namesp原创 2015-08-18 17:27:46 · 552 阅读 · 0 评论 -
hdu1695((容斥定理+欧拉函数)或(莫比乌斯反演))
http://acm.hdu.edu.cn/showproblem.php?pid=1695详解:http://blog.youkuaiyun.com/xiaotaoqibao/article/details/5772486Yoiu can assume that a = c = 1 in all test cases.(最后这句真的是。。。。。。)#include #include #i原创 2015-08-19 16:05:22 · 502 阅读 · 0 评论 -
hdu3336(KMP+DP)
题意:求字符串中所有前缀跟其相同的子串的总个数? 同样是KMP的应用dp[i]代表的是从 最长前缀到最小前缀的匹配数#include #include #include #include #include using namespace std;#define N 200010char s[N];int dp[N];int nextval[N],len;void g原创 2015-08-20 17:56:17 · 302 阅读 · 0 评论 -
hdu3746(KMP:next数组应用)
题意:一个字符串,要求只能在字符串左右两侧添加的字符,将字符串变成最少循环2次的周期串。题意:问:需要添加多少个字符KMP:next数组的应用#include#include#include#includeusing namespace std;#define N 100010char s[N];int nextval[N];int len;void getn原创 2015-08-20 16:05:43 · 342 阅读 · 0 评论 -
hdu1711(KMP入门题)
http://acm.hdu.edu.cn/showproblem.php?pid=1711题意:从s串中如果能找出p串,则输出p串在s串的位置(两个串下标都从1开始)KMP模板题。。。。#include #include #include #include #include #include #include using namespace std;int原创 2015-08-20 14:01:09 · 419 阅读 · 0 评论 -
hdu 2896(AC自动机 简单题练习)
注意输入数据不止有数据。没什么特别的地方,用来熟悉算法。#include #include #include #include #include #includeusing namespace std;#define N 210#define M 10100bool vis[510];char str[N],page[M];int total,n_ans;int a原创 2015-08-12 14:05:39 · 274 阅读 · 0 评论 -
hdu1270(枚举)
为了做1280做了这道,WA了n次...........原理:1,由此枚举ans[2]+ans[3],求出a[1]原理:2,j从4开始,ans[1]+ans[j+1]原理:3,所以只要将ans[1~n]+a[j]除去,ans[1]+ans[j+1]]就成了最小的和原理:3,,(由此可知sum[1]=ans[1]+ans[2],sum[2]=ans[1]+ans[3](步骤1原理原创 2015-08-13 10:11:31 · 477 阅读 · 0 评论 -
hdu2519(二维完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2159题意:给出:n(还需经验升级),m(忍耐度),k(代表k组数据),s(杀怪数量限制);题意:求:升级后还剩余的最大忍耐度分析:与基础题的差别在于求解问题改变了。dp[i][j]代表杀死i个怪兽,用了j个单位忍耐度后的经验值。分析:那么当dp[i][j]>=n时,任务就完成了。如果再继原创 2015-08-24 16:30:38 · 420 阅读 · 0 评论 -
hdu3496(二维背包问题)
题意:在N张CD中选M张出来,且选中CD播放时间总和不超过L。使喜欢度总和最大。分析:简单二维01背包#include #include #include #include using namespace std;int dp[102][1002];int main(){ int T;scanf("%d",&T); while(T--){原创 2015-08-24 15:38:27 · 678 阅读 · 0 评论 -
hdu2602(01背包基础)
动态规划:背包中最基础问题题意:01背包问题分析:动态方程dp[j]=max(dp[j],dp[j-vol[i]]+val[i]);#include #include #include #include #include #define N 1005using namespace std;int val[N],vol[N],dp[N];int main(){ i原创 2015-08-22 17:46:35 · 390 阅读 · 0 评论 -
hdu1421(线性DP)
题意:n件物体里面,取2*k件(每次2件),每次疲劳度为两件物体质量差的平方,求结束后的最小疲劳度分析:dp[i][j]来表示在前i见物品中选取j对的最少花费。分析:先把重物按质量大小排序一个物品只有可能跟其质量相邻的物品一起拿,质量差的平方才最小(贪心预处理)分析:现在就可以列出动态方程dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(weight[i-2]原创 2015-08-25 10:13:56 · 384 阅读 · 0 评论 -
hdu1513(LCS简单应用)
题意:给出一个字符串,问要将这个字符串变成回文串要添加最少几个字符分析:将该字符串与其反转求一次LCS,然后所求就是n减去最长公共子串的长度。分析:但是要注意这里字符串最长有5000,dp[5000][5000]的话就会超内存.........分析:再看在LCS动态规划中,当前dp[i][j]至于dp[i-1][...]相关,就是周期为2,则dp[2][5000]就实现了#incl原创 2015-08-25 11:59:09 · 501 阅读 · 0 评论 -
hdu1159(LCS模板题)
题意:求字符串a,b的最长公共子序列的长度(LCS)。分析:LCS模板题。dp[i][j]代表a[i-1]和b[j-1]的LCS长度。分析:动态方程:if(a[i-1]==b[j-1]) dp[i][j]=dp[i-1][j-1]+1; 分析:动态方程: else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);#include #i原创 2015-08-25 11:19:50 · 421 阅读 · 0 评论 -
hdu3127(二维完全背包)
题意:给你一块X*Y的布,然后选做n个围巾,给出n个手帕的长和宽,做出每个手帕会获得相应的利润。题意:问该怎样分配这块布,才能获得最大的利润分析:切割方式就是当前选择的物品作为第一个矩形,在大矩形的右下角切,有两种切割方式。分析:每种方式有2种情况,如下:方式一:方式二:其次:一般的完全背包问题,对于物品的选择顺序是没有要求的,所以限制条件的循环和物品选择的原创 2015-08-24 19:53:16 · 612 阅读 · 0 评论 -
hdu5410(完全背包的依赖)
完全背包的依赖,属于树形DP#include #include #include #include #include using namespace std;#define N 1005#define INF 25000005int weight[N],price[N],r[N];int dp[N*2];int main(){ int T;scanf("%d",&T原创 2015-08-23 16:30:10 · 330 阅读 · 0 评论 -
hdu2577(模拟 或 DP)
http://acm.hdu.edu.cn/showproblem.php?pid=2577题意:给出n个字符串a~z||A~Z,把字符串打出来的最少按键数,且要保证结束时Caps灯灭。此题可用模拟或DP。模拟:思路简单,但是被坑住半天.........主要是自己思维有漏洞。模拟:我居然用str[100]去接字符串,WA无数。绝望之际将str[100]--->str[105]试一试原创 2015-08-25 17:21:18 · 426 阅读 · 0 评论 -
hdu3085(双向BFS)
http://acm.hdu.edu.cn/showproblem.php?pid=3085题意:erriye 梦见女友被困在迷宫里了,现在 erriye 需要去解救他的的女友题意:给出他女友和他的位置题意:迷宫里有两个ghost,每秒钟会分生出多个ghost占据在他2步之内的所有格子题意:little erriye 每秒可以移动3步题意:grilfriend每秒可以移动一原创 2015-08-26 14:57:34 · 1617 阅读 · 0 评论 -
hdu1213(并查集复习)
这道确实太简单了,复习一下。#include #include #include #include #include #include #include using namespace std; #define N 1100 #define M 5000 int p[N]; int find(int x){ return x==p[x]?x:find(p[x]);原创 2015-08-13 13:06:06 · 295 阅读 · 0 评论 -
hdu1114(完全背包)
完全背包 基础题:http://acm.hdu.edu.cn/showproblem.php?pid=1114#include #include #include #include #include using namespace std;#define N 505#define INF 25000005int weight[N],price[N];int dp[N*20];原创 2015-08-23 10:05:13 · 346 阅读 · 0 评论