
=====ACM=====
PaigeWw
这个作者很懒,什么都没留下…
展开
-
poj2376(贪心)
题意:问有N头牛,每头牛的工作时间不同,要工作T小时,最少需要几头牛工作。题意:即是:输入 n 个区间和 t,接着输入 n 个区间[s, e], 题意:要求找出最少的区间数覆盖区间目标区间[1, t];贪心区间问题。。。。。。#include #include #include #include using namespace std;#define N 25原创 2015-09-24 21:30:01 · 384 阅读 · 0 评论 -
UVa 12878 - Flowery Trails(最短路应用)
题意:要在所有最短路两侧放花,求出要放花的总花费。最短路可能有多条,要求出在最短路上的所有路径。然后权值相加,乘以2现在要找出所有在最短路上的路径。还是用图片理解得更清晰..........那要如何判断路径是否在最短路上呢?先看下图,由题意可知,需要求出0->8的最短路方法:1,用SPFA或Dijkstra求出从0出发的dis0数组,和从8出发的dis1数组,即可知最短原创 2015-08-11 09:59:08 · 1026 阅读 · 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 评论 -
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 评论 -
RMQ(ST 与 线段树)eg poj3264
http://blog.youkuaiyun.com/liang5630/article/details/7917702http://www.cnblogs.com/andyzhang2068/archive/2011/07/09/2101892.html原创 2015-07-31 20:06:30 · 457 阅读 · 0 评论 -
凸包应用
http://acm.hnu.cn/online/?action=problem&type=show&id=13343Around the TrackTime Limit: 1000ms, Special Time Limit:2500ms,Memory Limit:32768KBTotal submit users: 0, Accepted原创 2015-08-01 20:48:35 · 813 阅读 · 0 评论 -
poj 1068(二分图最大独立集)
二分图最大独立集,说白了还是二分最大匹配的应用二分最大匹配:虽然说是二分图,但是在应用中常常是一个集合中的----------未完------------------#include #include #include #include #include #include #define INF 10000000#define MAXN 505using namesp原创 2015-08-05 18:45:56 · 2570 阅读 · 0 评论 -
Uva12880(二分匹配)
图书俱乐部题意:每人带一本图书,和另一个人交换。当然,大家都希望能换到自己喜欢的书。题意:给出参与人数,以及一些包含2个整数的信息。例如1 2(代表1喜欢2的书)题意:判断是否所有人都能换到自己喜欢的书。简单的二分匹配。。。。。。为了加快速度,使用了自己建图的方式#include#include#include#include#includeusing nam原创 2015-08-17 15:09:51 · 409 阅读 · 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 评论 -
poj 3259 Wormholes(基础Bellman-Ford)
#include #include #include #include #include #include #include #include #include #define MEM(a,x) memset(a,x,sizeof a)#define eps 1e-8#define MOD 10009#define MAXN 505#define MAXM 5505#原创 2015-07-30 18:02:55 · 349 阅读 · 0 评论 -
uva12299 RMQ with Shifts(线段树基础)
最基础的单点更新#include #include #include #include #include #include #include #define MAXN 100000+10#define L(i) i<<1#define R(i) i<<1|1using namespace std;struct node{ int l,r; i原创 2015-08-03 19:55:12 · 370 阅读 · 0 评论 -
poj2502(SPFA+建图)
http://poj.org/problem?id=2502#include #include #include #include #include #include using namespace std;#define MAXN 2050#define MAXM 100000+10#define INF 999999999struct Node{ int t原创 2015-08-10 14:52:13 · 423 阅读 · 0 评论 -
poj1469 二分图匹配学习
匈牙利算法详解:http://blog.youkuaiyun.com/dark_scope/article/details/8880547二分图最大匹配裸题 http://poj.org/problem?id=1469#include #include #include #include #include #include #define N 1000using n原创 2015-08-04 13:06:53 · 875 阅读 · 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 评论 -
poj1328(贪心)
题意:假设海岸线是一条无限延伸的直线。陆地在海岸线的一侧,而海洋在另一侧。题意:每一个小的岛屿是海洋上的一个点。雷达坐落于海岸线上,只能覆盖d距离,题意:所以如果小岛能够被覆盖到的话,它们之间的距离最多为d。题意:求出能够覆盖给出的所有岛屿的最少雷达数目。分析:假设点A为某岛屿,求出在x轴上放雷达能覆盖A的圆心所在范围。如图,圆心在[L,R]之间分析:就将问题转换为原创 2015-09-24 20:15:37 · 1717 阅读 · 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 评论 -
poj3069(贪心)
题意:有n个点,给出你灯的照射范围d,灯必须放在这些点上。题意:求出要照亮所有的点用的灯的最小数目。分析:贪心的区间问题,简单。#include#include#includeusing namespace std;#define N 1005int data[N];bool vis[N];int main(){ int d,n; while(scanf(原创 2015-09-24 20:08:35 · 273 阅读 · 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 评论 -
贪心入门
一、二、三、四、原创 2015-09-16 22:01:18 · 396 阅读 · 0 评论 -
poj3159 {差分约束系统—>最短路)
参考:http://www.cnblogs.com/void/archive/2011/08/26/2153928.html题意:班上有n个同学,现在有一些糖要分给他们,设第i个同学得到的糖为p[i],分糖必须满足条件:题意:第i个同学要求第j个同学的糖不能超过自己k个,即p[j] - p[i] = 0。要求在满足这些条件的题意:情况下,求出p[n] - p[1]的最大值。分析原创 2015-08-20 09:39:16 · 340 阅读 · 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 评论 -
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 评论 -
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 评论 -
poj 5251(凸包 旋转卡壳)最小矩形面积
http://acm.hdu.edu.cn/showproblem.php?pid=5251集合叉积与点积的应用#include #include #include #include using namespace std;#define N 10100 #define maxdouble 1e20 struct Point{ double原创 2015-08-03 21:03:32 · 394 阅读 · 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 评论 -
hdu1863 最小生成树基础
点击打开链接#include #include #include #include #define MAXN 10005using namespace std;struct Path{ int u,v,w; bool operator<(const Path p)const{ return w<p.w; }}path[MAXN]原创 2015-07-29 19:38:31 · 376 阅读 · 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 评论 -
hdu1231最大连续子序列(简单的动态规划)
#include #include #include #include #include #include #include #include #include #define MAXN 10005using namespace std;int data[MAXN],dp[MAXN];int main(){ int N,i,j; int mx,st,e原创 2015-07-29 13:57:44 · 472 阅读 · 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 评论 -
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 评论 -
hdu1495 非常可乐(简单BFS)
点击打开链接#include #include #include #include using namespace std;bool vis[103][103][103];struct Status{ int s,n,m; int step;};int s,n,m;int half;Status st,cur,temp;bool Ok(Status s原创 2015-07-29 16:15:01 · 463 阅读 · 0 评论 -
Intrepid climber (dfs+树)
http://acm.hnu.cn/online/?action=problem&type=show&id=13309利用数组node,head建树深度遍历两次:1.找出要走到的点2.计算总代价#include #include #include #include #include #include #include #include #incl原创 2015-07-29 09:09:49 · 668 阅读 · 0 评论 -
hdu1372 Knight Moves 基础搜索(复习)
http://acm.hdu.edu.cn/showproblem.php?pid=1372BFS#include #include #include #include #include #include #include #include #include #define MAXN 100000+5#define MAX 200000using name原创 2015-07-29 10:27:23 · 458 阅读 · 0 评论 -
子集
#include #includeusing namespace std;int m,n,a[10];void comb(int k){ if(n<k) return; for (int i=a[k-1]+1; i<=n; i++) { a[k]=i; for (int j=1; j<=k;j++) printf("%原创 2014-08-12 17:49:37 · 484 阅读 · 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 评论 -
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 评论 -
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 评论 -
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 评论 -
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 评论 -
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 评论