- 博客(45)
- 资源 (63)
- 收藏
- 关注
原创 hdu1255 扫描线,矩形重叠面积(两次以上)
题意: 给你n个矩形,然后问你这n个矩形所组成的画面中被覆盖至少两次的面积有多大。思路: 和1542差距并不是很大,大体上还是离散化+线段树扫面线,不同的地方就是这个题目要求覆盖至少两次,那么假如l1:覆盖一次的区间长度,l2:覆盖至少两次的区间长度, l3:整个区间的长度,并且满足 l1 + l2 = l3,cnt为区间覆盖次数,那么在更新pushup的时候
2014-08-31 19:20:25 616
原创 hdu1828 线段树扫描线求矩形面积的周长
题意: 给你n个矩形,问你这n个矩形所围成的图形的周长是多少。思路: 线段树的扫描线简单应用,这个题目我用的方法比较笨,就是扫描两次,上下扫描,求出多边形的上下边长和,然后同理左右扫描,求出多边形的左右边长的和,然后加起来就行了,还有这个题目有一个小小的提示,就是在重边的时候记得是先加边在删边。不然会多加边(这个地方不管也能AC显然是数据弱,不信的自己找一个简单
2014-08-31 16:36:21 546
原创 hdu1542 线段树扫描线求矩形面积的并
题意: 给你n个正方形,求出他们的所占面积有多大,重叠的部分只能算一次。思路: 自己的第一道线段树扫描线题目,至于扫描线,最近会写一个总结,现在就不直接在这里写了,说下我的方法,我是离散化横坐标,然后去扫描纵坐标(反过来也行),把每一个长方形的两个宽边拿出来,按照高度排序,然后开始扫描,对于么一个区间的更新,我用的是暴力点更新,因为如果写段更新的话第二个权值没有想到
2014-08-31 16:31:20 456
原创 POJ3277 线段树段更新,点询问+二分离散化+暴力
题意: x轴上有一些矩形,问你这些矩形覆盖的面积和是多少。思路: 首先范围很大,n很小,果断离散化,然后我们就是求出任意区间的最大值作为当前区间的高,最后在算一遍答案就行了,一开始超时了,离散化的时候用map了,后来改成二分就ac了,感觉题目不是很难,明天得开始学习学习扫描线了,还不知道什么是扫描线呢。
2014-08-28 21:16:40 565
原创 hdu4291 暴力循环节+矩阵快速幂
题意: 给你一个关系式,x[n] = 3*x[n-1] + x[n-2],求x(x(x[n]))%1000000007.思路: 做这个题目要明确一点,就是对于取余操作大多数时候都会出现循环节的情况,尤其是对于像这个题目的转换公式,数据有规律递增,那么也就是说0 1 1 ....等再次出现0 1的时候也就是一定找了循环节,对
2014-08-27 20:10:44 588
原创 hdu3074 线段树求区间乘积(单点更新)
题意: 给你n个数,两种操作,(1) 把第b个数改成c (2)算出b-c的乘积,结果对1000000007取余。思路: 线段树单点更新,简单题目,不多解释,具体看代码。
2014-08-26 20:47:51 1626
原创 hdu4302 set或者线段树
题意: 一条蛇生活在一个管子里,然后管子上面的某些位置会一次出现食物,每次蛇都会吃最近的食物,吃完之后就原地不动,等待下一次吃食物,如果有两个食物距离蛇一样远并且都是最近的,那么蛇不会掉头,而是直接按他最后停留的方向走,去吃自己前方的食物,最后给一些命令,问蛇一共走了多少路。思路: 看完一下就想到了set,结果
2014-08-26 16:32:53 758
原创 hdu1353 小暴力
题意: 题意是给你一个数,然后你有0.25,0.1,0.05,0.01的四种面额若干,让你求出最小的钱币纸张。思路: 对于这种题目要自己观察两样东西,一个是四种面额之间的关系,两一个就是数据范围,这个题目虽然说每个面额最多100张,但是自己算算根本不会全都达到这个数目,最大的总金额是5元=20*0.25=50*0.1,说到这懂了吧,直接暴力就行了,对于这样的
2014-08-25 20:14:57 537
原创 hdu4974 简单题
题意: 一个人看比赛,这些比赛一共有n个人参与,每一场有两个人比,然后每一场之后这个人都会给比赛的这两个人打分,最多1最少0,比如看完了A,B两人比赛,他可能给这两个人分别的分数是00,11,01,10,最后给你每个人的得分,问你他至少看了多少场比赛。思路: 水题,如果什么都不考虑的话,最少的比赛场数应该是(sum+1
2014-08-25 15:52:16 383
原创 hdu4975 行列和构造矩阵(dp判断唯一性)
题意: 和hdu4888一样,只不过是数据加强了,就是给你行列的和,让你构造一个矩阵,然后判断矩阵是否唯一。思路: 构造矩阵很简单,跑一次最大流就行了,关键是判断矩阵的唯一性,之前的那个4888我用的是深搜找环过的,这个题目就TLE了,数据加强了,对于判断矩阵的唯一性我们可以这么想假如某一行的i列和j列满足 i列的这个
2014-08-24 12:52:00 578
原创 hdu4971 流-最大权闭包
题意: 给了一些任务,然后给了一些完成某些任务的限制,然后又给了限制之间的拓扑关系,最后问你最大收益。思路: 很直白,就是流的一个应用,最大权闭包,没涉及到什么想法的地方,建图也不坑,直接说建图吧,s - 所有任务 流量是 任务价值所有限制 - t 流量是 限制代价a -> b 流量 INF a限制的拓扑关系在b的后面
2014-08-24 10:52:22 498
原创 hdu4950 打怪(简单题目)
题意: 打怪,一开始怪有h滴血,每回合可以让对方减少a滴血,每次打完之后怪会恢复b滴血,每连续k回合之后自己会休息一回合,这一回合怪物依然回血,问是否可以把怪打死。思路: 比较好想,如果把怪打死就三种情况,1上来一击打死,2在k回合之内打死,3在k回合之后打死了,如果是1的话,直接看看自己的攻击力是不是可以一击杀
2014-08-22 12:39:51 531
原创 hdu4941 map交换行列
题意: 有一个大矩阵,某些格子上有数字,然后有三种操作,1 交换行2 交换列3 询问当前坐标数值思路: 直接用map去映射行列,用二维的map去存数字就行了,水题,想不通的看下代码。
2014-08-21 20:17:55 431
原创 hdu4966 最小树形图(最少辅导花费)
题意: 以一些科目,和辅导班,每个科目最终要求修到某个等级,可以花一定的钱在辅导班把某一科目修到某一等级,进入辅导班的时候会有一个限制,那就是达到他给出的科目和等级限制,比如a b c d m的意思就是科目a必须达到b等级才可以花m钱把科目c修到d等级,最后问把所有科目修到给定的等级要花的最小辅导费用。思路: 我们可以把每一个科目的每一个等级看成一个
2014-08-21 16:49:07 653
原创 hdu4965 巧用矩阵乘法结合律
题意: 给两个矩阵,n*m的矩阵A,和m*n的矩阵B,求(A*B)^(n*n)其中 m思路: 一开始直接模拟,写了个矩阵快速幂,超时了,因为A*B后得到的是1000*1000的矩阵,做乘法直接超时了,后来写了个这样的 (A*B)^(n*n) = (A*B)*(A*B)*(A*B)... = A * (B*A)*(B*A)*(B*A)
2014-08-21 14:40:27 624
原创 hdu3117 斐波那契前后4位
题意: 求斐波那契的前后4位,n 思路: 至于前四位,和hdu1568的求法一样: http://blog.csdn.net/u013761036/article/details/38726907后四位也很好求,后四位我们可以用矩阵+快速幂去求,斐波那契的矩阵很好推x0 x1 * 0 1 = x1 x2 1 1
2014-08-21 11:01:25 590
原创 hdu1568斐波那契前4位
题意: 就是求斐波那契数,但是只要求输出前四位,(n思路: 这个要用到斐波那契的公式和一些log的规律,直接打看着很乱,直接在网上偷张图片吧:然后就是一些log的性质log10(a^b) = b * log10(a),log10(a*b) = log10(a) + log10(b)我们可以根据这个把大数的前几位拿出来,这样:log10(123456789
2014-08-21 11:00:14 610
原创 hdu2604 矩阵快速幂
题意: 给你n个人,排成一个长度是n的队伍,人只有两类f,m,问可以有多少种排法使度列中不出现fff,fmf这样的子串。思路: 一开始暴力,结果超时了,其实这个题目要是能找到类似于斐波那契那样的公式,就可以瞬间用矩阵乘法+快速幂秒掉大数据,现在我们来找公式,我们现在来讨论当前队列的最后一个字母,如果是m那么之前的所有+m都不会冲突,所以有f(n-1)个,如果是f
2014-08-15 10:43:23 568
原创 自己对有上下界的网络流的理解
相对于一般的网络流,有上下界的网络流的某些边多出了流量下界的限制,如边u->v,上下界为high、low,如果有流经过这条边,这个流必须在[low,high]这个区间内。这类题目主要要求解决下面三个问题,“有源汇、无源汇的可行流”、“有源汇的最大流”、“有源汇的最小流”,注意这里所说的源汇是原网络中的源汇,分别记为s、t。 这类题目的难点在于下界的限制很难处理,我们将所有有下界限制的边中分离
2014-08-14 16:11:34 1066
原创 POJ 2396 构造矩阵(上下流)
题意: 要求构造一个矩阵,给你行和,列和,还有一些点的上下范围,输出一个满足题意的矩阵。思路: 这个题目很经典,这是自己看上下流后接触的第一道题,感觉很基础的一道题目,现在我们来分析下,如果这个题目是只给行和,列和,让我们构造矩阵应该很简单了,直接一遍最大流,然后判断是否满流,满流就把残余网络拿出来,整理下就是答案了,关键
2014-08-14 15:19:08 406
原创 hdu4940 有上下界的无源可行流判断
题意: 给你一个强连通图,然后问你是否可以找到任意满足条件的集合S,S是非空集合,T是S的补集,满足sum(D[i ,j]) 思路: 无源汇上下流可行流判断问题,首先题目给的图是一个强连通图,为了方便理解,我们假设这个图只有两个点,a,b,那么肯定也只有两条边,a->b ,b->a,那么我们可以直接建边a->b(下界 D 上界 B + D) b->a(下界 D
2014-08-14 15:10:47 556
原创 hdu4515 小模拟
题意: 给你当期日期,问前D天和后D天的年月日。思路: 直接模拟就行了水题,对了别忘了题目2013,3,5要输出这样的2013/03/05
2014-08-12 14:55:22 488
原创 hdu4901 枚举状态(找集合对S(xor) ==T(and))
题意: 给你一个串数字,然后让你在这里面挑取两个集合S ,T,集合的要求是(1)不能为空(2)S集合的所有元素必须在T集合的左边(3)S集合的XOR == T集合的AND 问可以找到多少组这样的集合对。思路: 两种方法,一个是枚举T集合的第一个元素,或者是枚举S集合的最后一个元素,首先我们开四个数组sum_xor[1002]
2014-08-12 13:58:31 450
原创 hdu2371 矩阵乘法(求序列位置改变m次后的序列)
的变到2的位置,2的变到3,就这样一直变换m次,最后给你一个变换完之后的,让你求原始的(原题这个地方没有叙述的很清楚)。思路: 首先这种位置映射,或者是变换的很多都可以根据矩阵乘法来解决,这个题目的是个很简单的应用,比如我们要把1 2 3 4 5映射到 2 3 1 5 4的位置:0 1 0 0 0 10 0 1 0 0
2014-08-11 15:54:26 540
原创 hdu4932 小贪心
题意: 给了一些处在x轴上的点,要求我们用长度相等的线段覆盖所有点,线段和线段之间不能重叠,问线段最长可以使多长。思路: 一开始一直在想二分,哎!感觉这个题目很容易就往二分上去想,但是其实仔细想想并不是满足单调性的(对于我的方法是不满足单调性的,别的方法有可能可以),一开始想的是不能出现连续的两个不满足,这里的满足就是可以有线段,各种w
2014-08-11 13:11:50 608
原创 hdu4845 状态压缩BFS
题意: 给一个n*m的矩阵,从11,走到nm,格子和格子之间可能有墙,也可能有门,有的格子上面有钥匙,相应的钥匙开相应的们,捡钥匙和开门都不需要时间,问你最少多少部能走到nm.思路: 哎!一眼就看出来了是个状态压缩搜索的水题,结果wa了将近两个小时,就是因为忽略了一个点可能有多把钥匙,回来说下这个题,我们可以开一个数组mark[x][y][key],表示当前的这
2014-08-10 15:11:31 692
原创 POJ 2516 基础费用流
题意 有n个顾客,m个供应商,k种货物,给你顾客对于每种货物的要求个数,和供应商对于每种货物的现有量,以及供应每种货物的时候供应商和顾客之间的运输单价,问你满足所有顾客的前提下的最小运输费用是多少。思路: 满足所有顾客的前提下的最小花费,很容易就想到了费用流,但是做这个题目有个小窍门,如果不想的话很可能把每个点拆成三个点,然后在去跑,但是这样感觉写着麻烦,A
2014-08-09 12:27:01 386
原创 POJ 2135 简单费用流
题意: 题意是一个人他要从牧场1走到牧场n然后在走回来,每条路径只走一次,问全程的最短路径是多少。思路: 这个题目挺简单的吧,首先要保证每条边只能走一次,然后还要要求费用最小,那么我们可以直接跑费用流啊!还有题目说的是去了又回来,这个地方我们可以直接一次跑出两条路径,就是起始的时候的流量是2就行了,然后一遍费用流,然后就
2014-08-09 10:25:03 478
原创 hdu4915 判断括号匹配
题意: 问你括号匹配是否唯一,三种字符'(','?',')',问号可以变成任何字符。思路: 首先我们要学会判断当前串是否成立?怎么判断?我的方法是跑两遍,开三个变变量s1 s2 s3 分别存(?)他们三个的当前个数,然后先正着跑,只要s1 + s2
2014-08-08 23:38:16 575
原创 hdu4930 模拟斗地主
题意: 模拟斗地主,出牌有一下规则,1张,1对,3张,3带1,3带2,炸弹(包括两个猫),4带2,这写规则,没有其他的,然后给你两幅牌,只要第一个人出了一次牌对方管不上,那么或者第一个人一次把牌都出光了,就算胜利,否则第一个人失败,记住,只出一次牌。思路: 把所有的状态都模拟,每次都找出当前状态的最大值,如果对方管不上,那么就赢了,其他的就是注意点细
2014-08-08 18:17:36 448
原创 hdu4923 f(A,B)分段处理
题意: 给你序列A,让你构造序列B然后求出最小的f(A 思路: 首先有一点很明确,那就是我们可以消除面连续的0,和后面连续的1,一开始我的想法是直接求中间部分的平均数, 然后就前面的连续0不用管,后面的连续1不用管,然后中间的部分就是平均数,结果妥妥的WA了,其实正解是分段处理,分成这样的 111000,10,1110,1111100000...就是断
2014-08-08 13:22:11 430
原创 poj2112 二分最大流+Floyd
题意: 一个农场主有一些奶牛,和一些机器,每台机器有自己的服务上限,就是一天最多能给多少头奶牛挤奶,给你任意两点的距离,问你让所有的奶牛都被挤奶时,奶牛于机器最远距离的最近是多少。思路: 求最远的最近,二分,然后用最大流去判断是否所有的奶牛都被挤奶了,简单题目,不多解释了,还有注意一点就是二分前记得Floyd一下,他没说给的
2014-08-07 16:21:17 434
原创 POJ1149 PIGS(最大流)
题意: 有一个人,他有m个猪圈,每个猪圈里面有一定数量的猪,但是每个猪圈的门都是锁着的,他自己没有钥匙,只有顾客有钥匙,一天依次来了n个顾客,(记住是依次来的)他们每个人都有一些钥匙,和他们想买猪的数量,他们可以用自己的钥匙打开猪圈,最后卖给他多少是你自己决定的,当顾客打开它能打开的这几个猪圈的时候你可以调整打开的这几个猪圈里面的猪的数量,等他走了,猪圈又被锁上了,就这样,最后问你最
2014-08-07 15:08:07 388
原创 对最大团的理解
定义: 最大团就是给你一个图,让你在这个图里面找到一个最大的子图,这个子图必须是全图,最大的子图就是这个图的最大团。算法: 首先最大团是NP问题,没有什么非常快的方法去解决,现在可以用搜索+剪枝去尽可能的快速处理最大团问题,其中一个很重要的剪枝就是如果当前集合的顶点数+剩下所有的点接着补充一下,经过做3585的那个二分最大团发现自己写的模板各种超时,超时到
2014-08-07 10:37:43 1056
原创 hdu3585 二分最大团(dp优化)
题意 给你一些点( 思路: 求最小的最大,我们可以直接二分去枚举距离,但是要注意,不要去二分double找距离,要知道,最后的答案肯定是其中某个点的两点距离,所以我们直接把所有点的距离求出来,放一个数组里面,然后sort下,然后去二分这个数组的下标,根据下标找距离,这样可以节省点时间(这种情况这针对于某些题目,如果点非常多,n*(n-1)/2距离的种类是
2014-08-07 10:37:04 1024
原创 hdu1530 最大团简单题目
题意: 给你一个无向图,让你找到这个图里面的最大团是多少。思路: 最大图案是NP问题,直接暴力搜索,如果当前的这个点可以加入当前最大团,那么就选择加入或者舍去,如果不能加入,直接舍去,还有一个剪枝就是当前的答案+后面剩余所有点 小于 当前的全局最大 的话直接return.自己写的跑了 4000+#include#define N 60
2014-08-07 10:35:31 1299
原创 hdu4920 矩阵乘法%3
题意: 给你两个矩阵,让你求两矩阵的乘积,然后3取余。矩阵是n*n的,n思路: 如果什么都不考虑的话,矩阵的乘法是o(n^3)的,800*800*800 = 512000000,超时那是妥妥的,而且还用到取余,%这个东西在我的印象里是很费时间的,回到这道题目,我们发现一个很关键的地方,就是%3,那么也就是说只有0.1.2这三种状态,这样的话我们直接改变一下矩阵乘
2014-08-06 16:00:38 465
原创 hdu4911 简单树状数组
题意: 给你一串数字,然后给你最多进行k次交换(只能交换相邻的)问交换后的最小逆序数是多少。思路: 首先要知道的一个就是给你一个序列,每次只能交换相邻的位置,把他交换成一个递增序列所需要的最少步数等于整个序列的逆序数,在转化到这个题目,我们只要求出个逆序数,然后输出逆序数 - k就行了,如果是负数输出0。
2014-08-06 15:56:13 726
原创 hdu4912 LCA+贪心
题意: 给你一棵树和m条边,问你在这些边里面最多能够挑出多少条边,使得这些边之间不能相互交叉。思路: lca+贪心,首先对于给的每个条边,我们用lca求出他们的公共节点,然后在公共节点的深度排序,排序之后我们先从最深的开始,每次判断当前的这条边的两点是否用过,如果没用过,那么就把以当前两点的公共点为树根的子树全部标记上,然后答案+1,就这样一直遍历到最后就行了
2014-08-06 15:55:28 584
内存清理工具(加速球)
2016-12-09
屏幕像素点获取并设置鼠标位置为制定像素(源码)
2016-12-07
程序速度齿轮
2016-11-20
服务提权工具
2016-11-20
重新封装了下node-mongo服务.zip
2019-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人