<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Paulliant的博客]]></title><description><![CDATA[DP离散线段树，二分答案前缀和！！]]></description><link>https://blog.youkuaiyun.com/Paulliant</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Paulliant]]></copyright><item><title><![CDATA[HDU-3333 Turing Tree（离线+树状数组/主席树）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/84947581</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/84947581</guid><author>Paulliant</author><pubDate>Mon, 10 Dec 2018 22:29:01 +0800</pubDate><description><![CDATA[题意
给定一个长度为 nnn 的序列，mmm 个查询，每次查询区间 [L,R][L,R][L,R] 范围内不同元素的和。
1≤T≤101\leq T \leq 101≤T≤10
1≤n≤300001 \leq n\leq 300001≤n≤30000
1≤m≤1000001\leq m\leq 1000001≤m≤100000
思路
这道题没有强制在线，又没有修改，离线会比在线好想。
可以从第 1...]]></description><category></category></item><item><title><![CDATA[SHOI2017 相逢是问候（扩展欧拉定理+线段树）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/84931232</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/84931232</guid><author>Paulliant</author><pubDate>Sun, 09 Dec 2018 20:40:06 +0800</pubDate><description><![CDATA[题意
https://loj.ac/problem/2142
思路
一个数如果要作为指数，那么它不能直接对模数取模，这是常识；
诸如 cccc..c^{c^{c^{c..}}}cccc.. 的函数递增飞快，不是高精度可以描述的，这也是常识。
所以，此题要用到很多数论知识。
欧拉函数
定义
φ(n)\varphi(n)φ(n) 为 [1,n][1,n][1,n] 中与 nnn 互质的正整数个数（包括...]]></description><category></category></item><item><title><![CDATA[洛谷-U40581 树上统计（启发式合并/线段树合并）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/83831956</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/83831956</guid><author>Paulliant</author><pubDate>Wed, 07 Nov 2018 22:07:32 +0800</pubDate><description><![CDATA[题意
https://www.luogu.org/problemnew/show/U40581
思路
这种带两个 ∑\sum∑ 的题，显然是要单独算贡献了。在树上常见的就几种情况，点的贡献、边的贡献、LCA\text{LCA}LCA的贡献。
考虑链的情况，对于一条边而言，能让它产生贡献的权值区间满足其中即含有在边左边的点，又含有在边右边的点。
把在边左边的点标为 111，右边的点标为 000，那么...]]></description><category></category></item><item><title><![CDATA[HDU-1813 Escape from Tetris（IDA*）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/83795071</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/83795071</guid><author>Paulliant</author><pubDate>Tue, 06 Nov 2018 21:53:53 +0800</pubDate><description><![CDATA[题意
http://acm.hdu.edu.cn/showproblem.php?pid=1813
思路
压缩状态是 A*\text{A*}A* 算法中重要的一部分，例如这道题，我们要求任意一个点都能走出去，那不如现在所有点上都放上一个小人，随着上下左右的操作让他们走。一个格子只有“有小人”、“没小人”两种状态，就可以用二进制数表示。而格子最多只有 (8−2)2=36(8-2)^2=36(8−2)...]]></description><category></category></item><item><title><![CDATA[HDU-1667 The Rotation Game（IDA*）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/83757703</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/83757703</guid><author>Paulliant</author><pubDate>Mon, 05 Nov 2018 22:11:03 +0800</pubDate><description><![CDATA[题意
https://www.luogu.org/problemnew/show/UVA1343
思路
首先枚举终态是 1,2,31,2,31,2,3 中的哪一个，然后再把 242424 个数字压成一个长度为 242424 的 010101 串（111 表示终态的数字），直接用 int\text{int}int 来表示这个数。
可以先打表出每一个操作，转动了哪些位置，然后就可以很快的挪动这个010...]]></description><category></category></item><item><title><![CDATA[SDOI2009 学校食堂（状压）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/83627684</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/83627684</guid><author>Paulliant</author><pubDate>Thu, 01 Nov 2018 21:59:37 +0800</pubDate><description><![CDATA[题意
https://www.luogu.org/problemnew/show/P2157
思路
不仅状压难想到，暴力分也极不和善。首先 BiB_iBi​ 的值不超过 777，应该条件反射的想到状压 DPDPDP，不妨设 dpi,j,kdp_{i,j,k}dpi,j,k​ 表示区间 [1,i−1][1,i-1][1,i−1] 内的同学结束用餐，[i,i+7][i,i+7][i,i+7] 区间内的...]]></description><category></category></item><item><title><![CDATA[BZOJ-4777 Switch Grass（最小生成树+动态开点线段树+可删堆）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/83409452</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/83409452</guid><author>Paulliant</author><pubDate>Fri, 26 Oct 2018 08:51:33 +0800</pubDate><description><![CDATA[题意
给定一张 nnn 和节点，mmm 条边的无向图，每个点有一个初始颜色，接下来有 QQQ 个操作，每次操作会更改一个点的颜色，并询问距离最近的不同色点对的最小距离，颜色上限不超过 KKK 且图中至少有两种颜色。
1≤n,Q≤2×1051 \leq n,Q \leq 2 \times 10^51≤n,Q≤2×105
1≤m≤4×1051 \leq m \leq 4 \times 10^51≤m≤...]]></description><category></category></item><item><title><![CDATA[IOI 2010 Quality of Living（二分答案）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/83409389</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/83409389</guid><author>Paulliant</author><pubDate>Fri, 26 Oct 2018 08:07:50 +0800</pubDate><description><![CDATA[题意
给定一个 R×CR\times CR×C 的矩阵，找到一个 H×WH \times WH×W 的子矩阵使得中位数最小，保证 H,WH,WH,W 均为奇数。
1≤H≤R≤10001 \leq H \leq R \leq 10001≤H≤R≤1000
1≤W≤C≤10001 \leq W \leq C \leq 10001≤W≤C≤1000
思路
不愧是 IOI\text{IOI}IOI 的题目...]]></description><category></category></item><item><title><![CDATA[USACO16FEB 再探圆形谷仓（斜率优化DP）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/83217139</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/83217139</guid><author>Paulliant</author><pubDate>Sat, 20 Oct 2018 22:14:52 +0800</pubDate><description><![CDATA[题意
nnn 个顺时针排列的牛棚，可以开 kkk 个口让牛顺时针进入，已知每个牛棚需要多少只牛，问所有牛在牛棚内行走的距离总和最小值。
1≤n≤1001 \leq n \leq 1001≤n≤100
1≤k≤71 \leq k \leq 71≤k≤7
思路
序列倍长，断环成链，区间转移，线性动归，这种套路实在见得多了，不难打出一个 n3n^3n3 的 dpdpdp 如下：
FOR(r,0,n-1)...]]></description><category></category></item><item><title><![CDATA[计蒜客 青云的机房组网方案（莫比乌斯函数+树上dsu）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/83215906</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/83215906</guid><author>Paulliant</author><pubDate>Sat, 20 Oct 2018 21:22:43 +0800</pubDate><description><![CDATA[题意
给定一棵 nnn 个节点的树，每个节点上有一个点权，边权为均 111，求所有点权互质的点对路径总和。
1≤n,点权≤1000001 \leq n,\text{点权} \leq 1000001≤n,点权≤100000
思路
对于一个数 aaa，能与它产生贡献的数和 aaa 没有公共质因子，那我们可以通过筛出莫比乌斯系数，就可以用容斥的方法求出与 aaa 互质的部分了，如下图：

A,B,CA,...]]></description><category></category></item><item><title><![CDATA[NOIP2017day2 列队（动态开点线段树）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/82949497</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/82949497</guid><author>Paulliant</author><pubDate>Sat, 06 Oct 2018 10:43:55 +0800</pubDate><description><![CDATA[题意
https://www.luogu.org/problemnew/show/P3960
思路
303030分暴力送温暖，但其实正解就从这里拓展出来。
最本质的想法无疑是优化纯模拟，先分析操作会对列队带来的变化。首先出去上厕所的人从它这一行删除，行末从最后一行补一个人。最后一行也对应的删除那个人，并且加入上厕所的人，都是删除并从后面加入。
显然线段树模拟删除操作，加入的人用vector\tex...]]></description><category></category></item><item><title><![CDATA[COCI2014/2015 Contest#1 F KAMP（树形DP+转移答案）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/82894822</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/82894822</guid><author>Paulliant</author><pubDate>Sat, 29 Sep 2018 11:27:45 +0800</pubDate><description><![CDATA[题意

]]></description><category></category></item><item><title><![CDATA[COCI2014/2015 Contest#1 D MAFIJA（树形DP/贪心）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/82893962</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/82893962</guid><author>Paulliant</author><pubDate>Sat, 29 Sep 2018 11:11:06 +0800</pubDate><description><![CDATA[题意

]]></description><category></category></item><item><title><![CDATA[NOIP2015day2 运输计划（二分答案+差分/抽路+前缀最大值）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/82864697</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/82864697</guid><author>Paulliant</author><pubDate>Fri, 28 Sep 2018 09:38:16 +0800</pubDate><description><![CDATA[题意
https://www.luogu.org/problemnew/show/P2680
思路
最大路径最短，二分吧。。。然后就二分了，考试时 959595 分，常数太大，边界设的太大。
二分的边界如果设的小，能大大减小常数，对于这道题，最长时间肯定不会长过最长路径的值，短过最长路径减整棵树上的最长边。这样算一下顶多二分 101010 次，血赚。
二分的 check\text{check}ch...]]></description><category></category></item><item><title><![CDATA[CodeForces-431D Random Task（二分答案+数位DP）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/82850301</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/82850301</guid><author>Paulliant</author><pubDate>Wed, 26 Sep 2018 10:56:26 +0800</pubDate><description><![CDATA[题意
给定 mmm 和 kkk ，求一个 nnn 使得 [n+1,2n][n+1,2n][n+1,2n] 范围内的数中二进制恰好有 kkk 个 111 的数，恰有 mmm 个。
0≤m≤10180 \leq m \leq 10^{18}0≤m≤1018
1≤k≤641 \leq k \leq 641≤k≤64
思路
有一个“显然”的单调性，nnn 越大，[n+1,2n][n+1,2n][n+1,2...]]></description><category></category></item><item><title><![CDATA[Codeforces-629E Famil Door and Roads（期望）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/82711029</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/82711029</guid><author>Paulliant</author><pubDate>Sat, 15 Sep 2018 10:12:05 +0800</pubDate><description><![CDATA[题意

给定一棵 nnn 个节点的树，mmm 个询问，每一个询问包含两个参数 a,ba,ba,b，我们能够通过加一条边使 a,ba,ba,b 处于同一个环内。对于每一个询问，求这样的环的期望长度。 
1≤n,m≤1051≤n,m≤1051 \leq n,m \leq 10^5

思路

细节比较多的一道题。首先我们可以用期望的线性性质，把环的期望拆成多个值，假设边连接 x,yx,yx,y，形成 x...]]></description><category></category></item><item><title><![CDATA[NOIP2012day1 开车旅行（倍增跳跃）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/82684106</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/82684106</guid><author>Paulliant</author><pubDate>Thu, 13 Sep 2018 10:35:40 +0800</pubDate><description><![CDATA[题意

https://www.luogu.org/problemnew/show/P1081

思路

首先 505050 分的暴力跟着晦涩的题意强行打了一遍，然后对题意有了更深刻的理解，发现可以预处理小 AAA 和小 BBB 从某个点出发下一个走的点(n2)(n2)(n^2)，就不用每次 forforfor 一遍找了，这样就成了 707070 分。 
不管是第一近还是第二近的点，都是因为海拔相...]]></description><category></category></item><item><title><![CDATA[NOIP2012day1 国王游戏（贪心）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/82683265</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/82683265</guid><author>Paulliant</author><pubDate>Thu, 13 Sep 2018 09:55:25 +0800</pubDate><description><![CDATA[题意

https://www.luogu.org/problemnew/show/P1080

思路

按冒泡排序的原则，先分析两两是否交换的情况： 
假设大臣 111 和大臣 222，前面的大臣左手边数的成绩为常数 ccc ： 
当 111 排在前面时，最大值是 max{cb1,ca1b2}max{cb1,ca1b2}\max\{\dfrac c{b_1},\dfrac {ca_1}{b_2}...]]></description><category></category></item><item><title><![CDATA[HDU-4219 Randomization?（树形DP+概率DP）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/82669208</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/82669208</guid><author>Paulliant</author><pubDate>Wed, 12 Sep 2018 22:25:10 +0800</pubDate><description><![CDATA[题意

给定一棵 nnn 个节点的树，每条边的权值为 [0,L][0,L][0,L] 之间的随机整数，求这棵树两点之间最长距离不超过 SSS 的概率。 
1≤n≤10001≤n≤10001 \leq n \leq 1000 
1≤L≤101≤L≤101 \leq L \leq 10 
1≤S≤20001≤S≤20001 \leq S \leq 2000

思路

这种概率题以前没碰到过，现在碰到连...]]></description><category></category></item><item><title><![CDATA[NOIP2011day2 观光公交（堆+贪心）]]></title><link>https://blog.youkuaiyun.com/Paulliant/article/details/82556540</link><guid>https://blog.youkuaiyun.com/Paulliant/article/details/82556540</guid><author>Paulliant</author><pubDate>Sun, 09 Sep 2018 11:02:33 +0800</pubDate><description><![CDATA[题意

nnn 个景点， mmm 个游客，第 iii 个游客在 TiTiT_i 时间到达 AiAiA_i 景点，要去 BiBiB_i 景点。有一个公交车在 000 时刻在 111 号景点出现，从 iii 号景点到 i+1i+1i+1 号景点需要 DiDiD_i 时间，从第 iii 个景点去往第 i+1i+1i+1 个景点必须保证所有出现在 AiAiA_i 的人均上车（上下车不需时间）。现在有 kk...]]></description><category></category></item></channel></rss>