08 2011 档案
字典树模板。。
摘要:字典树模板 阅读全文
posted @ 2011-08-29 11:00 →木头← 阅读(211) 评论(0) 推荐(0)
HDU 3934 Summer holiday 旋转卡壳 最大三角形面积
摘要://题意很简单就是要求N个点的最大三角形的面积。。想到凸包。。一看数据,1000000,,用枚举的话肯定会TLE。。 //花了两天看了旋转卡壳。。现在还是不是很懂。。。 //凸包上的点有可能3点共线啊。。。一个跟屎一样的问题,,搞了我两天。。晕死。。 //下次要学乖了,,,3点共线啊。。晕。。 阅读全文
posted @ 2011-08-28 14:41 →木头← 阅读(937) 评论(0) 推荐(0)
暗时间 经典
摘要:生活 阅读全文
posted @ 2011-08-28 00:54 →木头← 阅读(350) 评论(0) 推荐(0)
HDU 1147 Pick-up sticks 线段判交。暴搜
摘要://其实刚遇到这道题目的时候是会做的,,但是却找不到线段相交的模板实在让我无语。。 //意识到模板的重要性了。。 /*********************************** 暴力就行,从第一个开始判断 如果两条线段相交就把前面一条筛选掉 判断线段相交直接贴的吉大模板。。。 ***********************************/ 阅读全文
posted @ 2011-08-28 00:36 →木头← 阅读(337) 评论(0) 推荐(0)
HDU Groundhog Build Home 最小覆盖圆
摘要://开始想到是凸包上的点。。其实不用直接枚举就好了。。但是我的算法实在是烂,,4000ms+。。有过跟没过一样。。 //这道只要想到圆就差不多了。。 阅读全文
posted @ 2011-08-26 12:37 →木头← 阅读(289) 评论(0) 推荐(0)
HDU 3917 Road constructions 网络流 最小割模型。。
摘要:昨天TMD又没做出网络流。。就因为一句话看不懂。。悲剧。。题目应该是很好理解。。就是其中的一个括号要少为理解一下。。就是说工程队A要造1到2的路,工程队B要造2到3的路,就说工程队A和工程队B是有关系的。。这个要是理解了,最小割模型就可以构造了。。把每个工程队的税收为正权,连源点 。每个工程队的施工总和为 C[i],连汇点,值为C[i]; 有联系的工程队之间连有向边,边权为inf。。最大权闭包的题目,关键在怎么建图用最大流来求 。。 答案为所以税收总和-最大流 */ 阅读全文
posted @ 2011-08-22 21:23 →木头← 阅读(494) 评论(0) 推荐(0)
POJ 3281 Dining 网络流
摘要:N头牛,D种饮料,F种食物,每天牛吃一种食物一种饮料,食物和饮料都只有一份。问最大满足多少头牛。 构图:由于每头牛只需一份饮料和食物,所以每头牛要拆为两点,连容量为1的边。起点到所有食物连容量为1的边,饮料到汇点连容量为1的边。牛再和食物,饮料连。 构图的时候仔细一点就好了。。 阅读全文
posted @ 2011-08-20 20:27 →木头← 阅读(282) 评论(0) 推荐(0)
HDU 3491 Thieves 网络流,拆点,最小割模型
摘要:题意:有n个城市和m条道路(双向),一伙小偷准备从S城出发到H城盗窃,为了将这伙小偷抓住,需要在这n个城市中的每一个城市安排一定数量的警察(每个城市警察的数量已经给出),但警察不希望在S城或H城遇到小偷.求解总共需要的最少警察数. 思路://最小割,把点拆成I,I+N,中间连的点为费用,保证只被切到一次;如果A点和B点相连,2个点连边,边容量为无穷大,保证不被切到 ,由于不能在S,H抓到,所以S,H点和自己S+N,H+N要连无穷大的边,保证不被割到。。 要有拆点的思想。。根据题目的意思来拆。。还要理解网络流的模板。。这个是重点。。 阅读全文
posted @ 2011-08-19 22:30 →木头← 阅读(462) 评论(0) 推荐(0)
HDU 3952 Fruit Ninja 几何题
摘要://昨天的比赛题,,一直往凸包那里想了。。看了别人的思路才懂得。。自己的太笨了。。 //任意选取两个水果,并选出水果上两个端点组成一条直线去切割其他的水果,就是判断直线与线段是否相交(n^3*k^3) //经验:一个方法想不通之后要换别的方法想想。。要有发散的思维。。 阅读全文
posted @ 2011-08-19 10:24 →木头← 阅读(287) 评论(0) 推荐(0)
HDU 3879 Base Station 网络流(经典题)
摘要:这道题是个人赛得时候看到的。。但是实在想不出要怎么建图。。最后学长讲了才略懂。。 下面根据学长讲的做下总结: 题意: 公司得到了一共N个可以作为通讯信号中转站的地址,而由于这些地址的地理位置差异,在不同的地方建造通讯中转站需要投入的成本也是不一样的,所幸在前期调查之后这些都是已知数据:建立第i个通讯中转站需要的成本为Pi(1≤i≤N)。 •另外公司调查得出了所有期望中的用户群,一共M个。关于第i个用户群的信息概括为Ai, Bi和Ci:这些用户会使用中转站Ai和中转站Bi进行通讯,公司可以获益Ci。(1≤i≤M, 1≤Ai, Bi≤N) •THU集团的CS&T公司可以有选择的建立一些中转站(投入成本),为一些用户提供服务并获得收益(获益之和)。那么如何选择最终建立的中转站才能让公司的净获利最大呢?(净获利 = 获益之和 - 投入成本之和) •本题可以参考:(最大获利) •:http://judge.noi.cn/problem?id=1142 阅读全文
posted @ 2011-08-17 10:21 →木头← 阅读(776) 评论(0) 推荐(0)
POJ 3469 Dual Core CPU 网络流(坑爹)
摘要://这个题目巨坑爹啊。。那个数组的大小实在让我蛋疼。。这个题目就是 //建图还算好建的,,但是那个数组就要发挥你的想象力了。。我从440000, ////开始试,试了N次,,到最后都快崩溃了,,其间我一直相信我的程序没有写错。 //最后没办法了。。只能百度。。发现百度上的居然开了1000000,这让无比的蛋疼 //去试了下,,居然AC。。再感叹下,,这个坑爹的题目、、、 阅读全文
posted @ 2011-08-17 08:42 →木头← 阅读(428) 评论(0) 推荐(0)
HDU 1569 方格取数(2) 网络流的应用
摘要://这道题就是方格取数(1)的略微加强。。只是这道的N变成50,用EK应该是会超时的。。 //这道题用EK会TLE,,要用ISPA,DINIC。。。 //所以以后写网络流建议直接写ISPA,或者DINIC,最好是DINIC,因为最快。。 //还有就是要学会黑白染色的两种方法。。 //还有就是模板的灵活运用。。 阅读全文
posted @ 2011-08-16 19:32 →木头← 阅读(533) 评论(0) 推荐(0)
HDU 1565 方格取数(1) 网络流的应用
摘要:中文题意不解释。。 要懂这道题,要先懂得一些基本的概念。。在我的博客里面也有这些概念。。我这里再重复一下,也说明这些概念的重要性。。 //这道题用EK会TLE,,要用ISPA,DINIC。。。 //还有就是要学会黑白染色的两种方法。。 //还有就是模板的灵活运用。。 阅读全文
posted @ 2011-08-16 09:26 →木头← 阅读(1442) 评论(0) 推荐(0)
POJ 1459 Power Network 网络流模板题
摘要:/*这个题目是网络流的经典模板题;我刚刚接触网络流,为了熟悉模板我用这个题目写了三种模板。 题意: 给几个发电站,给几个消耗站,再给几个转发点。 发电站只发电,消耗站只消耗电,转发点只是转发电,再给各个传送线的传电能力。 问你消耗站能获得的最多电是多少。 思路:增加一个超级源点,和超级汇点。。把所给的发电站都和超级源点相连,把所给的消耗战都和超级汇点相连。。 这样就可以用网络流的最大流来做了。。*/ 阅读全文
posted @ 2011-08-14 09:25 →木头← 阅读(1096) 评论(0) 推荐(0)
三维凸包模板 HDU 3662 3D Convex Hull
摘要:二维的搞得差不多了就想搞三维的,但是网上搜了半天只找到两道题目,蛋疼。。 /*给出三维空间中的n个顶点,求解由这n个顶点构成的凸包表面的多边形个数. 增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况: 1> 在凸包内,则可以跳过 2> 在凸包外,找到从这个点可以"看见"的面,删除这些面,然后对于一边没有面的线段,和新加的这个点新建一个面,至于这个点可以看见的面,就是求出这个面的方程(可以直接求法向量).*/ 下面是三维凸包的模板。。有了这个模板应该对付三维凸包的题就没问题了吧。。 阅读全文
posted @ 2011-08-12 22:25 →木头← 阅读(2202) 评论(0) 推荐(1)
POJ 3062 Borg Maze BFS+最小生成树
摘要://大概是说S要去消灭外星人,要找到最短的路把所有的外星人消灭。。就这样。。 //题意说的很复杂,大意就是求S到A的距离,因为S到A可分所以就像是求图的最小生成树,先用BFS求各点的距离,再用prim求最短距离。 阅读全文
posted @ 2011-08-12 21:36 →木头← 阅读(460) 评论(0) 推荐(0)
有关母函数的各种水题。。
摘要:由于以下题目过于水,所以合并一起。。 先来个纯模板题。。HDU 1028 Ignatius and the Princess III 完全的模板。。 HDU 1284 钱币兑换问题 也是模板题,,但是要注意的是,不能把N带入,,不然会TLE,,题目说了上限了,,所以可以先模拟出来。。再求。。 HUD 1398 Square Coins 只要注意它的硬币是以平方增长的。。 HDU 2082 找单词。。 HDU 1171 Big Event in HDU //又是一题母函数的经典应用。。 //题意给出N种设备,分别给出设备的价值和数量。。叫你求出分成两半价值相差最小的分发, //如果不能平分的话就先给出大的。。 HDU 2152 Fruit //中文的题目就不在说了。。就是上下界母函数。。 阅读全文
posted @ 2011-08-12 18:33 →木头← 阅读(226) 评论(0) 推荐(0)
HDU 过山车 匈牙利算法
摘要:题意简单,不说了,,明显的匈牙利。。下面给出一种用队列写的匈牙利,以免以后点多了,用数组做不了。。 阅读全文
posted @ 2011-08-11 19:35 →木头← 阅读(318) 评论(0) 推荐(0)
hdu 2458 Kindergarten 匈牙利
摘要:题意:本题要求学生中相互了解的人数最多有多少。男生之间都是相互了解的,女生之间也是相互了解的,所以我们可以把相互了解的人之间的边看成是1,所以男生是一个集合,女生是一个集合,map[男][男]=1;map[女][女]=1;当男生和女生熟悉时,map[][]=1;当男生与女生不了解时,map[][]=0;所以求相互了解的人最多有几个就是求构造出的二分图的最大独立集。(本来最大独立集是指互不相关的点最多有几个,而此处我们把相关的定义为map[][]=1;不相关的定义为map[][]=0;所以最大独立集就是所有互相了解的人的集合) 最大独立集=V-最大匹配数;(V为最大顶点数) 阅读全文
posted @ 2011-08-11 19:33 →木头← 阅读(291) 评论(0) 推荐(0)
HDU 1150 Machine Schedule 匈牙利算法
摘要:HDU 1150 Machine Schedule 匈牙利算法 思路: 把A的n个mode和B的m个mode看作图的顶点,如果某个任务可以在A的mode_i或B的mode_j上完成,则从Ai到Bj连接一条边,这样构造了一个二部图。 求二部图的最小点覆盖集问题。转换成求二部图的最大匹配问题。。 阅读全文
posted @ 2011-08-11 19:29 →木头← 阅读(273) 评论(0) 推荐(0)
POJ2536:Gopher II 匈牙利算法
摘要:POJ2536:Gopher II 匈牙利算法 题意:有n个地鼠和m个洞,有鹰飞来时,n个地鼠如果能在s秒从当前位置回到一个洞,就能不死,一个洞能容纳一个地鼠,它们的速度为v。求死的个数最小。 思路:匈牙利算法求最大匹配,n-最大匹配就是了,。。把能跑进洞里的老鼠和洞连起来。。 阅读全文
posted @ 2011-08-11 19:22 →木头← 阅读(325) 评论(0) 推荐(0)
Poj 2446 Chessboard 匈牙利算法
摘要:Poj 2446 Chessboard 匈牙利算法 /*题意:给出一个矩形N*M棋盘,有K个格子是空洞,然后用2*1的矩形,对所有 非空洞的格子进行覆盖,如果可以全部覆盖,就puts("YES"); 阅读全文
posted @ 2011-08-11 19:15 →木头← 阅读(997) 评论(0) 推荐(0)
最大匹配之匈牙利算法模板。。
摘要:最大匹配之匈牙利算法模板。。 二分图的性质: ( 交错轨 和增广路的概念很重要 ) 定理:无向图G为二分图的充分必要条件是,G至少有两个顶点,且其所有回路的长度均为偶数. 匹配:设G=为二分图,如果M⊆E,并且M中没有任何两边有公共端点。M=Φ时称M为空匹配. 阅读全文
posted @ 2011-08-11 19:01 →木头← 阅读(5761) 评论(1) 推荐(2)
POJ 1001 Exponentiation 高精度
摘要:传说中最恶心的高精度。。学长说了,这题要是自己出了,,那么你高精度也就学精了。。 我至今不敢去碰。。就是因为太恶心了。下面贴个比较简单的代码。。 阅读全文
posted @ 2011-08-11 15:09 →木头← 阅读(249) 评论(0) 推荐(0)
HDU 1085 Holding Bin-Laden Captive!母函数基本的应用
摘要:HDU 1085 Holding Bin-Laden Captive!母函数基本的应用 //题意:给你面值是1,2,5的硬币的数量,要你求由这些硬币不能组成的最小的金额。。 下面给出3种方法; //方法1:很明显母函数 //我这里一步一步的求。。 //下面是我的一点理解。。如果叫你写由面值1,2,5的硬币所组成的金额的母函数 //Y=(1+x^2+x^3+x^4…+x^n1*1)*(1+x^2+x^4+x^6…x^n2*2)*(1+x^5+x^10+…x^n3*5) 阅读全文
posted @ 2011-08-11 11:27 →木头← 阅读(240) 评论(0) 推荐(0)
HDU 1698 Just a Hook 线段树(成段更新)
摘要:HDU 1698 Just a Hook 线段树 线段树的基本应用。 阅读全文
posted @ 2011-08-11 09:25 →木头← 阅读(261) 评论(0) 推荐(0)
HDU 1754 I Hate It (线段树模板题)
摘要:HDU 1754 I Hate It (线段树模板题) 阅读全文
posted @ 2011-08-11 09:22 →木头← 阅读(500) 评论(1) 推荐(0)
【完全版】线段树(转载)
摘要:【完全版】线段树 阅读全文
posted @ 2011-08-11 09:18 →木头← 阅读(12667) 评论(0) 推荐(5)
线段树模板及解释
摘要:线段树的定义 定义1 长度为1的线段称为元线段。 定义2 一棵树被成为线段树,当且仅当这棵树满足如下条件: (1) 该树是一棵二叉树。 (2) 树中每一个结点都对应一条线段[a,b]。 (3) 树中结点是叶子结点当且仅当它所代表的线段是元线段。 (4) 树中非叶子结点都有左右两个子树,做子树树根对应线段[a , (a + b ) / 2],右子树树根对应线段[( a + b ) / 2 , b]。 阅读全文
posted @ 2011-08-11 09:15 →木头← 阅读(9074) 评论(1) 推荐(3)
hdu 2421 Deciphering Password 质因数分解
摘要:hdu 2421 Deciphering Password 质因数分解 任何一个大于1的数可以分解成 n=a1^p1*a2^p2*a3^p3*...*an^pn, n的约数总数为(p1+1)*(p2+1)*...*(pn+1), (0,1,...,p1)(0,1,...,p2)...(0,1,...,pn) 不难发现(1+2+...+p1+1)(1+2+...+p2+1)...(1+2+...+pn+1)即为所求 一般而言,任取一自然数N,他的因数有1,n1,n2,n3,……,nk,N, 这些因数的因数个数分别为1,m1,m2,m3,……,mk,k+2,则  1^3+m1^3+m2^3+m3^3+……+mk^3+(k+2)^3  =(1+m1+m2+m3+……+mk+k+2)^2 阅读全文
posted @ 2011-08-11 09:00 →木头← 阅读(718) 评论(0) 推荐(0)
POJ 2187 Beauty Contest 凸包的应用
摘要://POJ 2187 Beauty Contest 凸包的应用 //题意:给你一连串的点,要你求由这些点连成的线段的中最长的。。 //很明显想到凸包了,,因为最长的点肯定是在凸包上的。。 //好像直接暴搜也可以过。。没试过。。 阅读全文
posted @ 2011-08-10 21:52 →木头← 阅读(365) 评论(2) 推荐(0)
HUD 2215 Maple trees 凸包+最小覆盖圆
摘要:HUD 2215 Maple trees 凸包+最小覆盖圆 //题目就不讲了,赤裸裸的凸包。要注意每个点的半径是1,所以在求出半径之后还要再加上0.5.。 //这题只是在HDU 2202 最大三角形上做了一点变化。。 //要注意的地方我写在下面。。 阅读全文
posted @ 2011-08-10 20:42 →木头← 阅读(357) 评论(0) 推荐(0)
HDU 1348 wall 凸包模板题 求周长
摘要:HDU 1348 wall 凸包模板题 求周长 //题目就不讲了,赤裸裸的凸包。。 阅读全文
posted @ 2011-08-10 17:23 →木头← 阅读(644) 评论(0) 推荐(0)
HDU 2202 最大三角形 凸包模板题
摘要:HDU 2202 最大三角形 凸包模板题 知道海伦公式就可以解。。 阅读全文
posted @ 2011-08-10 17:19 →木头← 阅读(687) 评论(0) 推荐(0)
凸包模板
摘要://下面是我的模板;; //题目就不讲了,赤裸裸的凸包。。 //注意:须先将n赋值,点数需大于二,求凸包的点的下标放在sta[]中,而不是凸包的点放在point[]中 阅读全文
posted @ 2011-08-10 17:17 →木头← 阅读(921) 评论(0) 推荐(0)
队列的基本使用方法
摘要:队列的基本使用方法 include 详细用法: 定义一个queue的变量 queue M 查看是否为空范例 M.empty() 是的话返回1,不是返回0; 从已有元素后面增加元素 M.push() 输出现有元素的个数 M.size() 显示第一个元素 M.front() 显示最后一个元素 M.back() 清除第一个元素 M.pop() 阅读全文
posted @ 2011-08-10 17:15 →木头← 阅读(821) 评论(0) 推荐(0)
HDU 2276 Kiki & Little Kiki 2
摘要:HDU 2276 Kiki & Little Kiki 2 题目大意:题目大意给定一系列灯的初始状态,0代表暗,1代表亮,每一秒所有的灯都有可能发生状态切换, 切换规则:当前灯的左边第一个灯是亮的,则当前的灯切换状态,如果当前灯的左边第一盏灯是暗的,则当前灯的状态无需变化 阅读全文
posted @ 2011-08-10 17:13 →木头← 阅读(451) 评论(0) 推荐(0)
POJ 1061 青蛙的约会 扩展欧几里德算法
摘要:POJ 1061 青蛙的约会 扩展欧几里德算法 此题其实就是扩展欧几里德算法-求解不定方程,线性同余方程。   设过s步后两青蛙相遇,则必满足以下等式:     (x+m*s)-(y+n*s)=k*l(k=0,1,2....)   稍微变一下形得:     (n-m)*s+k*l=x-y 令n-m=a,k=b,x-y=c,即     a*s+b*l=c   只要上式存在整数解,则两青蛙能相遇,否则不能。 阅读全文
posted @ 2011-08-10 17:11 →木头← 阅读(378) 评论(0) 推荐(0)
POJ 1131 Octal Fractions 任意进制之间小数的转换
摘要:POJ 1131 Octal Fractions 任意进制之间小数的转换 //给定一个八进制的小数题目要求你把它转换为十进制小数, //转换后小数的位数是转换前八进制小数位数的3倍且不输出末尾无意义的零(即后置零). // 我采用的方法是乘10然后对8取整(现在假设将p进制的小数转换为n进制,同样采用乘n取整:), //每转换一位,都必须从最低位s[len-1]开始至小数的最高位(即小数点后的一位), //每次计算积 g=a[j]*n+k(其中k为下一位积的进位),本位进位数 k=g/p, //积在本位存入 s[j]=g%p;最后的整数k作为转换的一位存放于转换结果字符串中。 阅读全文
posted @ 2011-08-10 17:09 →木头← 阅读(837) 评论(0) 推荐(0)
流水账。。。
摘要:生活 阅读全文
posted @ 2011-08-07 10:33 →木头← 阅读(302) 评论(0) 推荐(0)