ACM解题报告
文章平均质量分 58
Keith_windniw
星辰大海
展开
-
RMQ+二分 - CF 689D Friends and Subsequences
CF 689D Friends and Subsequences 题解原创 2016-07-08 22:11:53 · 466 阅读 · 0 评论 -
后缀数组 - poj1743 Musical Theme
题目:http://poj.org/problem?id=1743题意:给一个序列,对序列中一段区间[l,r],若此区间中的数均加上或减去同一个数后,与序列的另一区间[l1,r1]相同,且[l,r]与[l1,r1]不交,称这一区间重复出现,求序列中至少重复出现一次的最长区间长度,若该长度小于5输出0思路:看起来很麻烦,事实上做一个简单转化,两段区间重复即意味原创 2015-09-02 11:52:08 · 346 阅读 · 0 评论 -
后缀数组 - poj2758 Checking the Text
题目:http://poj.org/problem?id=2758题意:给一个字符串,提供两种操作,操作I:在 当前 第i个字符之前插入字符c;操作Q:求 原序列后缀i,与后缀j的LCP,计算LCP时应把插入字符一起算上思路:确实没看出来这玩意能用后缀数组搞……啊本题有好几个坑需要额外注意:1. 插入时候的位置指的上当前序列;2. 询问的位置指的原创 2015-09-02 16:21:58 · 1095 阅读 · 0 评论 -
后缀数组 - poj3294 Life Forms
题目:http://poj.org/problem?id=3294题意:求n个字符串中,至少在一半以上的字符串中出现的最长公共子串思路;后缀数组处理的又一经典问题在每个字符串末尾添加一个不同的,小于所有串的任一字符的字符作为分隔标记,然后把所有串拼起来,形成一个新的字符串,对这个字符串求后缀数组,然后二分枚举长度mid,将问题转化为判定问题是否存在长度为mi原创 2015-09-02 15:57:20 · 336 阅读 · 0 评论 -
DP - hdu5290 Bombing plan
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5290题意:给一棵树,节点i 上有权值w[ i ],攻击节点i 的同时,会把所有与i节点距离在w[i]内(包括w[i])的节点全部摧毁,任意一边的长度都为1,问至少需要几次攻击才能把整个树的节点全部摧毁思路:树形DP,用两个数组存储节点状态F[i][j]:i节点及其子原创 2015-08-05 22:18:46 · 1052 阅读 · 2 评论 -
后缀数组 - poj2774 Long Long Message
题目:http://poj.org/problem?id=2774题意:给两个字符串,求最大公共子串的长度思路:后缀数组模板题,我是拿这题来入门后缀数组的在两个字符串中插入一个比两个字符串中任一字符小的字符,在本题中即插入一个('a'-1),然后合并两个字符串,在其他题解中会看到,当合并多个字符串时,要在每个间隔都加上一个不同的逼所有字符串中任一字符小的字符原创 2015-09-02 11:22:28 · 354 阅读 · 0 评论 -
后缀数组 - poj3261 Milk Patterns
题目:http://poj.org/problem?id=3261题意:给一个数组,求数组中至少出现k次的最长可重叠子串思路:后缀数组可以解决的经典问题之一先建立后缀数组,然后二分枚举长度,把问题转化为是否存在一个至少出现k次的长度为mid的可重叠子串,这个判定问题可以在O(n)的时间内解决,遍历一次后缀数组即可,乘上二分的时间复杂度O(lgn),O(n原创 2015-09-02 11:36:24 · 349 阅读 · 0 评论 -
搜索 - hdu5289 Assignment
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5289题意:给定一个序列,及界限值k,问该序列中存在多少个区间,满足区间内任意两个数字之差的绝对值小于k思路:利用RMQ算法,用nlogn的时间复杂度先算出每个区间的最大最小值枚举每个区间的左值L,二分搜索最大的区间右值R则最大区间[L,R]的贡献为R-L+1原创 2015-08-04 20:44:49 · 394 阅读 · 0 评论 -
搜索 - hdu5288 OO’s Sequence
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5288题意:给定序列,问对该序列的每个区间,有多少个数字满足,在该区间中,其他数字都不是该数字的因数思路:观察数字范围只有10^4,算出每个数字极左因数的位置,极右因数的位置,则该数字贡献为(R-X)(X-L),其中X为该数字在序列中的位置预处理算出10^4内每个数字的因数,用y原创 2015-08-04 20:36:01 · 356 阅读 · 0 评论 -
网络流 - hdu5294 Tricks Device
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5294题意:给一个图,2000点,60000边,图中存在多条权值相同的1->n的最短路,第一个问题:删去多少条边后,1->n的最短路径变长;第二个问题:求1->n最短路中,经过节点最少的最短路径的节点数思路:在spfa算法中加入一个siz数组,siz[v]记录起点到v点的原创 2015-08-14 15:45:22 · 322 阅读 · 0 评论 -
DP - hdu5009 Paint Pearls
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5009题意:有一串珠子需要染色,允许每次染一段区间,代价为这段区间的颜色总数color^2,求最小代价思路:感觉就是DP,然而就是搞不出怎么DP给跪了先提出一个基础的DP思路 dp[i] = min{dp[j]+num[j+1,i]^2},dp[i]代表[1,i]原创 2015-09-03 20:55:49 · 339 阅读 · 0 评论 -
LCT - hdu5002 Tree
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5002题意:给一棵树树,提供四种操作1:删除(x,y)边,添加(a,b)边,保证操作前后都是合法的树2:修改a--b路径上所有点的权值为x3:a--b路径上所有点的权值增加d4:输出a--b路径上的第二大值及出现的次数,这里的第二大指的为严格第二大,即1 1 2 2原创 2015-09-09 03:14:03 · 408 阅读 · 0 评论 -
DP - hdu5000 Clone
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5000题意:某君拥有n个属性值,某天闲着无聊克隆了若干个自己,若克隆体A的每格属性均大于等于克隆体B,则克隆体B会被杀死,给出n个属性值的上限,问最多能存活几个克隆体思路:数据量极小的问题一般都是DP = = 数据量极小的题一般都是DP = = 数据量极小的题一般都是原创 2015-09-02 17:01:28 · 340 阅读 · 0 评论 -
三分 - CF 578C Weakness and Poorness
CF 578C Weakness and Poorness 解题报告原创 2016-07-03 03:33:19 · 674 阅读 · 0 评论 -
数论 - CF 687B Remainders Game
题目:NP-Hard Problem题意:给定k,以及n个数cic_i,问是否存在x1,x2x_1, x_2,满足以下两个条件 x1≡x2(mod ci),i∈[1,n]x1≢x2(mod k)x_1 \equiv x_2 (mod \text{ }c_i) , i\in[1,n] \\x_1 \not \equiv x_2(mod \text{ }k)思路:数论写的少,烦恼跑不了- -假设x原创 2016-06-30 17:08:24 · 462 阅读 · 0 评论 -
DP - CF 611D New Year and Ancient Prophecy
题目New Year and Ancient Prophecy题意将一个纯数字串划分成若干段,要求各段代表的数值严格递增,不允许出现前导零思路一开始将状态划分成[i,j,k],代表[i,j]区间段,结尾段长度为k,发现写不出转移方程,而且空间时间复杂度都不太科学 重新考虑状态,dp[i,j]代表区间段[0,i],结尾段长度为j+1(!注意,这里不是j,当然处理成j更直观), 这样可以列出状态转移方原创 2016-06-30 02:59:51 · 700 阅读 · 0 评论 -
二分 - CF 650B Image Preview
题目:http://codeforces.com/problemset/problem/650/B题意:给定n,a,b,t与序列为s的照片,s[i]为w或h,初始时处于s[0],每滑动一张照片消耗为a,浏览消耗为1,若s[i]为w,则必须消耗b翻转后才可浏览,处于s[0]时可左滑到s[n-1],反之亦然问最大消耗为t的条件下,最多可浏览的照片数量思路:原创 2016-04-14 23:13:57 · 371 阅读 · 0 评论 -
图论 - hdu5348 MZL's endless loop
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5348题意:给一个无向图,在各边添加方向使其成为一个有向图,且满足每个点出入度之差的绝对值小于2,若无法满足输出-1思路:对于一个无向图,始终存在解;若图不连通,各连通子图之间不互相影响,视为连通图处理即可;对于一个环,其各个点出入度之差必为0,,对于一条线段,除了其原创 2015-08-22 21:37:07 · 506 阅读 · 0 评论 -
LCT - hdu4010 Query on The Trees
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4010题意:给一棵树,四种操作1:添加(x,y)边,若x,y在同一棵树上,则操作非法2:删除(x,y)边,若x = y 或者 x,y不在同一棵树上,则操作非法3:x--y的路径上每一个结点的权值增加w,若x,y不在同一棵树上,则操作非法(注意这里给的顺序是w x y 不是原创 2015-09-09 03:01:14 · 363 阅读 · 0 评论 -
伸展树 - hdu1890 Robotic Sort
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1890题意:某台机器要排序一个序列,然而这台机器只能实现一种操作,将序列中某段区间完全翻转,某君提出了个思路,对长度为n的序列,机器只要翻转n次,第i次找到[i,n]中最小的数x的位置k,然后翻转[i,k]即可(想不明白为什么这么翻就可以的请看样例去),求输出每次翻转前的序列中,x的位置原创 2015-09-03 21:27:31 · 466 阅读 · 0 评论 -
后缀数组 - hdu5008 Boring String Problem
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5008题意:将一个字符串的所有不同子串按字典序排序,多次询问第k小的子串所在位置,多个位置时输出最前的位置思路:先考虑如果只询问第k小的子串是什么,可以用后缀数组轻易解决,因为对于后缀i,其能产生的子串数量为len - height[i] - sa[i],因此,用b数原创 2015-09-03 20:41:25 · 647 阅读 · 0 评论 -
DP - hdu5001 Walk
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5001题意:给一个无向图,某君一开始随机选择一个点,然后走d步,每步随机跳转到一个相邻结点,即使是走过的也可以,问d步走完后每个点没走过的概率是多少思路:数据量很小的题一般是DP = = 数据量很小的题一般是DP = = 数据量很小的题一般是DP = =事实证明不要把原创 2015-09-02 17:10:00 · 295 阅读 · 0 评论 -
数论 - hdu5363 Key Set
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5363题意:集合S为{1,2..n},问S有多少个子集,满足集合中数字之和为偶数思路:记集合S中偶数个数为even,奇数个数为odd,集合中数字之和为奇数的子集数为2^even - 2 ^ (odd-1),总数为2^n,相减即可,因为n的数字过大需要使用快速幂原创 2015-08-14 16:20:45 · 335 阅读 · 0 评论 -
杂题 - hdu5357 Easy Sequence
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5357题意:给一个只含‘(’‘)’两个字符的字符串,问每个括号出现在几个合法子串中,子串合法的要求为子串内括号匹配思路:题目给出的序列未必合法,若不合法,切分成一个个独立的区间处理即可,因为两个独立区间间不可能形成新的合法子串如上图,把每个独立区间抽象为树的形原创 2015-08-15 14:20:27 · 433 阅读 · 0 评论 -
数论 - hdu5223 GCD
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5223题意:已知一个序列若干区间内数字的最大公约数,问是否能复原出原序列,输出最小满足条件的序列思路:初始设序列上所有数字均为1,对每个区间上每个数字,变成原数字与公约数的最小公倍数,最后再检查一次结果序列每个区间是否满足代码:#include #i原创 2015-05-07 15:24:15 · 539 阅读 · 0 评论 -
图论- hdu5222 Exploration
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5222题意:给一个图,图中有若干有向边,若干无向边,有重边,无自环,问图中是否存在环思路:分类考虑先判断无向边中是否存在环,若不存在,则仅由 点 与 无向边 组成的图,为若干独立的连通子图,且均为生成树;再考虑有向边,若存在一有向边弧头和弧尾属于同一连通子原创 2015-05-08 16:00:30 · 367 阅读 · 0 评论 -
dp- hdu 5218Game
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5218题意:n个人成环,从第一个人开始,每次间隔m个人杀掉一个人,直到剩下最后一个人与约瑟夫环相比,每次跳的间隔m不再确定,而是一个数字集合中随机的一个数,求最后可能活下来的人思路:核心思路还是约瑟夫环的重编号,为了方便每次编号从0开始,枚举每一个m值save[i原创 2015-05-08 16:00:03 · 559 阅读 · 0 评论 -
图论- hdu5215 Cycle
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5215题意:给一个无向图,无自环,无重边,问图中是否存在边数为奇数与偶数的环思路:二分图染色可以解决奇环,但偶环没办法直接处理考虑到所有的环都出现在双连通子图中,用tarjan算法找出图中所有的桥,删掉再对每个双连通子图单独染色,若在一个子图中出现了两个以上的奇环,则该图必然存在原创 2015-05-08 21:00:07 · 566 阅读 · 0 评论 -
搜索- poj2965 The Pilots Brothers' refrigerator
题目:http://poj.org/problem?id=2965题意:给定4*4方格,每格中为0或1,当翻转某格时,该格所在行及列随之翻转,求将全部格子变成1的最少步数思路:递归搜索问题:用单个数字表示,待处理格子的位置;但在转化下标时,/, %运算没有处理好代码:#include #include struct pos原创 2015-04-20 17:08:32 · 342 阅读 · 0 评论 -
搜索 - poj1753 Flip Game
题目链接:http://poj.org/problem?id=1753题意:4*4棋盘,每个格子上黑或白棋子一枚,翻转棋子时相邻的四个棋子都会随之改变颜色,问最小翻转步数,若无输出“Impossible”思路:对于这种翻转游戏,翻转顺序不会影响结果,直接枚举即可,时间复杂度2^16核心算法是从16个数中分别选出1.2.3.....16个数代码:#includ原创 2015-04-20 09:12:41 · 308 阅读 · 0 评论 -
数论-位运算 xmu1080 The Lost Two Cards
1080: The Lost Two CardsTime Limit: 2500 MS Memory Limit: 64 MBSubmit: 27 Solved: 0[Submit][Status][Web Board]Description Having signed a new contract, ArXoR was facing a new task.原创 2015-04-20 06:48:57 · 363 阅读 · 0 评论 -
杂题- poj2109 Power of Cryptography
题目:http://poj.org/problem?id=2109题意:给两个数字n,p,求k使得k^n=p其中p参考:http://blog.csdn.net/lyy289065406/article/details/6642602思路:double的大小范围是10^(-307) ~ 10^(308),但精确位只有前16位,考虑到高次方后数据差别极大,可直接计原创 2015-04-23 20:33:08 · 378 阅读 · 0 评论 -
贪心- poj1017 Packets
题目:http://poj.org/problem?id=1017题意:给若干个边长分别为1,2,3,4,5,6的正方形,问最少需要几个边长为6的正方形才可以把它们都包括进去思路:一般性问题比较难以解决,但这题边长数量极少,可以采用贪心加枚举的方法优先放边长较大的正方形,放完还有空位就用2,1的正方形去补代码:#include int main(){ int原创 2015-04-23 10:30:18 · 362 阅读 · 0 评论 -
贪心 - poj3258 River Hopscotch
题目:http://poj.org/problem?id=3258题意:给定X轴上N个点的坐标,不包括起点和终点,起点坐标为 [ 0 ],终点坐标为 [ L ] ,记删掉M个点后,剩下的所有相邻点间的距离最大值为max,求max的最小值思路:贪心枚举+二分搜索记初始情况下,相邻点间最小值为 low,最大值为high,则最终结果必然是区间 [ low,hi原创 2015-06-21 16:41:52 · 298 阅读 · 0 评论 -
贪心 - poj3273 Monthly Expe
题目:http://poj.org/problem?id=3273题意:给定一组序列N个数字,初始时各自为一个集合,相邻集合可以合并,记合并结果为M个集合时,每个集合的元素之和的最大值为s,求s的最小值思路:贪心枚举+二分搜索思路同POJ3258 可参见另一篇题解,不同之处在于本题求最小的最大值,而3258求最大的最小值,所以,本题最后应输出 low,而原创 2015-06-21 17:01:13 · 465 阅读 · 0 评论 -
贪心 - poj3122 Pie
题目:http://poj.org/problem?id=3122题意:F+1个人分N个派,派可以切分但是每个人只能得到一块派,每个人得到的派体积必须相同,问最大可分体积思路:二分+贪心,最大可分的体积为最大派的体积,最小可分为0,二分遍历即可这道题比较坑的地方在于要注意PI的精度,虽然题目只要求到3位小数,但是PI使用3.1415926会出错,这种常数原创 2015-06-30 19:18:24 · 383 阅读 · 0 评论 -
模拟 - hdu5360 Hiking
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5360题意:某君要邀请n个人去郊游,每个人都有奇特的要求,对于第i个人,只有当前答应去郊游的人数cur满足MIN[i]思路:先依据所有人min进行排序,当邀请人数为cur时,把数组里所有min等于cur的人放入优先队列,邀请队列中max最小,且max代码:原创 2015-08-14 16:14:10 · 295 阅读 · 0 评论 -
枚举 - hdu5353 Average
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5353题意:n个人排成一个环,第i个人拥有Ai根蜡烛,每次操作为:从相邻的人那里得到一根蜡烛,或把自己的一根蜡烛给相邻的人,每两个人之间最多进行一次操作,问能否存在这样的操作序列,使得最后每个人的蜡烛数量相等,如果可以,输出操作序列。注意:每个人拥有的蜡烛数量在操作完不能为负原创 2015-08-14 16:05:15 · 380 阅读 · 0 评论 -
树链剖分 - hdu5221 Occupation
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5221题意:给定一棵树,每个结点上有一个权值,然后给Q个操作,每个操作为:1. 占领这个树上两个结点路径上的所有结点,包括起点和终点;2. 取消某个结点的占领; 3. 占领以某个结点为根的整棵子树; 对于每个操作,返回完成这个操作后整棵树被占领结点的权值之和思路:操作原创 2015-08-11 14:17:49 · 367 阅读 · 0 评论 -
树形DP - hdu5293 Tree chain problem
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5293题意:给定一棵树,再给出若干树上的链,每条链拥有一个权值,问如何挑选这些链能使得权值之和最大,且被选中的链没有公共结点,求最大权值思路:看题解的过程中有看到用离线lca+时间戳+树形dp解法的,感觉那种解法会更加高大上...嗯不会离线lca所以这题用了树链剖分+线段原创 2015-08-11 14:38:17 · 324 阅读 · 0 评论