Algorithm
文章平均质量分 72
OrpineX
这个作者很懒,什么都没留下…
展开
-
关于分数规划
分数规划问题,是指这样一类问题:要求f(x)/g(x)的最值,其中f(x),g(x)都是线性函数,而其中被研究的最多的是0-1分数规划,即求这样的一个式子的极值r=(∑(ci*xi))/(∑(di*xi)),其中xi∈{0,1}我们可以把这个式子变换一下z=(∑(ci*xi))-r'*(∑(di*xi)),其中z是左边这个式子的最大(小)值由于di为正数,xi为非负数,所以原创 2011-11-15 17:40:18 · 4910 阅读 · 0 评论 -
关于网络流和平面图
在久远的2010年,湖南省队集训的时候出了一道题叫c国,其本质是求平面图的最小割//平面图,可以画在平面上边不相交的图但是由于题目规模太大,一般的网络流都是过不了的……但是当时雅礼机子太好,以至于dinic什么的写得好的有人可以水过这种平面图网络流其实是有更优秀的算法可以解决的,将网络流转化为最短路当时讲了这种算法,但是CNX先輩木有写,NOI2010又出了一道几乎一模一样原创 2012-01-02 17:15:02 · 2365 阅读 · 1 评论 -
[POI2005]Kos-Dicing
这道题我自己想绝对想不出来不为别的,数据范围太坑爹了……谁能想到想到上w的点还可以网络流啊,而且还不只求一次而且题意不明,冠军可以并列,它实际上求的是可能的最大值中最小的,最大值不唯一那么我们对于每场比赛,有一个点,超级源向每场比赛连一条边,流量为1然后每场比赛向对应的两个人连一条边,流量均为1(其实无所谓)每个人向超级汇连一条边,容量为xx实际上就是限制了每个人能够赢原创 2012-01-03 20:26:13 · 1111 阅读 · 0 评论 -
[HAOI2007]理想的正方形
这道题本来想能不能用STL平衡树水过……一看值的范围在1e9范围内,hash不能……好吧MS这道题很老的样子……正解是对每一列用单调队列维护从这个点开始接下来n个数里面最大的和最小的那么对于一列上的n个数,我们把它压成了一个数lmax[i][j],lmin[i][j]分别表示以这个点为起点往下n个数里面最大和最小那么我们对这个两个数组横向的也用单调队列维护那么对于每原创 2012-01-05 17:57:18 · 2747 阅读 · 0 评论 -
[SDOI2010]星际竞速
昨天连续做了两道网络流……这是第一道这是道图论题是肯定的,图都给你了那么问题在于如何建模问题要求访问每个点恰好一次(我一开始没看到这个条件……)要求总时间最短,尝试把问题转化为一些经典图论问题比如最短路很可惜不行,那么自然想到网络流(组里面有句戏言叫“一切皆可网络流”,比如A+B……)进一步分析发现单纯的网络流是不行的,需要用费用流访问每个点恰好一次,跟路径覆盖原创 2012-01-05 15:14:11 · 2596 阅读 · 0 评论 -
寒假总结
寒假刷水记录……bzoj1901: Zju2112 Dynamic Rankings水题……暴力即可http://ideone.com/nnjLbbzoj1207: [HNOI2004]打鼹鼠DP,我一开始想的状态表示有3维,时间,x,y……然后发现完全没有必要,太稀疏了用f[i]表示第i只老鼠的时刻即可,因为第i只老鼠的时候机器人要么空降,要么从别的老原创 2012-02-12 21:44:56 · 3954 阅读 · 3 评论 -
寒假总结2
bzoj1079: [SCOI2008]着色方案DP,记录每一种颜色的个数和上一个染得什么颜色……记忆化搜索比较好写……http://ideone.com/iYMu9bzoj1050: [HAOI2006]旅行comf将边从小到大排序,然后答案就相当于是对于边的一个区间……枚举左端点,然后不断加边直到s,t联通,并查集维护对于得到的每个区间取最优值……问原创 2012-02-13 09:24:52 · 1880 阅读 · 0 评论 -
[POI2008]Sta
两遍DFS……第一遍维护自己儿子到自己的第二遍维护自己祖先到自己的用了内嵌汇编……//Lib#include#include#include#include#include #include#include#include#include#include//#include#include#includeusing namespace std;/原创 2012-02-18 20:38:06 · 1112 阅读 · 0 评论 -
关于Simpson积分
这两天写了圆交和圆并圆交和圆并都有非常优美的O(n^2logn)算法,AekdyCoin有讲但是像这种求面积的题还可以用Simpson积分法简单的说就是将一段函数积分用二次函数积分拟合一听这种搞法就知道是乱搞……但是很多时候比较有用……嗯……像是求圆并的话,可以这样做将x轴某一点上各个圆并所对应的长度视为函数值,用Simpson积分拟合圆并在x轴上某一点对应的长度比较好原创 2012-03-02 10:29:00 · 7274 阅读 · 1 评论 -
解线性同余方程组
前几天纠结了差不多一个多小时,终于把线性同余方程组的求解纠结清楚了……果然还是写下来怕自己忘记……其实qzone不适合写这种文章……不过反正也只有自己看就无所谓了……嗯……归纳一下线性同余方程ax≡b(mod n)是一个同余方程,表示ax mod n=b(or (b mod n)),求解这样一个x存在这样的x当且仅当gcd(a,n)|b那么所有的解可以表示为{x0+kn/d}原创 2011-11-15 13:16:55 · 8127 阅读 · 0 评论 -
[HNOI2011]卡农
这道题是day2压轴……去年我没做出来,然后一直以为很难……昨天做了一下发现这题超过瘾的……是个数学题……写出来的代码超短……但是很难想……首先考虑所有的集合:除掉空集以后共有2^n-1个当确定了前m-1个集合以后,第m个集合就确定了,因为要求所有的数出现偶数次这道题要求不记顺序,但是记顺序的更好算一点,然后在最后除一个m!即可那么我们记f[i]为前i个集合记顺序的方案数,原创 2012-03-29 08:33:47 · 2715 阅读 · 0 评论 -
SGU512
题目大意:给出那个点求这样的点对个数:以两点连线为对角线的矩形内不存在其他点(也不能在边界上)首先注意到:对于某一个点p,我们考虑y值大于等于p的其他点那么可行的点若在p的左边,y值一定单调递增,在右边则单调递减我们只考虑左边的(右边的可以通过坐标变换变到左边来)那么用树状数组套单调队列,可以维护一段单调的y值,另外就是单调队列的合并问题:树状数组不断往回跳的时候,原创 2012-03-31 17:03:16 · 1466 阅读 · 0 评论 -
[POI2007]Zap
这道题很难……不看题解做不出……(实际上看了题解也不是很懂……)我觉得CLJ和JZP都没有说清楚……这道题是容斥,但做的时候实际上是莫比乌斯反演(话说莫比乌斯反演也就是容斥)他要求gcd(x,y)=d,x实际上就是求gcd(x,y)=1,x设f(k)为gcd=k的,F(k)为gcd为k的倍数的显然F(k)=sigma(f(d)) (k|d)f(k)不好求,但是F(k)比原创 2012-01-14 11:37:42 · 2223 阅读 · 2 评论 -
关于曼哈顿距离下的最小生成树
这些天一直在集训,考了十几次……zzy出了一道曼哈顿距离下的最小生成树,考场上我没做出来……嗯……这种题目的问题在于,你没办法把每两个点都建一条边……但是因为是曼哈顿距离,所以有一些特殊性质容易证明,将某个点为原点建立笛卡尔坐标系,将坐标系分为每45°角为一块的八个区域那么这个点向每个区域只会朝其中的某个点连边……为什么说容易证明,因为我不会证……网上MS有这种证明的说……原创 2012-03-21 14:49:00 · 4931 阅读 · 0 评论 -
[APIO2010]特别行动队
很显然是个DP有方程f[i]=max{f[j]+Ax^2+Bx+C} x=s[i]-s[j] j∈[1,i-1]这样一个DP方程是O(n^2)的,对于原题最多只能过50%数据那么这道题可以斜率优化从方程着手,方程可以化为f[i]=max{(f[j]+A*s[j]^2+B*s[j]+C)+(-2A*s[i]*s[j])}+A*s[i]^2+A*s[i]我们把(f[j]原创 2012-01-03 11:57:22 · 8553 阅读 · 2 评论 -
[NOI2010]海拔
狗眼可得高度取值在{0,1}之间进一步狗眼可得01块连续那么要求的只是图的一个最小割了用平面图网络流->最短路得解有个问题就在于网格之间的边是有方向的,那么要注意割得方向来判断实际上要加哪条边的权值之前写网络流->最短路都习惯建图,写这道题的时候趁机练习了一下不建图的版本//之前认为建图会比较麻烦,写完以后发现也只是建边的时候处理一下给个图来帮助判断边的走向原创 2012-01-02 17:21:36 · 3278 阅读 · 0 评论 -
[Noi2010]Plane 航空管制
这道题做法很简单,年鉴上讲的很复杂的样子……首先第一问,对于每个节点来说,他肯定要比自己的后继先,在此基础上越往后越好(尽量满足限制严格的其他点)那么可以将一个节点i的k更新为min(k[i],k[j]-1)j为i的后继注意更新的时候要按照拓扑序来,否则有可能更新不完全//他儿子还没更新完就更新他了//我一开始没有注意拓扑序,后面懒得改了仿照Bellman-Ford在外面再套了一层原创 2011-12-29 18:03:44 · 2714 阅读 · 0 评论 -
[POI2007]办公楼biu
POI的题怎么都那么鬼畜啊!!!!……首先可以看出……这道题的答案就是求原图的补图的连通块个数//在原图中没边的肯定要在一个办公楼,这体现为在补图中有边本来嘛,这个问题是比较简单的……BFS即可……但是这道题的规模太大,以至于补图根本就建不出来,内存开不了那么多……去年冬令营ms有这道题的解法,什么挂链什么的,反正是用链表解决……然后我没看懂……不会pty说了一种方原创 2012-01-18 10:29:17 · 2391 阅读 · 0 评论 -
混合图的欧拉回路
混合图是指既有有向边又有无向边的一类图我们一般处理无向边是将它拆成两条有向边,而在求欧拉回路时不能这么做,因为一条边只能经过一次因此用网络流解决这个问题黑书p324讲了两种做法我写的第二种首先将无向边任意定向,将其当做一条有向边,判断这个图是否可能存在欧拉回路(对于每个点,abs(入度-出度)是偶数)接下来构建网络:保留原来的无向边,方向为你定的方向,流量为1对于点原创 2011-11-19 14:10:03 · 569 阅读 · 0 评论 -
NOI2010.Day1.T2.超级钢琴
题目大意:在n个数字中找出k个不相同的长度在l-r之间的连续子序列,使得权值和最大(n昨天膜拜了一下10年的年鉴这道题合法的子序列是非常多的,如果朴素显然是无法做出这道题有一个非常美妙的想法,对于给定的起点,起点的权值已知了,子序列的个数是确定的那么记录一下前缀和s[i],对于给定的起点,实际上就是询问起点所代表的那一段区间的最大权值,这个就是RMQ问题,ST算法可以在原创 2011-11-25 17:34:30 · 2868 阅读 · 0 评论 -
[NOI2007]货币兑换Cash
/*写完以后发现有牛人使用STL……在BZOJ(开了O2)上可以AC……http://hi.baidu.com/wwwaaannngggrs/blog/item/e536b809c5b533d23bc763ca.html*/这道题是非常典型的斜率优化,蛋疼之处在于x并不单调,得用Splay维护……方程是f[i]=max(f[i-1],a[i]*x[j]+原创 2011-12-03 12:05:30 · 3578 阅读 · 0 评论 -
关于稳定婚姻问题
其实这个东西比较好玩……意义比较深远……尤其是对广大屌丝和穷搓矮和魔法师而言……这个问题在组合数学第9章出现问的是:n男n女,每个男的对每个女的有一个评分,每个女的对每个男的有一个评分,然后……他们两两配对……当然结婚以后有可能不幸福,所以希望找到一种配对方案,满足不存在这样的一对(狗)男女,他们不在一起,同时对对方的评分比对自己配偶高……如果这样他们就会私奔啊私奔原创 2011-12-17 19:47:01 · 1566 阅读 · 0 评论 -
关于最长链
昨天晚上突然想到一个问题:对于一个给定的有向图,给定起点,求一条最长链我一开始觉得这个问题比较简单,但是想了半天也不会做,颓然发现它可能比较难……如果这个图是个topo图,那么可以DP或者SPFA来做如果不是呢?也就是说这个图存在环的话呢?如果每条边可以走多次,那么显然最长链不存在否则这个问题有两种版本一种是不允许经过重复的边,可以经过重复的点//2011.12.18修原创 2011-11-21 13:19:43 · 1796 阅读 · 0 评论 -
Topcoder.SRM527.Div1.T2
这场比赛是在半夜……我没参加……本来打算和两基佬熬夜的,最后关头他们发现寝室有无线网……屁颠屁颠跑回寝室,我住在外面,而且没有笔电,于是被抛弃了……今天补了一下,275和1050还没来得及看,不过第二题比较巧妙……给出一些关于一个01矩阵的信息:1> 01矩阵中的每一行2> 01矩阵中的每一列这个矩阵中存在未知元素(未知元素可以使0 or 1)行的信息按顺序原创 2011-12-18 19:23:29 · 847 阅读 · 0 评论 -
NOI2007.Day2.T3.追捕盗贼
这道题是看的郑暾大牛的论文《平衡思想》里面说这道题是树的Search Number问题,有O(n)解法,恰好我这里有数据&标程,一看标程8.5k……郑暾大牛给出了一种DP构造解虽然不是正解,但是在大部分情况下可以保证与最优解一样而且代码较短(我只写了120行),性价比较正解高出太多,在考试的时候不失为一种好的方法因为是在树上,树有个性质就是每个点都是割点,所以每个点都可以把原创 2011-12-17 10:10:11 · 1952 阅读 · 0 评论 -
[HAOI2008]木棍分割
这道题磨了我好久……第一问可以二分出来,对于每个答案,贪心的分割,最后分割出来的段大于m+1的话就不行,这样的第二问比较麻烦有这样一个DP方程:记前缀和为sf[i][j]=sigma(f[i-1][k])(s[j]-s[k]f[i][j]表示把前j根木棍分割成i段的方案数那么,暴力算的话复杂度是O(mn^2),TLE无疑我一开始没有注意到题目性质,如果单看DP方程,原创 2011-12-20 16:19:44 · 2333 阅读 · 0 评论 -
关于FFT快速傅里叶变换
前一段时间荒废掉了……一直在纠结zkw大牛的数学归纳法的论文……结果看不懂……一直很纠结FFT是怎么实现的一直以为FFT是很巧妙的利用数论之类的东西做,所以每次看到这方面的资料就蛋疼,因为一般都画了个坐标系,然后就懵了……昨天晚上无聊翻算导看到FFT这一章,就把它学了,发现算导有的时候讲细一点还是有好处的,至少看得懂……首先要明确的一点是FFT是用来求多项式原创 2011-12-14 21:35:48 · 1566 阅读 · 0 评论 -
[ZJOI2010]network 网络扩容
题目都告诉你了,很裸的网络流……在第一问基础上对于每条边,另外加一条带费用的边,容量只要大于等于k就行在此基础上做一遍费用流然后搞定……PS:我做的时候脑残了退流的时候一个单位一个单位的退……//Lib#include#include#include#include#include#include#include#include#incl原创 2011-12-22 19:10:44 · 2019 阅读 · 0 评论 -
[NOI2006]网络收费
在树上做的题目,而且数据范围不是很大,很容易想到树形DP的说但是我纠结了很久,因为不知道怎么样表示状态按理说应该要把叶子节点的状态全都表示出来的(其实这样就是暴搜了……),但是显然不行……然后其实可以发现这题的系数有个非常巧妙的性质如果子树中A节点数>B节点数,那么赋给子树的根A属性,否则赋给B属性然后对于两个点来说,两个点的费用计算可以转化成->找到两个点的LCA->如果原创 2011-12-27 14:04:17 · 1898 阅读 · 0 评论 -
[NOI2009]植物大战僵尸
这道题跟NOI2006 最大获利其实是很像的一样都是要搞定一些点才能搞定另一些点,然后有些点正权有些点负权这种问题,其实是最大权闭合子图amber的最小割论文有详细的讲解法和证明闭合子图的定义是,图中每个点所连接的的任何一条边不指向图外,可以有边指向这个图这实际上就是一个依赖关系,如果我们把a依赖b(在这道题就是b保护a),在图中用一条a指向b的边表示那么我们求的就原创 2012-01-05 15:31:11 · 2301 阅读 · 0 评论 -
[JSOI2010]Group部落划分
这道题可以贪心做每次把距离最近的点对合并到一起直到不能合并……我2b的想到什么最近点对之类的……一看n=1000,其实就是暴力求每两个点之间的距离,排个序并查集就行……//Lib#include#include#include#include#include#include#include#include#include#include#incl原创 2012-01-14 09:52:09 · 1425 阅读 · 0 评论 -
[NOI2009]变换序列
这道题九点开始看……一直写到现在……事实证明混乱的代码不要接着写,最好是重新写一遍……首先我觉得每个点只能有对应的两个点,这个不是很明显的约束了开头后面的直接就推的出来吗?那么很明显O(n^2)可以过……然后我发现这是个每个点最多两条边的二分图但是没有仔细想,依旧觉得它约束了第一个后面就都推的出来立马写了一个……模拟二分图匹配……然后wa……仔细一想发现MS会出原创 2012-01-17 10:59:15 · 1546 阅读 · 0 评论 -
关于斜率优化的DP
以前写单调DP都是浑浑噩噩的,最近又重新回去看ZZX去年写的东西,还有汤泽,杨哲的论文总算把斜率优化弄懂了……对于这样的一类DP方程f[i]=min{a[i]*x[j]+b[j]}a[i]是和i有关的函数,x[j],b[j]是和j有关的函数或常数求解这个问题朴素是O(n^2)的,我们可以将它优化到O(n)或O(nlogn)我们可以把它改写成这个样子-a[i]*x[j]+原创 2011-12-01 16:50:26 · 4596 阅读 · 0 评论