
poj
ww140142
wwwwwww
展开
-
poj-2750 Potted Flower
题意:给出一个n个结点的环,在这个环上取一段区间(不能是整个环),使权值和最大;m次修改某个结点权值,每次修改后输出最大值;n,m题解:这道题的难点主要在于给出的是一个环而不是序列;所以选择一个点把环拆成序列,那么就可以把问题转化成:在一个序列中,取一段子序列,或两边都取两段序列,是权值最大;这个答案就是在这个序列里取区间的max(最大值ma,序列和sum-原创 2015-06-04 19:51:06 · 1165 阅读 · 0 评论 -
poj-2318 TOYS
题意:给出平面上一个矩形和n个纵向分割矩形的直线;直线之间互不相交,将矩形分割为n-1个块;现在矩形上有m个点,求每个块内有几个点;n,m题解:首先将直线求出来,然后最朴素的想法是拿一个点一一和块去比较;这样复杂度是O(nm)的,并且实际上做了许多无用的计算;例如:当你用一个点去比较一个块之后,实际上已经可以知道这个点是在块的左面还是右面了;也就是说原创 2015-07-31 11:24:59 · 756 阅读 · 0 评论 -
poj-1265 Area
题意:给出一个顶点在格点上的多边形,顶点逆时针给出;求1.多边形内部格点数,2.多边形边上格点数,3.多边形面积;题解:本题问题顺序与难度无关!看完了pick定理之后,我猜测是用前两个格点数求出图形面积!然后我特么就傻x了!真相其实还是用叉积来求面积。。。然后记录边上的格点数,也就是边这个向量的gcd(x,y)注意x,y应该取绝对值,否则求出来一个负数岂原创 2015-07-31 19:15:45 · 626 阅读 · 0 评论 -
poj-1741 Tree
题意:给出一个边上带权的无根树;求距离不大于m的结点对数;多组数据,n题解:1/8个男人留念吧。。学了树的分治之后来切这道题,听别人讲完写写就A了;但是发现自己模板写的好烂,改了一大通;这题就是考虑点分治,每次在当前子树中找经过重心的点对数;那么就是将以重心为根的距离dis数组排序,然后双指针乱扫线性找出结点对数;但是这里可能会出现在同一子树中的情况原创 2015-07-22 09:22:41 · 1136 阅读 · 0 评论 -
poj-2409 Let it Bead
题意:给出c种颜色和s个珠子;将珠子染色后穿成一个环;旋转和翻转相同的视为同构;求方案数;题解:polya计数的裸题;定义m为颜色数,c(Pi)为Pi这个置换的循环节个数;那么根据定理,答案L为;然后只要求出各个置换的循环节就好了;题中允许两种置换,先考虑旋转;旋转有n种置换方式,分别是转0,转360/n,转2*360/n....原创 2015-07-22 15:03:57 · 1011 阅读 · 0 评论 -
poj-3286 How many 0's?
题意:求[A,B]区间内0的个数;0题解:裸数位DP吧;令f[i][j]表示i位数以j开头含零的个数;sum[i]表示不含前导零的i位数含零的个数;然后按位分解瞎TM乱搞;注意枚举每一位可能值的时候要加上高位的零个数*10^位数;就是说前面确定了之后后面所有数都有这些零;这题还是调了半天。。。我还是太弱乱搞功底不足啊;我至今的数位DP还是原创 2015-08-04 14:17:20 · 833 阅读 · 0 评论 -
poj-1743 Musical Theme
题意:给出一个长度为n的序列;求这个序列中最长两个长度相等且对应位置作差相同的子串的长度;n题解:首先可以将序列差分,差分之后这个问题就转化成了一个最长重复不交子串问题了;求解最长重复不交子串的话,考虑到子串是后缀的前缀;那么利用后缀数组,将后缀排序之后,在height数组上乱搞;具体呢?二分答案,判定是否有长度等于mid的这种子串存在;判定是在he原创 2015-09-02 19:00:29 · 721 阅读 · 0 评论 -
poj-2079 Triangle
题意:给出平面上的n个点,求其中三个点组成的最大三角形面积;n题解:一道xuanzhuankake题;主要的思路对于三角形来说,它的面积可以用底乘高除二的公式求;而原创 2015-09-09 14:09:32 · 1696 阅读 · 1 评论 -
poj-1379 Run Away
题意:给出一个矩形作为边界,内部有n个点;求一个点到这些点距离的最小值最大;n题解:最小值最大——二分答案!然而并不能做到= =正解似乎是一个叫做Voronoi的神奇东西;不过写个20k的精确算法不如秒个2k的骗分算法A掉它嘛;这道题我写的就是模拟退火;首先设中点为起点似乎比较美观吧;然后就是普通的退火过程,照着百度百科扒一扒那几句话就好;原创 2015-09-09 20:10:38 · 1822 阅读 · 1 评论 -
poj-1066 Treasure Hunt
题意:有一个100大小的矩形房间,房间内有n堵墙;每一堵墙都是横跨房间的,并且没有三个墙交于一点;房间中的某个点有宝物,问从房间外面打破几道墙能到达宝物的地方;题解:思路十分神奇的一道题;首先比较直观的思路就是建立对偶图跑最短路;但是这我也不会写啊= =;考虑到这些墙有一些特殊性——横跨房间;就有了一种神奇的算法:枚举房间外层的点,判断对于每一堵墙起原创 2015-09-05 15:44:12 · 906 阅读 · 0 评论 -
poj-2826 An Easy Problem?!
题意:给出平面上的两条线段,现在有竖直下落的雨;求这两条线段最多能接到多少雨;题解:听起来挺朴实的一道题,但是并不怎么好做,因为计算几何的实数。。实际上可以把这道题分为两个步骤:判断水能不能进入容器,计算容器能装多少水;第二步比较容易,我直接底乘高乱搞了;主要是对接水的判断,这一步有一个挺正确的性质:线段口的向量在较高边的向量和竖直向量中间的时候,接不到水;原创 2015-09-06 22:27:47 · 1755 阅读 · 0 评论 -
poj-3740 Easy Finding
题意:给出一个n*m的01矩阵,选择其中的一些行,来精确覆盖每一列;只需要输出是否存在解即可;n题解:DLX裸题,利用双向十字链表优化搜索中的回溯问题;因为每一列上都只能有且仅有一个1,所以如果某一列上已经有了1,那么这一列上有1的其他行也可以被删除;根据这个思想是我们有了一个很厉害的剪枝条件,但是如果直接在矩阵中删除速度太慢,要求空间太多;所以就有了这种支原创 2015-11-11 08:03:27 · 1452 阅读 · 1 评论 -
poj 3076 Sudoku
题意:给出一个16*16的数独,要求你将其补全;数据保证给出的数独有且仅有一个解;题解:数独毕竟是数独,并不像今年NOIP考的那个幻方那样有构造方案;显然这种看上去就很难的问题我们只能靠人类智慧或者用力暴搜;朴素的搜索就是每一个格子试探性的填入每一个数,然后递归进行直到找到一组解或者不能按照规律进行时停止;而为了解决数独问题,我们可以将其转化成精准覆盖问题来解决原创 2015-11-12 16:14:59 · 1266 阅读 · 0 评论 -
poj-2749 Building roads
题意:给出平面上的n个点和两个特殊点s1,s2,定义距离为曼哈顿距离;现想将这些点一些连到s1上,另外的连在s2上,并且连接s1,s2将整个图连成一颗树;有一些规则,使x,y不能连到一个点上,或者x,y必须连到一个点上;求所有可行方案中树的最小直径,如果没有合法方案输出-1;题解:对于这样一个最小化最大距离的问题我们很容易想到二分答案;进行二分之后,问题转化成了原创 2015-11-25 13:40:41 · 978 阅读 · 0 评论 -
poj-2888 Magic Bracelet
题意:给出n个珠子的项链和m种珠子;珠子之间有k对关系,这些珠子不能相邻;无法通过旋转变成相同的项链视为本质不同;求本质不同的项链个数,答案对9973取模;n题解:这显然是一个置换计数的问题;上burnside引理还是选择poi?上burnside引理,因为poi定理对颜色的限制要很宽泛才行!先考虑一种置换姿势,旋转x个珠子;那么就将项链分成了g原创 2015-08-12 16:49:36 · 1473 阅读 · 0 评论 -
poj-2758 Checking the Text
题意:给定一个字符串,要求维护两种操作:I:在字符串中插入一个字符;Q:询问某两个位置开始的LCP;插入操作题解:第一道RKhash题,原创 2015-07-24 20:08:02 · 1749 阅读 · 0 评论 -
poj-2057 The Lost House
题意:给出一颗有根树,边权均为1;一个S在根结点上,要找到在某个叶子结点上的它的房子;有的结点上有w,可以告诉S当前结点的子树上是否有它的房子;房子在每个叶子结点的概率相等,选择一种最佳的计划,来让S走的期望值最小;原创 2015-06-01 21:17:55 · 947 阅读 · 0 评论 -
poj-1947 Rebuilding Roads
题意:给出一颗树,剪去一些边将它变成一个含有m个结点的树;求减去的最小边数;1题解:显然是树形dp,考虑状态要包括当前结点信息和子树大小;就设状态f[ x ][ j ]为在以x为根的子树上,取包括x的j个点,所需要剪掉的边数;对于x的子结点y,深搜回溯之后的转移为:f[ x ][ j ]=min(f[ x ][ j-k ]+f[ y ][ k ]);原创 2015-05-31 19:10:22 · 718 阅读 · 0 评论 -
poj-2778 DNA Sequence
题意:给出n个AGCT组成的字符串和一个数m;求AGCT能组成的长度为m的串的个数;n题解:构造一个满足题意的长度为x的串之前,我们要先构筑出一个长度为x-1的串;显然倘若要让x的符合题意,x-1的必符合题意;那么既然串的前半部分都已经符合题意了,我们只需要考虑x-1那个串的后缀;就是说那个后缀再加上一个字符之后,能否满足题意;而当构造x+1的串时,x的原创 2015-05-21 22:13:24 · 800 阅读 · 0 评论 -
poj-3041 Asteroids
题意:给出一个01矩阵,求选择多少行或列,能将矩阵中的1全部覆盖;矩阵大小为n*n,有m个1存在;n题解:对于矩阵中的每一个1来说,选择行还是选择列都可以,并且只需要选择一个就可以了;如果我们把每个行和每个列抽象成一个点,就可以得到2n个点 (废话;对于每一个1的坐标(x , y),将x与y连一条边,用这条边来表示这个点;显然行与行,列与列之间不会连边,那原创 2015-05-19 18:53:24 · 686 阅读 · 0 评论 -
Poj-2796 Feel Good
题意:在一段长度为n的非负数列中,选出一段区间;使 区间和 与 区间最小值 的乘积最小;题解:我们考虑对于每一个数,当以它为最小值时,这个区间自然是越长越好;那么我们就向左找它可以到哪里,再向右找一遍;至于实现就是用单调栈,栈顶就是当前数的前一个比它小的数;记录每个数的L与R,然后预处理前缀和,取最大值就就好了;Hint:多组数据;该long原创 2015-04-20 22:07:49 · 986 阅读 · 0 评论 -
Poj-3420 Quad Tiling
题意:给出n和m,在一个4xn的地面上铺1x2的骨牌,求方案数;答案对m取模,多组数据;题解:这个显然就是骨牌覆盖问题嘛;状压dp搞一搞就好啦;然后我RE+TLE之后发现,n9这个就不好搞了,要用log级算法才行;于是就用矩阵乘法,做一个16x16的矩阵,表示各种状态之间的转移;初始矩阵就是a[0][0]=1,其他为0;至于用来快速幂的矩阵我用TLE原创 2015-04-10 16:53:27 · 877 阅读 · 0 评论 -
Poj-2528 Mayor's posters
题意: 大意就是在一个好长好长(10^7)的墙上贴好多好多(10^4)海报; 海报相互覆盖,求最后能看见多少海报;题解: 这题给出一个这样的一个墙,显然是要维护一个数据结构嘛; 比如用线段树维护这样子的区间更新(笑); 但是10^7大小我们就这么开一个树必然不行; 所以离散化是必要的; (我就会这么离散化怎样!) 然后机智的我用了并查集!想看码线段树的失望吧! 把所以区间离线下来,原创 2015-03-22 22:16:53 · 587 阅读 · 2 评论 -
Poj 3368 Frequent values
题意: 给定不降序列,询问区间中最多重复的次数。题解: 多次查询不变序列的最值,很容易考虑rmq去处理; 但是如果直接处理的话,显然最多相同数字个数不满足倍增性质; 所以我们要做一些其他预处理,比如用线段树解决(笑); 或者考虑,rmq[i][j]表示从i到i+2^j这段区间中,某数左侧与其相同的数字最大总数; 这个,是满足倍增性质的呢,我们把这个预处理出来,可是询原创 2015-03-20 22:37:59 · 789 阅读 · 0 评论 -
poj-3696 The Luckiest number
题意:给出一个数L,求一个最小的x,使长度为x的888...8这个数整除L;无解输出0,L题解:即求满足下式的最小x值:8/9*(10^x-1)==k*L (k为正整数)8*(10^x-1)==k*9*L为继续化简,求出r=gcd(L,8);8/r *(10^x-1)==k*9*L/r因为8/r与9*L/r互质,所以原式即为:原创 2015-06-29 18:42:33 · 887 阅读 · 0 评论 -
poj-3463 Sightseeing
题意:给出一个n点m边的有向图,求s到t的最短路和长度为最短路+1的路的种类数;n题解:对于长度仅为最短路+1的路,处理时我们可以放宽一些限制;只需求最短路和次短路,然后判断一下次短路是否满足情况就好了;那么,求最短路+次短路的算法就用dij来处理;令:dis[x][k]表示x点的最短路次短路长度;cnt[x][k]表示x点的最短路次短路分别的种原创 2015-07-06 21:02:28 · 1019 阅读 · 0 评论 -
poj-3764 The xor-longest Path
题意:给出一个有权树,求树上两点路径的最大异或和;n题解:考虑异或的性质,如果任选一点为根,处理出所有点的异或深度;那么将两点的深度异或起来,LCA到根的路径就异或了两次相当于没有;所以异或距离就是两点异或深度的异或和,问题就转化成了从n个数中选两个数使异或和最大;这个经典问题就可以把数字按位存进01trie树,从高位到低位贪心求解;复杂度O(31n);原创 2015-07-25 08:03:51 · 1099 阅读 · 0 评论 -
poj-3237 Tree
题意:给出一颗边上有权的树和三种操作;QUERY x y:查询x节点到y节点上的最大权值;CHANGE x y:将编号为x的边权值改为y;NEGATE x y:将节点x与节点y之间的路上所有边的权值取相反数数;节点数n题解:显然是树链剖分的算法,但是这里的权值在边上不太方便;所以就将边的权赋在这条边所连的较深点上(就是儿子节点啦);根节点的值没有意义;原创 2015-05-27 21:27:51 · 899 阅读 · 0 评论 -
poj-1474 Video Surveillance
题意:判断多边形是否存在核;点集顺时针或逆时针给出,n题解:半平面交模板题;多边形的核就在组成多边形的半平面的交上;也可以顺便说明多边形的核若存在则一定是凸的;原因似乎画画图是比较显然的;一个地方被挡住一定是因为那被另一条边挡住了嘛;注意半平面交的判断点与直线位置关系要用>=号;此题买一送二,我大胆地在提交框里改输出然后光荣的WA了= =原创 2015-08-12 18:37:58 · 832 阅读 · 0 评论 -
poj-1279 Art Gallery
题意:给出一个n个点的多边形,求多边形核的面积;多边形的核即为多边形内部的点集,使其中的点可以看到多边形的任意顶点和边;n题解:这应该也算是模板题的一种吧;求多边形核的方法现在是O(nlogn)的;将所有的直线按极角排序(math库中atan2()函数),然后线性的在双端队列里面搞搞;这样求出了半平面交的边集,也顺带求出了点集;求面积的话就直接叉积扫原创 2015-09-07 13:35:33 · 2081 阅读 · 0 评论