<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Heret1c]]></title><description><![CDATA[以梦为马 莫负韶华]]></description><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ep1C_HeReT1c]]></copyright><item><title><![CDATA[2018-2019 ACM-ICPC, Asia Jiaozuo H - Can You Solve the Harder Problem?]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/88991241</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/88991241</guid><author>Ep1C_HeReT1c</author><pubDate>Wed, 03 Apr 2019 11:25:08 +0800</pubDate><description><![CDATA[Portal：GYM-102028H
题意：
求所有本质不同子序列的最大值的和。
思路：
参考本质不同的子串做法处理本质不同子序列：后缀数组，heightheightheight部分的子串就是没有贡献的子串。
考虑以位置 iii 为左端点的所有子串答案的求法，找到 iii 后第一个大于 a[i]a[i]a[i] 的位置 PosPosPos 。    sum[i]=a[i]∗(Pos−i)+sum[...]]></description><category></category></item><item><title><![CDATA[老年（已退役）选手复习计划 PART2]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/76079493</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/76079493</guid><author>Ep1C_HeReT1c</author><pubDate>Tue, 25 Jul 2017 15:53:51 +0800</pubDate><description><![CDATA[放上来有些符号产生了一点偏差。。不知道怎么变成了问号。。比较懒懒得改了。。意会，意会。。2017.7.4： 
概率与期望： 
1.BZOJ1415：预处理p[x][y]表示，猫在x，鼠在y时猫下一步走哪里。然后记忆化搜索。 
2.BZOJ3450：再求一个期望长度就好解决了。斜率优化： 
1.BZOJ1010：推式子。 
2.BZOJ1096：同上。 
3.BZOJ3156：同上。 
4.BZOJ3]]></description><category></category></item><item><title><![CDATA[老年（已退役）选手复习计划 PART1]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/76079273</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/76079273</guid><author>Ep1C_HeReT1c</author><pubDate>Tue, 25 Jul 2017 15:48:59 +0800</pubDate><description><![CDATA[HN集训的时候电脑坏了。。。回来以后拿去修结果去NOINOI都没能带自己的电脑。。也没来得及发这个东西了。。妈耶能拿分的题知识点我没复习到，果然NOINOI全程血妈崩哦。退役选手还是散发一点点的光和热吧QAQQAQ。 
一篇放不下。。分两篇放。2017.6.29: 
网络流: 
1.BZOJ1391：shabi题，中间连租用费用即可。 
2.BZOJ2132：相邻不取不同的获得额外收益，那么将矩阵黑]]></description><category></category></item><item><title><![CDATA[BZOJ4028: [HEOI2015]公约数数列]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73324353</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73324353</guid><author>Ep1C_HeReT1c</author><pubDate>Fri, 16 Jun 2017 11:16:35 +0800</pubDate><description><![CDATA[BZOJ4028看着这么神的题，最后发现是个“聪明人”打的暴力。。 
首先进行分块，维护每一块内的Gcd和XorGcd和Xor，每个块内存下二元组x,Xorx,Xor表示位置和当前位置的亦或值，按照亦或值为第一关键字排序。 
对于一次修改就将块内信息重新维护，每次O(n√logn√)O(\sqrt{n}log_{\sqrt{n}}) 
对于一次询问，记LastGcd,LastXorLastGcd,L]]></description><category></category></item><item><title><![CDATA[BZOJ3994: [SDOI2015]约数个数和]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73322253</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73322253</guid><author>Ep1C_HeReT1c</author><pubDate>Fri, 16 Jun 2017 10:34:08 +0800</pubDate><description><![CDATA[BZOJ3994d(x)为x的约数个数d(x)为x的约数个数 
求∑ni=1∑mj=1d(i,j)\sum_{i=1}^n\sum_{j=1}^m d(i,j) 
有个很神奇的结论。。上式=∑i=1n∑j=1m[gcd(i,j)==1]ni∗mj上式=\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==1] {\frac{n}{i}*\frac{m}{j}} 
QnQQnQ像我这样]]></description><category></category></item><item><title><![CDATA[BZOJ4177: Mike的农场]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73321811</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73321811</guid><author>Ep1C_HeReT1c</author><pubDate>Fri, 16 Jun 2017 10:06:34 +0800</pubDate><description><![CDATA[BZOJ4177MDMD考的时候还想半天，这TMTM不就是文理分科吗。真的sbsb了。赶紧退役算了。。 
SS向nn个点连边（S,i,ai）（S,i,a_i） 
nn个点向TT连边（i,T,bi）（i,T,b_i） 
对于mm每条规则(i,j,k)(i,j,k)，连边(i,j,k)(i,j,k)和(j,i,k)(j,i,k) 
kk个额外收益，如果是都取aa获得收益，就建新点，SS连向新点，然后该点]]></description><category></category></item><item><title><![CDATA[BZOJ4170: 极光]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73321703</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73321703</guid><author>Ep1C_HeReT1c</author><pubDate>Fri, 16 Jun 2017 09:57:42 +0800</pubDate><description><![CDATA[BZOJ4170对于graze(x,y)=|x−y|+|a[x]−a[y]|<=kgraze(x,y)=|x-y|+|a[x]-a[y]|<=k 
将位置看做xx坐标，aa值看做yy坐标。就是求和某个点的曼哈顿距离小于等于kk的点数个数。 
发现这个范围是一个菱形。将坐标系旋转一下。(x,y)(x,y)变成(x−y,x+y)(x-y,x+y)，从曼哈顿距离变成切比雪夫距离。也就变成了求某个正方形内点]]></description><category></category></item><item><title><![CDATA[BZOJ4169: Lmc的游戏]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73321318</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73321318</guid><author>Ep1C_HeReT1c</author><pubDate>Fri, 16 Jun 2017 09:24:38 +0800</pubDate><description><![CDATA[BZOJ416930分的暴力，当n<=10n<=10时，还是很好做的辣、 
就是给每个叶子节点固定权值。然后树形dpdp就可以了，因为一个点被先手或是被后手取是确定的，就很好写了。n<=200000n<=200000时肯定就不能枚举了。。 
既然无法确定叶节点权值，那么转化一下，dpdp不求具体值是多少，改为求第几大。 
fxf_x表示当前点取最大的是第几大，gxg_x表示当前点取最小的是第几小。]]></description><category></category></item><item><title><![CDATA[BZOJ4027: [HEOI2015]兔子与樱花]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73321054</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73321054</guid><author>Ep1C_HeReT1c</author><pubDate>Fri, 16 Jun 2017 08:39:59 +0800</pubDate><description><![CDATA[BZOJ4027一开始想的都是二维的dpdp。。数据这么大怎么转移啊QAQQAQ。 
后来发现原来贪心就行辣。。。 
直接记ansi=soni+cians_i=son_i+c_i，那么将这个点删除对应着其父节点+=ansi−1+=ans_i-1 
那么对于某个点xx，将儿子的ansans值从小到大排徐，然后依次删直到不能删为止。 
然后删下面的比删上面的优。 
因为删某个点xx的儿子节点，有影响的只]]></description><category></category></item><item><title><![CDATA[BZOJ4517: [Sdoi2016]排列计数]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73124233</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73124233</guid><author>Ep1C_HeReT1c</author><pubDate>Mon, 12 Jun 2017 17:03:00 +0800</pubDate><description><![CDATA[BZOJ4517对于一组数据n,mn,m。ans=Cmn∗dp[n−m]ans=C_n^m*dp[n-m] 
dp[i]dp[i]表示ii的错排数。 
那就是考虑如何求dpdp数组了。求dpndp_n： 
1.将第nn个数放入前n−1n-1个任意一个中，有n−1n-1种，记放的位子为kk. 
2.kk若放在位置nn，那就相当于剩下n−2n-2个错排，也就是dp[n−2]dp[n-2]种方案。kk若不]]></description><category></category></item><item><title><![CDATA[BZOJ4516: [Sdoi2016]生成魔咒]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73123957</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/73123957</guid><author>Ep1C_HeReT1c</author><pubDate>Mon, 12 Jun 2017 16:47:19 +0800</pubDate><description><![CDATA[BZOJ4516每次在结尾添加一个数，相当于添加一个前缀。 
那么倒过来看，变成每次在开头添加一个数，也就是添加一个后缀。 
假若新的后缀长为xx，那么相当于在原有的基础上增加了xx个串,假设其中有yy个串已经出现过。 
那么ansi=ansi−1+x−yans_i=ans_{i-1}+x-y 
考虑如何求这个yy 
考虑新加入的串和已有串的冲突。假设新串s=aadds=aadd，原有串ss=add]]></description><category></category></item><item><title><![CDATA[BZOJ4514: [Sdoi2016]数字配对]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72991754</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72991754</guid><author>Ep1C_HeReT1c</author><pubDate>Sat, 10 Jun 2017 16:22:23 +0800</pubDate><description><![CDATA[BZOJ4514看到题目很容易发现是最大费用最大流。 
关键点就是如何分成二分图。 
（QAQQAQ涨姿势了） 
把每个aa分解质因数： 
a=∏pixia=\prod {p_i}^{x_i} 
记Numi=∑xNum_i=\sum x那么可以发现可以根据NumiNum_i的奇偶性构造二分图。 
然后正常建图。若NumiNum_i为奇数，连边(S,i,bi,0)(S,i,b_i,0),否则连边(i,]]></description><category></category></item><item><title><![CDATA[BZOJ4031: [HEOI2015]小Z的房间]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72974432</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72974432</guid><author>Ep1C_HeReT1c</author><pubDate>Sat, 10 Jun 2017 08:52:11 +0800</pubDate><description><![CDATA[BZOJ4031任意两点若都不是柱子，视为可连边。 
然后矩阵树定理就好。【代码】#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <queue>
#define N 200005
#define Mod 1000000000
#define]]></description><category></category></item><item><title><![CDATA[BZOJ4596: [Shoi2016]黑暗前的幻想乡]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72974364</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72974364</guid><author>Ep1C_HeReT1c</author><pubDate>Sat, 10 Jun 2017 08:14:48 +0800</pubDate><description><![CDATA[BZOJ4596题意：有NN个城市，N−1N-1个公司，每个公司可以修建的路有mim_i条。 
让每个公司修一条路，使得NN个城市构成一棵树 。求方案数。学习了一下高斯消元的辗转相除做法。QAQQAQ，伏地膜。那么这个题容斥一下，N−1N-1个人的方案数-N−2N-2个人的方案数+N−3N-3个人的方案数…… 
分别用矩阵树定理算出答案。 
复杂度O(2n∗n3)O(2^n*n^3)【代码】#inc]]></description><category></category></item><item><title><![CDATA[BZOJ4597: [Shoi2016]随机序列]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72969874</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72969874</guid><author>Ep1C_HeReT1c</author><pubDate>Fri, 09 Jun 2017 20:30:47 +0800</pubDate><description><![CDATA[BZOJ4597一开始看题一脸不可做的样子。。肯定又有什么鬼畜的结论QAQQAQ。 
（看看题解之后）。。和加减没什么关系。。维护一下前缀积的和就好了。 
QAQQAQ然后自己拿n=3n=3手写试了一发。。md为什么不自己想。。 
ans=∑i=1n−1(2∗3n−i−1∗∏j=1iai)+∏j=1naians=\sum_{i=1}^{n-1}(2*3^{n-i-1}*\prod_{j=1}^ia_]]></description><category></category></item><item><title><![CDATA[BZOJ4592: [Shoi2015]脑洞治疗仪]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72969687</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72969687</guid><author>Ep1C_HeReT1c</author><pubDate>Fri, 09 Jun 2017 20:20:02 +0800</pubDate><description><![CDATA[BZOJ4592（吐槽一下dsydsy，我=这个数据=了一天我xxx！！xxx！！）一开始看到这个题。诶，区间连续最大和诶！把脑洞的值为1，正常的赋为−INF-INF 
但是操作1怎么办。。 
发现就是先统计出l0到r0l0到r0区间内−INF-INF的个数tottot，然后区间赋为1. 
然后统计l1到r1l1到r1区间内1的个数TotTot，如果tot>Tottot>Tot就直接区间赋值了嘛。]]></description><category></category></item><item><title><![CDATA[BZOJ4590: [Shoi2015]自动刷题机]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72932919</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72932919</guid><author>Ep1C_HeReT1c</author><pubDate>Thu, 08 Jun 2017 18:25:11 +0800</pubDate><description><![CDATA[BZOJ4590sbsb二分题 
我CTM-1打成-2！！？ 
判无解的时候都要checkcheck一下。。不能=0就出-1.【代码】#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <queue>
#define N 100005
#defi]]></description><category></category></item><item><title><![CDATA[BZOJ1907: 树的路径覆盖]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72929807</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72929807</guid><author>Ep1C_HeReT1c</author><pubDate>Thu, 08 Jun 2017 17:23:14 +0800</pubDate><description><![CDATA[BZOJ1907其实挺sbsb的一个树形dpdp。。我这种sbsb都会的树形dpdp。。 
。。我的做法很鬼畜。 
fx,0，fx,1f_{x,0}，f_{x,1}分别表示点xx作为转折点（也就是连成一个VV字形）/非转折点，覆盖该子树的最小路径数。 
记vv为xx的儿子节点，sum=∑min(fv,0,fv,1)sum=\sum min(f_{v,0},f_{v,1}). 
Mn,mnMn,mn为]]></description><category></category></item><item><title><![CDATA[BZOJ4598: [Sdoi2016]模式字符串]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72921177</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72921177</guid><author>Ep1C_HeReT1c</author><pubDate>Thu, 08 Jun 2017 15:56:17 +0800</pubDate><description><![CDATA[BZOJ4598求树上满足某些条件的点对，首先就可以想到点分治。 
然后又与什么字符串匹配有关。KMP,AC自动机……KMP,AC自动机……之类的好像不太好用。。那就哈希吧！ 
添加答案的时候有两种情况： 
那么就分别维护从上到下的链和从下到上的链。不是所有链都存的，仅当“从该点到当前根的一段是若干个模式串的前缀或者后缀”时才存。 
发现当长度为aa时，不仅m−am-a可以更新答案，长度为km−ak]]></description><category></category></item><item><title><![CDATA[BZOJ4815: [Cqoi2017]小Q的表格]]></title><link>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72919506</link><guid>https://blog.youkuaiyun.com/Ep1C_HeReT1c/article/details/72919506</guid><author>Ep1C_HeReT1c</author><pubDate>Thu, 08 Jun 2017 15:25:04 +0800</pubDate><description><![CDATA[BZOJ4815b×f(a,a+b)=(a+b)∗f(a,b)b×f(a,a+b)=(a+b)*f(a,b)很像辗转相减法。。 
那么每次修改点(a,b)(a,b)的值，会修改所有满足gcd(i,j)==gcd(a,b)gcd(i,j)==gcd(a,b)的点(i,j)(i,j)的值。 
记d=gcd(a,b)d=gcd(a,b)，那么fi,j=x∗i/d∗j/df_{i,j}=x*i/d*j/d(]]></description><category></category></item></channel></rss>