ACM_想法题
文章平均质量分 77
TK13
你在凝视深渊的时候 深渊也在凝视着你
展开
-
hdu4415 不错的想法题
题意: 一个人他有一定的血,有一些怪物,他去杀怪物,有的怪物杀死他后还可以在不费自己血的情况下任意杀死一些怪物,问你他最多杀死多少怪物,在最多杀怪前提下最好用多少血,(大体题意是这样).思路: 首先我们把怪物分成两个集合,A一个是杀死他后可以免费杀死其他人的,B另一个是杀死他后不能免费杀死其他人的,分析下我们会发现,A集合我们只要杀死其中一个人就可原创 2014-02-27 19:17:48 · 864 阅读 · 0 评论 -
hdu4791水题
题意: 打印东西,给你区间和每个区间的价格,然后输入任务张数,输出最少花费.. 题解: 昨晚的小测试就有这个题目,当时蒙B了,怎么也读不懂题目,一直纠结怎么把150拆成100 + 50,有的同学还说是什么dp什么的,吓的我尿了,难题? 后来回去想了下,dp毛线,就是个水题,题目中有一个条件很关键,就是范围越来越大,单价越来越低,所以直接开一个数组,min[原创 2014-03-10 11:30:23 · 976 阅读 · 0 评论 -
codeforces 229C
题意: http://codeforces.com/problemset/problem/229/C 给你一个全图,分成两部分,问你这两个途中一共有多少个三角形.思路: 如果是一个完整的全图,那么三角形的个数就是 C(n中取3),那么答案就是C(n中取3)减去被破坏的三角形个数,这个题目关键的一点就是全图,全图中的每一个点的度数都是n原创 2014-03-12 14:39:56 · 678 阅读 · 0 评论 -
hdu4022 map+multiset
题意: 给你一些敌人的坐标,每次让你删除某一行或者某一列,问你每一次操作能删除多少人.....思路: map和multiset的完美结合,吧set定义到map里,达到一个一对多的效果,其实就是实现一个一维multi数组,可以随时查询长度的数组,同时用map还可以达到离散化的效果,开两个数组,表示 markx[] ,marky[], x所在行 和 y所在列的元原创 2014-03-16 17:08:40 · 831 阅读 · 0 评论 -
hdu3870 基于最短路的最小割
题意: 给你一个平面图,让你输出(1,1),(n ,n)的最小割..思路: 看完题想都没想直接最大流,结果TLE,想想也是 G,这样的图超时不冤枉,后来在网上看了题解,都说是什么论文题目,果断去看论文结果没看懂,后来看了下别人的理解,自己再画画图大概知道是什么意思了,果断是看着没有证明的证明容易懂啊.. 把最小割转换成最短路是有限制条件的,就是这个原创 2014-04-30 20:53:48 · 608 阅读 · 0 评论 -
hdu4685 最大匹配可能性
题意: 给你n个王子和m个公主,每个王子可以和自己喜欢的公主结婚,问你在不影响最大匹配的前提下每个王子都可以去哪些公主.思路: 所有王子向他喜欢的公主连一条边,然后匹配一遍,之后再每个匹配的公主连一条指向娶她的王子一条边,然后对于那些光棍王子和单身公主们,其实他们可以和任意他们喜欢的人匹配,因为可以让自己幸福,然后拆散一对别人已经匹配好的,虽然不道德,但原创 2014-04-30 21:24:08 · 627 阅读 · 0 评论 -
hdu1839 二分最短路
题意: 给你n个城市,m条双向边,每条边有自己的长度和最大运输量,让你找到一条时间小于等于T的运输能力最大的那条路...思路: 刚开始以为是费用流呢,后来发现根本不是,因为根本不是在求最优和最优下的其他最优,其实这个题目可以二分最大运输量,每次都根据二分结果建图,比如对于当前的mid,枚举每一条边,如果当前边的流量大于等于mid那么就把当前边连接到图里,枚举原创 2014-03-30 18:03:50 · 643 阅读 · 0 评论 -
hdu4278 小想法
hdu4278原创 2014-03-18 15:24:04 · 738 阅读 · 0 评论 -
hdu4020简单想法题
题意: 给你一些人,这些人有很多广告,每个广告有自己的点击率和长度,每次有m组询问,问每个人点击率前K名的广告的总长度是多少.思路: 数据很大,很容易超时,总的想法还是先sort按照人,其次是点击率,这样就可以o(m)的时间吧每个广告的点击率排名搞定,然后在按照排名sort一变,就能用O(m)的时间吧sum[1--k]的答案打表出来,然后用O(1)的时间原创 2014-03-18 15:51:45 · 614 阅读 · 0 评论 -
hdu4279 找规律+小想法
题意: 蛋疼的题意,最后是泽神给我讲的题意,题意是对于一个数来说,如果他不能整除另一个数同时他和另一个数非互质,那么另一个数就是这个数的特别数,如10 的特别数有 4 6 8三个,同时题目还定义,有奇数个特别数的数是真数,现在给你一个范围,问你有多少个数字是真数.思路: 先打表,看下真实数的规律,假如当前数字是a,真实数其实就是6 到 a之间偶数的个数 + 奇原创 2014-03-19 19:24:46 · 485 阅读 · 0 评论 -
hdu2235 机器人的容器
题意:机器人的容器Time Limit: 3000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 171 Accepted Submission(s): 33Problem Description这是一个n*m的矩形,矩形的每一个单位格子上的原创 2014-04-15 21:33:50 · 817 阅读 · 0 评论 -
hdu1505 暴力或dp优化
题意: 给你一个矩阵,让你在里面找到一个最大的f矩阵..思路: 三种方法ac这到题目; 方法(1) 以宽为主,暴力 开一个数组sum[i][j],记录当前这个位置的前面有多少个连续的f,更新完这个数组时候在枚举每一个点,只处理最后一列或者sum[i][j+1] =0 的点,因为只有这样的点才可能是最大的,对于每一个要处理的点,直接往上跑和往下跑,跑的条原创 2014-04-01 20:29:25 · 596 阅读 · 0 评论 -
hdu1506 dp
题意: 给你一个图形,让你找到最大的长方形.思路: dp,开两个数组L[i],R[i],记录当前的这个点,左边连续大于等于他,和右边连续大于等于他的下标,O(n)的时间处理完这两个数组,然后枚举每一个点,如果以当前的点为长方形的高那么 now = (R[i] - L[i] + 1) * H[i],更新最大就行了...#include#defi原创 2014-04-01 20:40:25 · 514 阅读 · 0 评论 -
hdu2870暴力或者dp优化
题意: 给你一个矩阵,俩面的字母有一些转换规则,让你找到最大的相同字母字矩阵..思路: 一共有三种情况,就是a,b,c三种,我们可以分开来处理这三种情况,比如先处理a的,吧能转换成a的和a都变成1,其他都变成0,这样就和1505一样了,找到三种中最大的那个答案就是答案...接下来的看1505的吧,一模一样,我用3中方法做的就不在这里重新写了,给个那个题的题原创 2014-04-01 20:46:32 · 491 阅读 · 0 评论 -
hdu2435最大流最小割
hdu2435原创 2014-03-21 21:08:26 · 976 阅读 · 0 评论 -
hdu1007 最近点对
题意: 给你n个点,让你求最近的两个点的距离是多少.思路: 这个题目我没思路,我在网上看的是什么分治 + 鸽巢原理,分治我知道,鸽巢原理我也知道,但是这个题目就是没有证明出来他和鸽巢原理有jm关系,总之就是先以x或者y优先sort一下,然后每次枚举每个相邻点的附近5个就行了(加自己一共六个),而且这个题目的前提好像还是什么数据必须是随机产生的吧,原创 2014-05-03 18:55:29 · 440 阅读 · 0 评论 -
hdu4604 不错的子序列问题
题意: 给你一个栈,里面有n个数,和一个双头队列(空的),每次从栈里拿出一个数据,有三种选择,可以选择丢弃这个数字,也可以放到队头或者队尾,最后问你这个队列你面的最长连续非下降序列的长度...思路: 我感觉就是在1025的基础上加强了几个等级,那个题目就是二分贪心求公共子序列,这个题目的细节是用到了1025的思路的,首先我们枚举每原创 2014-04-18 21:40:03 · 499 阅读 · 0 评论 -
hdu4561 连续最大积
题意:连续最大积Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1354 Accepted Submission(s): 458Problem Description小明和他的好朋友小西在玩原创 2014-04-19 00:47:09 · 746 阅读 · 0 评论 -
hdu4768 非常规的二分
题意: n个社团给同学发传单,同学一共有1--2^31这么多,每个社团有三个数A ,B ,C ,只有满足 A ,A + C ,A + C + C ...A + KC 思路: "题目保证给的测试数据要么没有奇数的,要么只有一个是奇数个传单." ,这句非常关键,我们二分枚举1--2^31,对于mid,算出0--mid一共发出去tmp张传单,如果tmp是偶数那么原创 2014-05-06 21:03:31 · 618 阅读 · 0 评论 -
hdu2833 Floyd + dp
题意: 给你一个无向图,给你两组起点和终点,问你这两组起点和终点的最短路上最多有多少个交点...思路: 开一个数组dp[i][j]记录最短路上i,j之间的点有多少个,这个数组是根据map[][]数组更新的时候更新的,在floyd里,当map[i][j] > map[i][k] + map[k][j] 时,map[i][j] = map原创 2014-04-07 14:44:22 · 509 阅读 · 0 评论 -
hdu4268贪心
题意: 两个人有一些图片,矩形的,问a最多能够覆盖b多少张图片..思路: 明显是贪心,但是有一点很疑惑,如果以别人为主,每次都用自己最小的切能覆盖敌人的方法就wa,而以自己为主,去覆盖自己可能覆盖的最大就ac了,证明不了,总感觉这东西在孙子兵法里会有,,解题过程就是先吧两个人的所有卡片放一起以 长 小的在前面,如果 长 相等 id 大的(被覆盖那个)在前原创 2014-03-26 10:49:21 · 501 阅读 · 0 评论 -
hdu4411 经典费用里建图
题意: 给以一个无向图,0 - n,警察在0,他们有k个警队,要派一些警队去1--n个城市抓小偷,问所有吧所有小偷全抓到然后在返回0的最小路径和是多少,当地i个城市被攻击的时候他会通知i-1城市,也就是说要么同时消灭他俩,要么消灭i-1在消灭i;思路: 经典的费用流建图 ,先来一遍floyd处理下图 ,首先虚拟出来源点s ,终点t ,超级源点ss,建原创 2014-05-08 21:27:50 · 556 阅读 · 0 评论 -
hdu1466 递推
题意: 给你n条直线,不会存在三线共点,输出所有的可能交点数..思路: 这个是个地推的题目,假设当前的线段i,他里面有r条是随意的,有(i - r)条是平行的,那么当前的交点数就是 r条随意的交点数 + (i - r) * r,枚举所有的r条的交点数,mark所有的 r的交点数 + (i - r) * r,具体看代码.原创 2014-04-10 14:24:18 · 470 阅读 · 0 评论 -
1669 DINIC+二分
题意: 给你一些名单,和每个名单可以放在哪个分组里,现在要求你把所有的人都分到一个他属于的分组(之一),然后问你分组中最多的那个人数最少是多少...思路: 二分最多的最少,然后用最大流去判断分组是否合理,建图如下 s 到 所有人连一条边 流量是1 所有分组 到 t 连一条边,流量是mid 然后把所有人和自己属原创 2014-04-10 16:21:37 · 502 阅读 · 0 评论 -
hdu3313 最大流找关键点,或者最短路找关键点.
题意: 给你一个有向图,然后给你起点和终点,问你从起点到终点有多少个关键点,如果当前的这个点删除了就无法从起点到终点,那么这个点就是一个关键点..思路: 有两种做法,我用的是最大流的,另一种是先跑最短路然后搜索,不会所以不介绍另一种,最大流的很容易理解,首先我们拆点建图,每个点拆成两个点,限流是1,然后起点和终点的限流是2,点于点之间是INF,跑一遍最大流,如果原创 2014-05-05 17:05:51 · 1069 阅读 · 0 评论 -
hdu4717 三分(散点的移动)
题意: 给你一些点,这些点有各自的初始位置,移动速度和方向,问你什么时候任意两点中最长的距离最小,求时刻和此时的距离..思路: 感觉题目很赞,一开始想不到三分,因为么有办法证明他是凹性或者凸性函数,后来师傅给我说了几个特例,自己在想想瞬间明白了,其实仔细想下会发现,假设我们当前的函数是随着x,y逐渐减小的,那么此时的某一时刻占据主要角色的那两个点一定是相聚的,而原创 2014-04-27 15:57:02 · 473 阅读 · 0 评论 -
POJ 1201 差分约束(集合最小元素个数)
题意: 给你一个集合,然后有如下输入,a ,b ,c表示在范围[a,b]里面有至少有c个元素,最后问你整个集合最少多少个元素。思路: 和HDU1384一模一样,首先这个题目可以用差分约束来解决,是大于等于所以跑最长路(如果非要跑最短路建-权也可以),说下建图,首先我们把每个区间抽象出来,区间的两个端点之间的元素个数 [a原创 2014-06-03 12:18:15 · 656 阅读 · 0 评论 -
POJ 3301 三分(最小覆盖正方形)
题意: 给你n个点,让你找一个最小的正方形去覆盖所有点。思路: 想一下,如果题目中规定正方形必须和x轴平行,那么我们是不是直接找到最大的x差和最大的y差取最大就行了,但是这个题目没说平行,那么我们就旋转这个正方形,因为是凸性(或者凹性)用三分去枚举正方形的角度[0,PI/2],然后缩小范围,知道找到答案。公式是 nowx =原创 2014-06-03 19:27:53 · 1693 阅读 · 0 评论 -
ZOJ 3781 最短路(想法好题目)
题意: 给你一个n*m的矩阵,上面只有两种字符,X或者O,每次可以同时改变相同颜色的一个连通块,上下左右连通才算连通,用最小的步数把这个图弄成全是X或者全是O,题意要是没看懂看下面的样例。Sample Input22 2OXOX3 3XOXOXOXOXSample Output12HintFo原创 2014-06-05 16:01:30 · 572 阅读 · 0 评论 -
hdu4825 字典树 + 贪心
题意: 给你n个数,然后给你m组询问,每组询问给你一个数,输出n个数中与该数亦或的最大的那个数,输出的是被亦或的那个数,不是亦或后的结果。思路: 我用的是字典树+贪心,首先我们可以把前n个数拆成2进制,然后补全前导0,我是补成了34位,然后把他存在字典树中,对于每个询问,把他变成二进制,然后补全前导0,然后在把每一位都取反,在字典树上查找,查找的时候原创 2014-06-23 17:02:45 · 1223 阅读 · 0 评论 -
hdu3006 状态压缩+位运算+hash(小想法题)
题意: 给了n个集合,问你这n个集合可以组合出多少种集合,可以自己,也可以两个,也可以三个....也可以n个集合组在一起。思路: 是个小想法题目,要用到二进制压缩,位运算,还有hash,这4样加起来说明这个题目真的很不错,不废话,首先对于每个集合有k个元素,每个元素都是不大于14的,那么我们可以二进制压缩,把每个集合压缩原创 2014-07-17 10:24:16 · 482 阅读 · 0 评论 -
hdu3234 带权并查集(XOR)
题意: 给你n个未知的正整数,有三总操作 I P V P的值是V I P Q V P XOR Q = V Q K x1 x2....xk 求这k个数所有异或后的值思路: 带权并查集,感觉这个题目用的很巧,设计到以下知识,a ^ b = c ,a ^ c = b ,b ^ c =原创 2014-07-18 16:06:40 · 589 阅读 · 0 评论 -
hdu4544 优先队列(小贪心)
题意: 湫湫系列故事——消灭兔子Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1539 Accepted Submission(s): 525Problem Description 湫湫减肥 越减越肥原创 2014-07-19 16:33:34 · 756 阅读 · 0 评论 -
hdu3035 最小割转换成最短路
题意: 给你一个平面图,要求从求出从左上角到右下角的最小割。思路: 如果大意的可能直接上来一遍最大流,然后就会各种悲剧的MLE,TLE,其实这个题目可以用到有个论文里面的那个平面图最小割转最短路(hdu3870 也是这种问题),我们证明说着费劲直接给一个图片理解就行了,思路就是这张图片原创 2014-06-09 20:24:50 · 654 阅读 · 0 评论 -
hdu 3721 树的最小直径
题意: 给你一棵树,让你改变一条边,改变之后依然是一棵树,然后问你怎样改变才能让树的直径最短。这里的改变一条边指的是指把一条边长度不变,连在别的两个点上。思路: 首先求出树的直径,把直径上的边记录下来,然后在枚举这些边(枚举别的边没意义)每次枚举我的做法是后建造两棵树,我们只要在这两棵树之间连接一条边就行了,但是怎么连接呢? 我是先没别求两棵树的直径,然原创 2014-06-10 15:34:16 · 848 阅读 · 0 评论 -
hdu2482 字典树+spfa
题意: 给你一个地图,地图上有公交站点和路线,问你从起点到终点至少要换多少次公交路线。思路: 首先上面的题意说的和笼统,没说详细是因为这个题目叙述的很多,描述起来麻烦,下面说思路,做这个题首先我们要把起点和终点的坐标求出来,每次点击地图我都是记录当前现则框的坐上角坐标,最后确定图之后再加上给的x,y转换后的实际位置,这样就的到了精准的位置,然后建图,原创 2014-07-21 10:44:58 · 529 阅读 · 0 评论 -
hdu1529 差分约束(好题)
题意: 超市在每个时间都有需要的人数(24小时)比如 1 0 0 0 0 。。。。也就是说在第0个小时的时候要用一个人,其他的时间都不用人,在给你一些人工作的起始时间,如果雇佣了这个人,那么这个人就会从自己的其实时间工作8个小时后离开,给你需求和可雇佣的员工,问你满足需求超时最少雇佣多少人。思路: 经典的差分约束,之前尝试过很多次都没AC,今天终于A原创 2014-06-10 18:52:52 · 1227 阅读 · 0 评论 -
bfs+状态压缩dp
题意: 给你一个地图,问你吧所有的隧道都走完的最小费用,起点不固定,穿越隧道的时间不计,在隧道外边每移动一步花费一秒。思路: 先bfs求出所有dis[i][j](i的终点和j的起点的距离),然后在dp[i][j],i表示当前状态(二进制压缩后的状态)j表示第几个点,则更新的方程也很简单dp[i|(1做过很多,但之前的数据都很小,可以直接n!,写个原创 2014-07-21 21:03:25 · 511 阅读 · 0 评论 -
POJ2570 二进制,位运算,Floyd
题意: 给你一个有向图,两点之间有多种连接方式,然后每次询问都问你点A,B之间有哪些方式可以到达,每个小字母是一个方式.思路: 很巧妙的位运算和Floyd应用,借助Floyd的更新过程,去更新任意两组边组合起来的长边,如 map[i][j] 是由 map[i][k] 和 map[k]][j]接起来的,更新方式很容易理解,是map[i][j] = map[原创 2014-05-29 08:56:28 · 686 阅读 · 0 评论 -
POJ2226 不错的最小顶点覆盖
题意: 给你一个n * m 的矩阵,上面有" * " 和 " . " ,让你用少的木板吧所有" * "覆盖,木板宽度是1,长度随意,木板可以重叠,但是不能覆盖到" . "上。思路: 这个题目建图方式不错,回想下最基本的最小定点覆盖,也是在n * m 的矩阵上,覆盖某些点,但是可以覆盖" . "那样直接匹配行列就行了,这个如果是***原创 2014-05-29 09:17:44 · 651 阅读 · 0 评论