06 2018 档案

摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1415 看博客:http://www.cnblogs.com/Narh/p/9206642.html 看博客:https://blog.csdn.net/clove_unique/article 阅读全文
posted @ 2018-06-30 23:55 Zinn 阅读(184) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2440 莫比乌斯...被难倒... 看TJ:http://hzwer.com/4827.html 再看TJ:https://blog.csdn.net/xiefubao/article/deta 阅读全文
posted @ 2018-06-30 21:50 Zinn 阅读(155) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2115 异或两次同一段路径的权值,就相当于没有走这段路径; 由此可以得到启发,对于不同的走法,也许只需要找出一些东西,就可以把所有的走法用它们来异或表示出来; 再关注图上的环路,因为从 1 到 阅读全文
posted @ 2018-06-30 20:27 Zinn 阅读(134) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P3690 自己竟然从没有钻研过LCT上的连通性问题! 于是被最后一个点卡了,似乎因为 find 函数只能找出连通性而不能判断有没有直接相连的边; 所以还是直接在 cut 函数里判断一下好了。 (注:第9个点时T时不T 阅读全文
posted @ 2018-06-30 19:34 Zinn 阅读(158) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1875 有个限制是不能走回头路,比较麻烦; 所以把矩阵中的元素设成边的经过次数,单向边之间就好转移了; 最后从单向边的经过次数得到点的路径方案数。 代码如下: 阅读全文
posted @ 2018-06-30 15:30 Zinn 阅读(164) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2157 仍然是LCT模板题~ 不过有一些需要注意的地方,点和边的区分,0号点的 mx 和 mn 等等; 还有变成相反数的处理,要像线段树一样先修改再下传标记,那么查询时候就不用先 pushdow 阅读全文
posted @ 2018-06-29 16:25 Zinn 阅读(123) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1036 LCT水题! 然而没有1A(咬牙)! 注意值有负数,所以取 max 的话要把作为“哨兵”的 0号点 的 max 赋成很小的值才行。 代码如下: 阅读全文
posted @ 2018-06-29 11:50 Zinn 阅读(192) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2594 时间倒序一下,就是 魔法森林 那道题; 有个不解的地方,是 access 里面关于 pushup 的地方,两种写法都可以,但不明白没有注释掉的写法为什么也可以。 代码如下: 阅读全文
posted @ 2018-06-28 18:24 Zinn 阅读(179) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4237 分治; 先把所有点按 y 排序,然后二分递归; 对于每个 mid ,计算经过它的矩形的个数,把上面的每个点当做右上角,考虑下面多少点可以作为左下角; 上面的限制只有前面的 y 大于等于自 阅读全文
posted @ 2018-06-26 21:41 Zinn 阅读(157) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3262 第一道CDQ分治题! 看博客:https://www.cnblogs.com/Narh/p/9230515.html CDQ分治意外地很好写啊,而且好厉害!膜拜CDQ! 代码如下: 阅读全文
posted @ 2018-06-26 20:19 Zinn 阅读(160) 评论(0) 推荐(0)
摘要:题目:bzoj3295 https://www.lydsy.com/JudgeOnline/problem.php?id=3295 洛谷 P3157(同一道题) https://www.luogu.org/problemnew/show/P3157 洛谷 P1393(略有不同) https://ww 阅读全文
posted @ 2018-06-25 21:53 Zinn 阅读(325) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3196 人生中第一棵树套树! 写了一个晚上,成功卡时 9000ms+ 过了! 很要注意数组的大小,因为是树*树的大小嘛! 代码如下: 阅读全文
posted @ 2018-06-24 21:55 Zinn 阅读(243) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2705 一开始自己想了半天... 有了点思路:遍历 n 的因数 k,每个因数要预处理出 gcd 等于这个因数的数的个数 s[k]; 预处理过程中还要去重:s[k] = (n-1) / k , s 阅读全文
posted @ 2018-06-24 12:08 Zinn 阅读(206) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4195 突然在这道大水题上WA了半天... 思路很简单,离线处理询问,先把 = 的都加到并查集里,再暴力判断 != 的; 然而WA了许多遍...对离散化还是太不熟悉了... 1.fa[] 数组的 阅读全文
posted @ 2018-06-23 21:35 Zinn 阅读(164) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P2680 久违地1A了好高兴啊! 首先,要最大值最小,很容易想到二分; 判断当前的 mid 是否可行,需要看看有没有去掉一条边使满足的方案; 这就需要树上差分来找出每条边被几个超过 mid 的路线覆盖; 若有一条边正 阅读全文
posted @ 2018-06-23 20:20 Zinn 阅读(171) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1600 看博客:https://blog.csdn.net/clove_unique/article/details/53427248 思路好神啊... 树上差分是好东西。 代码如下: 阅读全文
posted @ 2018-06-23 12:06 Zinn 阅读(151) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1155 思路... 看博客:https://www.cnblogs.com/Narh/p/9213825.html 二分图什么的,字典序什么的,考场上怎么想出来... 代码如下: 阅读全文
posted @ 2018-06-22 21:09 Zinn 阅读(168) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P2827 思路... 用优先队列模拟做的话,时间主要消耗在每次的排序上; 能不能不要每次排序呢? 关注先后被砍的两条蚯蚓 x 和 y,发现砍完以后,它们的两部分对应还满足原来的大小关系! 从两条蚯蚓出发,可以推知所有 阅读全文
posted @ 2018-06-22 20:24 Zinn 阅读(138) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 构建分层图。 代码如下: 写法1(空间略大)(时间很慢): #include<iostream> #include<cstdio> #include<cstring> #include< 阅读全文
posted @ 2018-06-22 15:08 Zinn 阅读(151) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P2831 一开始想 n^3 贪心来着; 先按 x 排个序,那么第一个不就一定要打了么? 在枚举后面某一个,和它形成一条抛物线,选能顺便打掉最多的那个; 然后连样例都过不了... #include<iostream> 阅读全文
posted @ 2018-06-21 21:29 Zinn 阅读(147) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1514 搜索+DP; 自己想出来的方法第一次80分好高兴! 再改了改就A了,狂喜乱舞; 也就是 dfs,仔细一想第一行的每个点能覆盖到最后一行的点一定是连续的一段,否则没人能覆盖中间间断的点; 所以最上面每个点跑一 阅读全文
posted @ 2018-06-21 19:48 Zinn 阅读(123) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1854 这题...据说可以用并查集做,但没有去看... 用二分图匹配的话,就把装备和它的两个属性连边,再从属性开始从小到大进行匈牙利算法; 这样可以保证匹配这个属性时先确保前面的都匹配成功了; 阅读全文
posted @ 2018-06-21 11:34 Zinn 阅读(115) 评论(0) 推荐(0)
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1814 第一次的2-SAT,推荐博客:https://blog.csdn.net/jarjingx/article/details/8521690 但这题就是暴力; 还调了好久... 代码如下: 阅读全文
posted @ 2018-06-21 11:24 Zinn 阅读(107) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1898 求到达方案数...还是矩阵快速幂; 能够到达就把邻接矩阵那里赋成1,有鳄鱼的地方从各处来的路径都是0; 因为时间周期只有2,3,4,所以每12个时间就是一个循环; 可以用矩阵快速幂做了。 阅读全文
posted @ 2018-06-20 23:17 Zinn 阅读(165) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1291 水水的经典期望DP; 输出有毒。(其实也很简单啦) 代码如下: 阅读全文
posted @ 2018-06-20 17:54 Zinn 阅读(142) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1365 平方和怎样递推? 其实就是 (x+1)^2 = x^2 + 2*x + 1; 所以我们要关注这里的 x ——连续的 o 的期望长度; 另开一个数组 d 记录期望长度,转移即可。 代码如下: 阅读全文
posted @ 2018-06-20 16:09 Zinn 阅读(148) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1297 读懂题后就变得很简单啦; 对于一个问题和它的下一个问题,我们考虑: 设上一个问题有 a 个选项,下一个问题有 b 个选项; 那么上一道题中选到每个选项的概率是 1/a; 下面对应正确的概率是 1/b; 则总 阅读全文
posted @ 2018-06-20 15:06 Zinn 阅读(111) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2957 线段树维护两个值:cnt 能看到的最多楼房数; mx 最大斜率数; 对于一段区间,从左子区间的角度出发来限制右子区间,得到总区间的 cnt 和 mx; 转移时关注新斜率和左右子区间最大斜 阅读全文
posted @ 2018-06-20 10:34 Zinn 阅读(134) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1999 https://www.luogu.org/problemnew/show/P1099 “分析性质,O(n)扫描” 看了半天才懂...发现自己对树的直径的相关知识太不熟了... 这篇博客 阅读全文
posted @ 2018-06-19 18:42 Zinn 阅读(149) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1850 注释掉了一堆愚蠢,自己还是太嫩了... 首先要注意选或不选是取 min 而不是 /2 ,因为这里的选或不选不是随机的而是取最优的; 然后注意 double 类型不能 memset ,还是要手动赋值; 其实也 阅读全文
posted @ 2018-06-19 15:49 Zinn 阅读(145) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1597 就是斜率优化水题... 然而WA了十几遍,正负号处理真让人心累... 还是该负就负,别乱换了... 代码如下: 阅读全文
posted @ 2018-06-19 13:30 Zinn 阅读(144) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3612 看了好久才弄清楚题意... 原来整数划分就是这样的啊:https://blog.csdn.net/Vmurder/article/details/42551603 这种想法很经典呢,值得 阅读全文
posted @ 2018-06-19 11:13 Zinn 阅读(126) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1085 搜索,IDA*,估价就是最少需要跳的步数; 代码意外地挺好写的,memcmp 用起来好方便啊。 代码如下: 阅读全文
posted @ 2018-06-19 09:39 Zinn 阅读(172) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3670 第一次写KMP算法...又T又WA了半天... 1. num 数组表示包括其本身的前缀后缀相同个数,所以 num[1] = 1 ; 2.指针开两个,不要一个来回移动,不然会惨 T; nu 阅读全文
posted @ 2018-06-19 08:49 Zinn 阅读(164) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2049 第二道LCT! 这题是模板题,写了一遍以后感觉对LCT的认识又加深了。 代码如下: 阅读全文
posted @ 2018-06-18 23:31 Zinn 阅读(166) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P2679 DP水题; 然而被摆了一道,下面加 // 的地方都是一开始没写好的地方...还是不周密; 仔细审题啊...连在一起的两块也可以人工看作是两块的。 代码如下: 阅读全文
posted @ 2018-06-18 21:47 Zinn 阅读(157) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3669 第一道LCT! 主要是看这个博客理解学LCT板子:https://blog.csdn.net/yxuanwkeith/article/details/50991326 关于这道题,又看了 阅读全文
posted @ 2018-06-18 12:28 Zinn 阅读(159) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-06-18 10:12 Zinn 阅读(4) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P3778 转化有点技巧; 其实直接关注比率的上下两项,也就是盈利和时间; 通过暴枚和 floyd 可以处理出两两点间的最大盈利和最小时间,就不用再去关注原图了; 然后就是裸的01分数规划,枚举 ans ,连完全图,判 阅读全文
posted @ 2018-06-17 22:57 Zinn 阅读(240) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4196 树链剖分。 代码如下: 阅读全文
posted @ 2018-06-15 18:40 Zinn 阅读(182) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4881 连题意都转化不了了... 题意是要求从一个数列中选出两个上升序列的方案数; 先判断是否有解,如果最长下降子序列长度>2(有两条以上的线相互交织)则无解,先用树状数组判断一下; 分成一个个 阅读全文
posted @ 2018-06-15 17:38 Zinn 阅读(224) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P4550 推式子……:https://blog.csdn.net/pygbingshen/article/details/24852081?__=a800 关键在于设出合适的变量,哪怕带有无法处理的无穷; 目的是找到 阅读全文
posted @ 2018-06-15 14:55 Zinn 阅读(204) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1858 线段树...调了一个上午...(后面带 // 的都是改出来的) lazy 标记的下放好麻烦,还得考虑赋值和取反的先后顺序什么的... 因为在取反时把赋值标记 swap 了,所以下放的时候 阅读全文
posted @ 2018-06-15 11:32 Zinn 阅读(125) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3626 思路很巧妙,把区间换成前缀和相减; 把 l ~ r 到根路径上的点的点权都+1,然后 z 到根求和,就是 z 与 l ~ r 每个点 lca 深度的和; 这里若要用前缀和,则需要把询问离 阅读全文
posted @ 2018-06-14 23:32 Zinn 阅读(193) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2809 思路有点暴力和贪心,就是 dfs 枚举每个点作为管理者; 当然它的子树中派遣出去的忍者越多越好,只要不超过预算; 所以需要能够合并子树情况的、能反映最大值节点的数据结构,也就是左偏树(可 阅读全文
posted @ 2018-06-14 21:31 Zinn 阅读(158) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2743 和 HH的项链 那道题很像,也是类似的做法; 但不同的是这里的点只有有前驱时才起作用; 自己的思路还是不清晰,总想着遍历到的这个点如何如何... 其实跟这个点无关,只关注它的前驱,给前驱 阅读全文
posted @ 2018-06-14 20:23 Zinn 阅读(168) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-06-14 09:52 Zinn 阅读(7) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2038 就是莫队算法; 先写了个分块,惨WA: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #in 阅读全文
posted @ 2018-06-13 22:49 Zinn 阅读(233) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2442 设 f[i] 为答案,则有 f[i] = max { f[j] - s[j+1] } + s[i] ; 所以用单调队列维护 f[i] - s[i+1]; 没有1A!!原因是遍历的起点不是 阅读全文
posted @ 2018-06-13 20:04 Zinn 阅读(203) 评论(0) 推荐(0)
摘要:题目:http://poj.org/problem?id=3046 就是多重集组合数(分组背包优化); 从式子角度考虑:(干脆看这篇博客) https://blog.csdn.net/viphong/article/details/48110525 从意义的角度来考虑: 当 j<=a[i] 时,f[ 阅读全文
posted @ 2018-06-13 14:39 Zinn 阅读(209) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1588 使用双向链表! 离线做,先抽出来排个序,按排序确定每个位置的 pre 和 nxt ,然后倒序查找,找完一个就删除一个值,更改 pre 和 nxt。 代码如下: 阅读全文
posted @ 2018-06-13 08:08 Zinn 阅读(159) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P3004 似乎有点博弈的意思,但其实是DP; f[i][j] 表示 i~j 的最优结果,就可以进行转移; 注意两个循环的顺序,要先算出 i+1 ,但要用之前的 j-1 ,所以一个倒序一个正序。 代码如下: 阅读全文
posted @ 2018-06-12 19:25 Zinn 阅读(209) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1527 整体二分,先把所有询问都存下来; 然后二分一个值,小于它的加到二维树状数组的前缀和里,判断一遍所有询问,就分出了这些询问的答案是否大于这个值; 然后分组递归下去求解即可; 注意加二维树状数组的那个nw是全局 阅读全文
posted @ 2018-06-12 17:03 Zinn 阅读(334) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1503 虽然是平衡树裸题,但一直TLE,只好改了insert和move的写法... 本来想着每次降工资就把工资-det加进去,转到根节点,然后把小于它的都删掉,再把它也删掉这样... 而且连in 阅读全文
posted @ 2018-06-12 14:41 Zinn 阅读(183) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4811 因为位运算的结果有可合并性,所以可以树链剖分,线段树维护; 细节很多,特别要注意从左往右运算和从右往左计算是不同的,在不同条件下一定要区分!!! 这篇博客写得很好(我就是模仿它写的):h 阅读全文
posted @ 2018-06-12 09:29 Zinn 阅读(198) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1018 线段树竟然还可以这样用! 维护的是一个矩形内部的连通情况,四个顶点之间有6种连通方式; 因为连通情况具有可合并性,所以可以用线段树来维护! 这篇博客写得很好:https://www.cn 阅读全文
posted @ 2018-06-11 20:41 Zinn 阅读(175) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2002 第一次用分块,感觉超方便啊; 如果记录每个点的弹力系数,那么是O(1)修改O(n)查询; 如果记录每个点几次被弹飞,那么是O(n)修改O(1)查询; 那么如果分成根号n块,则相当于每块都 阅读全文
posted @ 2018-06-11 17:33 Zinn 阅读(161) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3631 树上差分;注意路径的结尾被多算了一次,最后要减去(不能提前减)。 代码如下: 阅读全文
posted @ 2018-06-11 16:14 Zinn 阅读(184) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3668 一开始想着倒序推回去看看这一位能不能达到来着,因为这样好中途退出(以为不这样会T); 没想到正着的0和1可能出现一样的结果... 这是WA代码: #include<iostream> # 阅读全文
posted @ 2018-06-11 15:17 Zinn 阅读(204) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1878 离线树状数组,巧妙的思路呢; 给每种项链记录一个最后出现的位置lst,根据项链最后出现是否在区间内来计算种类数; 于是就用树状数组求前缀和来得到结果。 代码如下: 阅读全文
posted @ 2018-06-11 12:12 Zinn 阅读(176) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1861 发现自己想splay的时候总是纠结那个点权是什么,因为splay原本是二分查找树... 但其实splay已经不是维护点权大小顺序的,它的最大作用就在于无论怎样旋转都保持着中序遍历这个相对 阅读全文
posted @ 2018-06-11 11:28 Zinn 阅读(199) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1047 就是先对行做一遍单调队列,再对那个结果按列做一遍单调队列即可。 代码如下: 阅读全文
posted @ 2018-06-11 09:19 Zinn 阅读(183) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1007 可以把直线按斜率从小到大排序,用单调栈维护,判断新直线与栈顶的交点和栈顶与它之前直线的交点的位置关系即可。 代码如下: 阅读全文
posted @ 2018-06-11 08:15 Zinn 阅读(158) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P4141 竟然是容斥:不选 i 物品只需减去选了 i 物品的方案; 范围原来是2*10^3而不是2*103啊... 代码如下: 阅读全文
posted @ 2018-06-10 22:37 Zinn 阅读(155) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P2943 一眼看去就有个 n^2 的做法:f[i] = min{ f[j] + num( i - j ) * num( i - j ) } , 1 <= j < i; 但仔细想想这个做法,发现那个num数组很不好处理 阅读全文
posted @ 2018-06-10 21:21 Zinn 阅读(144) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3195 看到数据范围就应该想到状压呢... 题解(原来是这样):https://www.cnblogs.com/LadyLex/p/7252789.html 代码如下: 阅读全文
posted @ 2018-06-10 20:24 Zinn 阅读(125) 评论(0) 推荐(0)
摘要:题目:bzoj5248 https://www.lydsy.com/JudgeOnline/problem.php?id=5248 洛谷P4363 https://www.luogu.org/problemnew/show/P4363 终于A了(虽然得开O2才能过)! 其实就是暴搜,用一个 n+1 阅读全文
posted @ 2018-06-10 18:49 Zinn 阅读(207) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4806 看到这题首先会想到状压什么乱七八糟的,然而很难做; 其实,因为求的是方案数,所以并不需要关注炮摆放的位置,而只需要关注数量; f[i][j][k] 表示第 i 行及以前共有 j 个有 0 阅读全文
posted @ 2018-06-10 16:50 Zinn 阅读(182) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1499 朴素DP方程很好想,以右移为例,就是 f[i][x][y]=max(f[i][x][y],f[i-1][x][j]+y-j) ; 每一行/列会用到一些相同的状态更新,所以可以用单调队列优 阅读全文
posted @ 2018-06-10 15:58 Zinn 阅读(173) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1566 一眼看上去很懵... 但是答案可以转化成有两个人在同时取珠子,他们取出来一样的方案数; f[i][j][k]表示一共取了 i 个珠子,第一个人取了 j 个珠子,第二个人取了 k 个珠子时 阅读全文
posted @ 2018-06-10 09:53 Zinn 阅读(189) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4033 树形DP,状态中加入 x 与父亲之间的边的贡献; 边权竟然是long long... 代码如下: 阅读全文
posted @ 2018-06-10 08:56 Zinn 阅读(181) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P4136 每个人有足够聪明,一定会把图走满; 所以n为偶数先手胜,n为奇数后手胜。 代码如下: 阅读全文
posted @ 2018-06-06 21:55 Zinn 阅读(162) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P3243 正向按字典序拓扑排序很容易发现是不对的,因为并不是序号小的一定先做; 但若让序号大的尽可能放在后面,则不会有什么问题,因为它不影响它前面的选择; 我们可以建反图,从后往前按序号从大到小排序,倒序输出答案,这 阅读全文
posted @ 2018-06-06 21:39 Zinn 阅读(168) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1046 倒序求最长下降子序列,则得到了每个点开始的最长上升子序列; 然后贪心输出即可。 代码如下: 阅读全文
posted @ 2018-06-06 20:38 Zinn 阅读(162) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1296 对于不同木板之间,最终统计答案时做一个分组背包即可; 而要进行分组背包,就需要知道每个木板被刷几次的最大正确格子数; 所以对于每个木板分别DP,状态 f[i][j] 定义为前 i 个格子 阅读全文
posted @ 2018-06-06 19:45 Zinn 阅读(177) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1044 咳咳...终于A了... 居然没注意到正着找pos是n方会TLE...所以要倒着找pos; 二分还写错了,改了半天... 小心前缀和取模后相减变成负数!!!!!!!!! 代码如下: 阅读全文
posted @ 2018-06-06 17:45 Zinn 阅读(200) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1090 区间DP... 代码如下: 还有递归版: #include<iostream> #include<cstdio> #include<cstring> using namespace st 阅读全文
posted @ 2018-06-06 15:47 Zinn 阅读(161) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1911 相当明显的斜率优化,很好做; 注意slp里面要有(double),以免出现精度问题。 代码如下: 阅读全文
posted @ 2018-06-06 13:29 Zinn 阅读(141) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1025 这篇博客写得真好呢:https://www.cnblogs.com/phile/p/4473192.html 代码如下: 阅读全文
posted @ 2018-06-06 11:47 Zinn 阅读(130) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1207 这题和求LIS有点像,打这一只鼹鼠一定可以从打上一只鼹鼠转移过来; 所以不用考虑机器人移动啦、格子边界啦等等问题; 注意状态不能是“打前i只鼹鼠”而必须是“打第i只鼹鼠及以前”,这样每个 阅读全文
posted @ 2018-06-06 10:39 Zinn 阅读(149) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1084 水题...分类讨论一下即可。 代码如下: 阅读全文
posted @ 2018-06-06 10:14 Zinn 阅读(139) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2878 这个博客写得很好:https://www.cnblogs.com/qt666/p/7252284.html 其实就是分成子树部分(down)和向上的部分(up)来考虑、转移; 要想清楚v 阅读全文
posted @ 2018-06-06 09:32 Zinn 阅读(132) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1833 有点需要想象呢; 预处理出一个数组f,表示在某一个位数时,包括前导0,每个数字出现的次数(仔细一想应该是一样的); 转移主要有两点: 1.对于 f[i-1],看第i位是几,它就被算了几次 阅读全文
posted @ 2018-06-05 23:44 Zinn 阅读(113) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1087 水题... 然而犯了两个致命小错误,调了好半天...详见注释。 代码如下: 阅读全文
posted @ 2018-06-05 21:50 Zinn 阅读(125) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2748 怎么会有这样的省选题... 代码如下: 阅读全文
posted @ 2018-06-05 19:39 Zinn 阅读(118) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4557 见这位的博客:https://www.cnblogs.com/Narh/p/9140326.html 代码如下: 阅读全文
posted @ 2018-06-05 17:29 Zinn 阅读(132) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P3354 状态中要记录一个“承诺”,只需相同承诺之间相互转移即可; 然后就是树形DP的套路了。 代码如下: 阅读全文
posted @ 2018-06-05 15:46 Zinn 阅读(179) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1017 好难想的状态啊!f[i][j][k]表示i号物品有j个向上贡献,一共花了k钱的最大力量; g[i][j]用在子树中,表示前i个子树花j钱的最大值; 调了半上午,终于发现原来是少看了一个范 阅读全文
posted @ 2018-06-05 12:37 Zinn 阅读(114) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P3195 第一次用斜率优化...其实还是有点云里雾里的; 网上的题解都很详细,我的理解就是通过把式子变形,假定一个最优解,得到的是一条直线,斜率已知; 然后找到最接近这个最优斜率的点作为答案; 同时发现斜率单调递增, 阅读全文
posted @ 2018-06-05 09:23 Zinn 阅读(126) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2560 转载: 很明显的状压dp 一开始写的dp可能会出现重复统计的情况 而且难以去重 假设 一个状态s的随意连边集合是A; 那么 A应该是 全部合法的方案(Ans)+sigma(某一部分合法( 阅读全文
posted @ 2018-06-04 23:38 Zinn 阅读(148) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1925 真是精妙的递推式。。。好难想到啊; 详见这位的博客:https://www.cnblogs.com/Narh/p/9135070.html 代码如下: 阅读全文
posted @ 2018-06-04 20:19 Zinn 阅读(120) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1040 就是基环树的裸题; 每个骑士有一个憎恨的骑士,也就是n个点n条边,能看出是基环树; 基环树的套路就是把环断开,然后强制不选根节点,树形DP取较大的作为答案。 代码如下: 阅读全文
posted @ 2018-06-04 19:39 Zinn 阅读(116) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1089 f[d]为深度小于等于d的树的个数; 从根节点出发,有n个子树,乘法原理可以得到 f[d] = f[d-1] ^ n + 1 ,加1是因为也可以没有根节点; 需要高精度,直接重载运算符十 阅读全文
posted @ 2018-06-04 18:55 Zinn 阅读(145) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2431 考虑新加入一个数i,根据放的位置不同,可以产生0~i-1个新逆序对; 所以f[i][j]可由f[i-1][j-k]相加得到,其中0<=k<=i-1&&k<=j; 再优化一下,每次前缀和减 阅读全文
posted @ 2018-06-04 17:07 Zinn 阅读(240) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2660 首先,多种方案的出现是因为一个较大的斐波那契数可以变成两个较小的; 用一个01串来表示这个数的斐波那契数情况,1表示有这个斐波那契数,0表示没有; 所以首先尽量把这个数往大的斐波那契数来 阅读全文
posted @ 2018-06-04 15:56 Zinn 阅读(132) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P3830 询问1:f[x]表示有x个叶节点的树的叶节点平均深度; 可以把被扩展的点的深度看做 f[x-1] ,于是两个新点深度为 f[x-1]+1,而剩下的x-2个点平均深度就是f[x-1]; 所以f[x] = [ 阅读全文
posted @ 2018-06-04 13:25 Zinn 阅读(136) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3191 不用在意每个人的编号,只需看他们相对于庄家的位置即可; 所以设计状态f[i][j]为还剩i人时j人获胜的概率,并且默认庄家是1号; 这样就可以转移了,每次被淘汰的人是tmp,淘汰后所有人 阅读全文
posted @ 2018-06-04 11:44 Zinn 阅读(146) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1003 DP好题; 直接找一个时间段的最短路,并用它来预处理出每个时间段的最小花费; f[i]代表一条路走到时间的花费,所以转移要加上K。 枚举所有路线的TLE代码: #include<iost 阅读全文
posted @ 2018-06-04 11:15 Zinn 阅读(139) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1466 水题,注意开long long; 代码如下: 阅读全文
posted @ 2018-06-04 09:12 Zinn 阅读(139) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1113 每个任务的时间就是准备工作中完成最晚的那个的时间再加上自己的时间。 代码如下: 阅读全文
posted @ 2018-06-04 08:33 Zinn 阅读(141) 评论(0) 推荐(0)