ACM的进程
这条路,注定孤单。
起风了_唯有努力生存
继续加油
展开
-
HDU3342---Legal or Not(拓扑排序。)
题目来源:http://acm.hdu.edu.cn/php?pid=3342题意在一个ACM群里,存在师傅和徒弟这两种关系,现给出m组的关系,左边的是右边的师傅,那么问,这些关系是够合法。也就是不能够出现悖论。思路简单的拓扑排序一下,按照一定的关系,可以验证是否有环的存在。代码#include<cstdio>#include<cstring>#include<algorithm>using原创 2017-08-11 16:29:05 · 275 阅读 · 0 评论 -
HDU1811---Rank of Tetris (拓扑排序+并查集(好题))
题目来源:https://vjudge.net/problem/HDU-1811题意大致题意是经过m条信息能否得到全部的排名。若是不能,输出原因,冲突或者是不确定,当冲突和不确定都有时,输出冲突。思路感觉这道题最重要的是理解题意,理解‘=’的意思,比如1=2,那么题中有说明:如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。 这样是否就可以写成:2>1的形式了呢?答案是不能。原创 2017-08-14 17:20:08 · 252 阅读 · 0 评论 -
nyoj-2357 插塔憋憋乐(贪心)
题目来源:http://acm.nyist.me/php?id=2357题意如题面所述 1.不需要保证基地内部受到保护,只要保证敌人在进入基地时受到防御塔攻击即可 2.如果一个敌人经过两个防御塔的防御的范围相切的点(如图所示),会受到两个防御塔的攻击,这里受到两个防御塔的伤害 也就是可以化成如下一个图形(原谅我语言表达能力不强) 正如上图,当大圆的弧线经过小圆的一条直径的两点的时候,是最原创 2017-09-04 10:21:00 · 399 阅读 · 0 评论 -
hdu-5532 Almost Sorted Array(最长单调不xx序列)
题目来源:http://acm.hdu.edu.cn/php?pid=5532题意定义一个序列若是最多删去一个数字,能够使得这个序列成为有序序列,那么原序列被叫做almost sorted。思路额,这道题,眼看着大牛分分钟A了,可我依旧是迷茫,拿着草稿纸急急忙忙的画着序列,左推右推,终于发现了一丝端倪,发现这道题就是一个裸的LIS,但是又由于手残,忙着上课。。。 使用nlogn的时间复杂度,用二分原创 2017-09-04 19:55:50 · 273 阅读 · 0 评论 -
nyoj-2359 巴什博弈?(模板)
题目来源:http://acm.nyist/problem.php?id=2359题意如题面所述、、最后不能再取的赢。思路参考:http://www.bubuko.com/infodetail-2287313.html找出必胜态和必败态: 若是先手面对剩下的不到a,那么就不能再取,必胜态,相应的,当剩下大于等于a且小于2*a的时候是必败态。 当x属于区间[a,2*a)的时候,那么(a+b)*k+原创 2017-09-04 21:00:58 · 257 阅读 · 0 评论 -
poj3250---Bad Hair Day(单调栈)
题目来源: http://poj.org/problem?id=3250题意有n头牛,身高不一致,从左往右排列开,每头牛都可以看到其他高度比他低的牛,当然:3,5,4这样不行,统计一下每头牛可以看到的其他牛的总和。思路利用单调栈去维护一个从左往右单调递减的区间,以O(n)的复杂度来解决这到题。 模拟一下样例: 10 3 7 4 12 2 。 输入10,3,也就是一号牛可以看到2号牛,然后输入7原创 2017-09-09 14:36:49 · 240 阅读 · 0 评论 -
poj2559---Largest Rectangle in a Histogram(单调栈)
题目来源:http://poj.org/problem?id=2559题意如题面的图所示,求最大矩形面积。思路单调栈,以O(n)左右的时间复杂度做这道题。数字输入的时候维持一个自左向右单调递增的序列,模拟一下:4 2 1 4 3。 四个数,分别是2,1,4,3。 用结构体存下他们最初的宽(1),以及高度。模拟一下: 输入2的时候,存入栈,输入1,发现1比2小,那么就求出当前的最大值(2*1)原创 2017-09-11 20:08:01 · 280 阅读 · 0 评论 -
poj2680---Choose the best route(超级源点+最短路)
题目来源http://acm.hdu.cn/php?pid=2680题意A要去S,有w个起点,求最短路。思路定义一个超级源点,到达这些起点的的权值均为0,然后进行最短路。代码#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int INF=0x3f3f3f3f;int d[1000+10原创 2017-09-12 09:36:33 · 458 阅读 · 0 评论 -
hdu2586-How far away ?(最近公共祖先(LCA),离线Tarjan算法)
题目来源:http://acm.hdu.edu.cn/php?pid=2586题意从A地到B地,有且只有一条路,那么求路径。 q次询问。思路离线LCA,输入所有的关系,用邻接表进行存储,然后利用Tarjan算法的思想去做这道题,核心公式(假如d指的是从根节点(例如点1)到该点的距离):dis(a,b)=d[a]+d[b]-2*d[lca] 附赠一篇讲解离线查询的博客:http://www.cnb原创 2017-09-18 21:31:44 · 389 阅读 · 0 评论 -
hdu5918-Sequence I (kmp)
题目来源:http://./showproblem.php?pid=5918题意给出一个a序列,b序列,然后问在a序列中有多少个b序列,并且是以下形式: b1,b2,⋯,bmb1,b2,⋯,bm is exactly the sequence aq,aq+p,aq+2p,⋯,aq+(m−1)paq,aq+p,aq+2p,⋯,aq+(m−1)p where q+(m−1)p≤nq+(m−1)p≤n原创 2017-10-09 18:42:16 · 238 阅读 · 0 评论 -
hdu5920-Ugly Problem(强行模拟)
题目来源:http://acm.split.hdu.edu.cn/?pid=5920题意给出一个长度不大于1000的数字,要求把它分解成不多余50个回文数字的和。思路很干脆,强行模拟,好比21000,根据左右两边(借位),可以化成2 0 9 9 10,那么分离出20902,减去得:00098,去0,得:98,然后再借位:8 18,分离出数字88,相减得:0 10,进位,得:10,在考虑借位,0 10原创 2017-10-10 16:02:42 · 366 阅读 · 0 评论 -
uva7511 Multiplication Table (模拟+特判)
题目来源:https://cn.vjudge.net/UVALive-7511题意:给出一个乘法表,假设是a[][],那么a[i][j]=i*j。然后呢,主人公梦见了其中的一部分乘法表,但是有些他忘记了,他想问下他记得的数字是否正确,除了问号。思路:分为三种情况: 1、全是问号,那么肯定输出Yes 2、有且只有一个数字,那么我么就要判断下边界问题,也就是找到这个数字的横纵坐标,求出它的所有因子组原创 2017-10-16 11:00:38 · 279 阅读 · 0 评论 -
nyoj1115-士兵杀敌(二)(线段树单点更新,区间求和)
题目来源:http://acm.nyist.me/OJ/pid=1115题意中文题意,。思路学完了数据结构的树这一节,对区间这种问题有了一定的了解,自己手打。。。这应该算是模板。。。代码#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int maxn=1000000;int tr原创 2017-10-18 21:47:31 · 307 阅读 · 0 评论 -
nyoj119-士兵杀敌(三)(线段树,最大最小值)
题目来源:http://acm.nyist/problem.php?pid=119题意中文题意。。。思路利用二叉堆的特点,写二叉搜索树(线段树),但貌似耗时比RMQ长。 并且还超时了几发,对比了两次的代码,发现只是query里多定义了一个变量,而已。。。导致超时。代码#include<stdio.h>#include<string.h>#include<algorithm>using nam原创 2017-10-19 13:45:26 · 202 阅读 · 0 评论 -
nyoj1122-士兵杀敌(四)
题目来源:http://acm.nyist.melem.php?pid=1122题意中问题意。。。思路貌似是延迟标记,,,自己手打,,,并没有什么模板。。。 解释下延迟标记,如果单点更新会的话,就会知道一个节点更新需要O(logn)的时间,如果是一个区间更新,如果还是每次每个节点都更新,最坏的时间复杂度是O(n*nlogn),那么就会不那么理想。 这里,好比样例1,我要更新1-3,那么我开始遍历原创 2017-10-20 11:06:12 · 195 阅读 · 0 评论 -
cf612D-The Union of k-Segments(思路题(类似扫描线))
题目来源:http:///contest/612/problem/D题意在一个Ox的横轴上给出好多闭区间,问被这些闭区间覆盖k次或者k次以上的点的最少的区间的个数,以及区间。思路假设存在与y轴平行的一条线(无穷远处),然后从至右依次遍历这些点,遇到一个左边界,就+1,遇到右边界就-1,一旦有大于等于k的就存起来,由于不知道他有多少段符合条件的区间,所以用vector存下较为合适,其中pair的作用类原创 2017-10-31 17:10:16 · 288 阅读 · 0 评论 -
cf873B-Balanced Substring(前缀和)
题目来源:http:///problemset/problem/873/B题意给出以一个01串,其中他的子串只要拥有同样数目的0和1,那么就被称为平衡串。问,给出的串的最长平衡穿的长度是多少思路起初在本子上写下了三种思路。。(菜。。。) 前缀和,滑动窗,动态规划 然后前缀和这个思路只是简单的把0变成-1之后我就没再看见思路。。。(好菜) 接下来的两种自然也是没什么方法(太弱了。。。) 最后,原创 2017-11-02 19:12:41 · 503 阅读 · 0 评论 -
poj1151-Atlantis(线段树+扫描线(经典题))
题目来源:http://poj.org/problem?id=1151题意在二维坐标系上,给出多个矩形的左下以及右上坐标,求出所有矩形构成的图形的面积。思路第一次接触扫描线。。。(弱) 好吧,我承认我会了。。。 咳咳,,推荐另外一道题(进行扫描线入门),做完这道题就会知道,一个区间的左端点是1,右端点是-1,那么就不用考虑那么多复杂的情况了。 相应的,在这道题里,假设以和x轴平行的作为扫描线,原创 2017-11-03 15:14:18 · 1852 阅读 · 0 评论 -
poj2528-Mayor's posters(线段树,区间,离散化)
题目来源:http://poj.org/problem?id=2528题意在足够的矩形图形上贴海报,给出每张海报的左右边界,另外,海报之间相互覆盖,问,最后还能看到多少张海报。(看见一点就可以认为符合要求)思路线段树进行延迟标记,最后一遍递归遍历最后的节点的标记,记录下所有标记得种类数目。 用到的技巧: 离散化。 这里的离散化比较特殊,请看(借用大佬的样例): 1~10 1~3 7~10原创 2017-11-07 20:14:33 · 199 阅读 · 0 评论 -
poj2828-Buy Tickets(线段树,单点更新)
题目来源:http://poj.org/problem?id=2828题意一群人在排队,,,天依旧黑着,,所以每个人都想插队,。,(反正天黑也瞅不见,。机智boy)。。完了之后输出最后的队列就好。,,。。思路越往后的插队得位置越接近最终的状态,那么按照样例: 1 77 2 51 2 33 3 69 前面的位置都加上了1,代表他前面有几个空位置,那么先插入倒数第一个。。插入完成后是这:(空格原创 2017-11-08 13:36:44 · 239 阅读 · 0 评论 -
poj-2481 Cows(线段树,思路)
题目来源:http://poj.org/problem?id=2481题意在一个农场里,有n头牛,每头牛呢,喜欢吃一定范围的草,把范围看成一条直线,那么给出n头牛各自的区间。 然后,农场主给出了一个定义,强牛与弱牛(想对来说),Given two cows: cowi and cowj, their favourite clover range is [Si, Ei] and [Sj, Ej].原创 2017-11-10 16:44:20 · 292 阅读 · 0 评论 -
hdu1045-Fire Net(匹配,增广路,思路)
题目来源:http://cn/showproblem.php?pid=1045题意在边长不超过4的方阵里,存在黑色的块和无色的块,在方阵里放置一种碉堡,能够朝向上下左右发射炮弹,那么为了使碉堡之间不能够相互攻击,最多放几个碉堡。思路有了这张图,一切好说: 这是样例1,能够放置碉堡的组合。 比如,如果x2和y2组合了,那么就不能和y3组合了。所以这个时候问题就转化成了二分匹配。代码#inclu原创 2017-11-13 09:51:27 · 277 阅读 · 0 评论 -
hdu2819-Swap(二分图匹配,思路)
题目来源:http:///showproblem.php?pid=2819题意给出一个被0和1填充的矩阵,那么怎么通过行与行或者列与列交换得到主对角线的数字都是1。输出过程,如果不能,输出-1。、思路算不上思路吧,这道题错了8次才过。主要是做题的时候一点点心得体会。 初看这道题,朦朦胧胧,思路出来了,但是不敢写,总感觉是想简单了。。。然后自己推了几组数据,发现可以。 列举了几个矩阵之后发现只要是原创 2017-11-13 23:20:00 · 198 阅读 · 0 评论 -
hdu4185-Oil Skimming(二分图,模板)
题目来源:http://a/showproblem.php?pid=4185题意给出一个由’.’和’#’构成的矩阵,#代表油田,为10*10,问,每次挖10*20的油田,最多挖几次。思路这道题思路很简单,给每个油田编号,然后把它四周有关系的标记,然后问题就转化成了两两匹配,最多能匹配多少组,那么1和2是一组,2和1也是一组,所以,最后结果要除以2。 这道题证明了一个问题,在深搜的过程中去除vis标原创 2017-11-14 10:18:43 · 221 阅读 · 0 评论 -
poj3041-Asteroids(最小点覆盖,最大匹配)
题目来源:http://poj.org/problem?id=3041题意在一个n*n的矩阵里,有k个位置有障碍,此时手里有一把枪,每次可以消灭一行或者一列障碍,那么最少需要几次才可以消灭干净。,思路这道题用行和列构建二分图,如果某行和某列的交点是障碍,就把行列相连,那么问题就转化成了最小点覆盖的问题,最大匹配即可。。。代码#include<cstdio>#include<cstring>#in原创 2017-11-14 13:45:52 · 272 阅读 · 0 评论 -
hdu1051-Air Raid(DAG的最小路径覆盖,匹配问题)
题目来源:http://acm.hdu.edu.cn/hp?pid=1151题意在一个DAG(有向无环)图上,编写程序求最小数量的伞兵,这些伞兵可以访问所有的点。思路DAG图最小路径覆盖问题: 用尽量少的不想交的简单路径覆盖图上所有的点。, 转化: 完美。。。这个时候就可以求最大匹配。 答案=点的个数-最大匹配。(定理。。。)代码#include<cstdio>#include<c原创 2017-11-14 14:22:21 · 316 阅读 · 0 评论 -
hdu1068-Girls and Boys(最大独立集,匹配问题)
题目来源:http://showproblem.php?pid=1068题意有那么一堆人,编号从0开始到n-1,每个人都有几个有关系的人,研究者试图找出没有缘分同学的最大集。输出数量。思路利用匈牙利匹配求出最大匹配,因为是求得两个人之间的,所以最后结果要除以2,求出最大匹配,然后最大独立集的元素数量=总个数-最大匹配代码#include<cstdio>#include<cstring>#incl原创 2017-11-14 16:10:52 · 248 阅读 · 0 评论 -
poj3020-Antenna Placement(最小路径覆盖问题,最大匹配)
题目来源:http://poj.org/problem?id=3020题意为城镇安装无线网络(WI-FI),给出一个矩阵,矩阵里的’*’代表房子,然后’o’代表空地,也就是不是房子,然后一个无线覆盖的范围是挨着的两个房子(不可以斜着),然后问,最少需要多少个无线。。。思路这道题采用了拆点的思想,然后给重新分成两部分的点集加上关系(挨着的),然后就是利用匈牙利匹配得到最大匹配,利用公式:最短路径覆盖=原创 2017-11-14 21:03:14 · 264 阅读 · 0 评论 -
hdu1054-Strategic Game (最小点覆盖,匹配问题)
题目来源:http://a/showproblem.php?pid=1054题意存在一个点集,使得每一边至少有一个端点存在于点集中。最小点覆盖指的元素最少的集合。思路依照公式,最小点覆盖=最大匹配。 但是题中我们算的是两两之间的,所以会有重复,所以最后的结果要除以2。。。(最小路径覆盖与最小点覆盖傻傻分不清、。。。), 邻接矩阵超时了。。。使用了邻接表。。。500+ms,使用Hk应该会更快。。。原创 2017-11-15 09:46:11 · 231 阅读 · 0 评论 -
poj2594-Treasure Exploration(最小路径覆盖,最大匹配,floyed(优化))
题目来源:http://poj.org/problem?id=2594题意有好多机器人去一个DAG(有向无环图)寻宝藏,问,最少放置几个才可以遍历所有点。思路这道题挑明了就是类似hdu1051的题目,求得是最小路径覆盖问题,只不过那道题的伞兵不可移动,而这里的机器人可移动,所以能够移动的话,就代表:mp[1][2]=1,mp[2][3]=1,那么mp[1][3]=1。 所以事先会利用floyed的原创 2017-11-15 10:41:43 · 180 阅读 · 0 评论 -
hdu3829-Cat VS Dog(最大独立集,匹配问题)
题目来源:http:///showproblem.?pid=3829题意动物园里,有好多小狗小猫,有那么一群孩子,他们分别有喜欢的动物和不喜欢的动物(必须种类不一样。),然后动物园要送走一些动物,那么如果送走了孩子不喜欢的动物,孩子会很开心,问最多能使得多少个孩子开心。。。思路哇,一看这题就蒙了。。(太菜太菜) 这道题其实是求最大独立集。怎么理解呢 两个孩子之间如果喜欢和不喜欢的刚好一样,哇,那原创 2017-11-15 13:29:59 · 338 阅读 · 0 评论 -
poj2289--Jamie's Contact Groups(二分多重匹配)
题目来源:http://poj.org/problem?id=2289题意电话薄利有太多人,分块整理下,已知每个人分在各自的可能的所有块里,问,使得块里的人数的最大值最小是多少。思路很显然,这是一道二分多重匹配问题,与二分匹配问题不同的是,用于存储匹配信息的一位数组变成了二维数组。 整个模拟思想与二分图最大匹配一般无二,只是,写法有点异同,这里采用的是二分枚举上限(最小值(最终结果)),然后取增广原创 2017-11-17 12:05:18 · 1125 阅读 · 0 评论 -
poj2112--Optimal Milking(二分多重匹配)
题目来源:http://poj.org/problem?id=2112题意k个挤奶机和c头牛分布在牧场上,各自的距离以(k+c)*(k+c)的二维矩阵呈现。每个机器招待牛儿上限是m头。。。为了使走的最远的牛行走的路径最短。。。。写程序进行分配。。输出最大最小值。。。思路依旧是二分多重匹配。。。 需要floyed思想去初始化机器与牛的距离。 然后就是模板。,。。。 floyed我写错了。。,。。原创 2017-11-17 18:46:38 · 224 阅读 · 0 评论 -
wannafly--猴子吃香蕉(二分)
题目来源:https://wracm/contest/26/A题意中文题意不再解释。,。。思路这是这次比赛的第二个水题,二分等差数列结果就行,。,。 但是呢,,,二分的上限我试了好多,都是wa、。。 忽然想到条件给的是x+y+z>0,并且二分的右边界是和x,y,z有关系的。。于是就是试了一发。。。r=time/(x+y+z)。 过了。。。(纪念一下)代码#include<cmath>#inc原创 2017-11-18 19:05:22 · 246 阅读 · 0 评论 -
poj3189--Steady Cow Assignment (二分多重匹配)
题目来源:http://poj.org/problem?id=3189题意题意杀。。。 额,给出了n头牛,还有b个牛圈,然后每头牛对b个牛圈内心深处有自己的评价,也就是相对来说更喜欢去哪个牛圈,有自己的排名。。。然后嘞,牛圈在牛心中的排名差计算方法为:所有牛中最大排名和最小排名之差。问最小的排名差。。。思路简单的一个多重匹配问题,就是题意不好理解,,多重匹配里有两种解法,一种使用二分范围,一种是类原创 2017-11-20 13:19:01 · 287 阅读 · 0 评论 -
hdu2255--奔小康赚大钱 (二分图最大权匹配)
题目来源:http:/showproblem.php?pid=2255题意中文题意,,,,思路这道题是一道模板题。。。 贴上两篇博客,内容是 循序渐进。,。。 no1:http://www.cnblogs.com/wenruo/p/5264235.html no2:http://dsqiu.iteye.com/blog/1689505代码#include<cstdio>#include<cs原创 2017-11-20 16:37:58 · 287 阅读 · 0 评论 -
hdu3488-Tour(最大权匹配变种)
题目来源:http://showproblem.php?pid=3488题意有一个有向图,图中包括一个或多个环,那么使用一个或者多个环的情况下将所有点进行覆盖,最小权值是多少。环:只有一个点经过两次,其余各点各经过一次思路Kuhn-Munkers算法的几种变形应用 1.Kuhn-Munkers算法是求最大权完备匹配,如果要求最小权完备匹配怎么办?方法很简单,只需将所有的边权值取其相反数,求原创 2017-11-22 14:08:01 · 271 阅读 · 0 评论 -
URAL1099-Work Scheduling(一般图最大匹配(带花树))
题目来源:https://et/problem/URAL-1099题意给出一个一般有向图,求最大匹配,并且把最大匹配的点数输出,以及匹配额点。。。思路最大匹配分为二分图最大匹配和一般图最大匹配,利用匈牙利算法或者HK算法可解,一般图最大匹配利用带花树算法可解(缩花,开花)(并查集证明是同一朵花,最近公共祖先找花。) 在增广路径的过程中,利用深搜的原理生成搜索树,假如称离根节点有偶数条边的点为偶点,原创 2017-11-25 10:47:38 · 523 阅读 · 0 评论 -
nyoj308-Substring(LCS(河南第四届省赛A题))
题目来源:http:///problem.php?pid=308题意把字符串颠倒之后,输出两个字符串最长公共子串(连续)。思路额,想着暴力。动态规划(。。。菜),中间过程记录下最大值。代码#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long lo原创 2017-11-25 18:18:38 · 196 阅读 · 0 评论 -
nyoj303-序号互换(进制转换)
题目来源:http://problem.php?pid=303题意进制转换。。数字转换字符的时候,如果取余结果是0,那么一定是Z,但是总的数一定要减1(因为借1)。思路#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;con原创 2017-11-25 19:17:38 · 308 阅读 · 0 评论