<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aiyi9685的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/aiyi9685</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aiyi9685]]></copyright><item><title><![CDATA[牛客网wannafly23 D 漂亮的公园]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113968</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113968</guid><author>aiyi9685</author><pubDate>Mon, 03 Sep 2018 22:58:00 +0800</pubDate><description><![CDATA[/*
  Source   : 牛客网wannafly23 D 漂亮的公园
  Problem  : 给定一个树，每个节点有一个颜色，询问两个颜色之间的最大距离
  Solution : 可以先求出同一种颜色c的直径x,y，这另外一个点u到这种颜色c的最大值，一定是x和y中的一个。于是答案只需要枚举两种不同颜色的4个点。
             对于同种颜色的集合的维护，可...]]></description><category></category></item><item><title><![CDATA[hihocoder73 编程练习赛 D 好的字符串]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113973</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113973</guid><author>aiyi9685</author><pubDate>Sun, 19 Aug 2018 19:27:00 +0800</pubDate><description><![CDATA[1 /*
 2   Source   :hihocoder 编程练习赛73 D 好的字符串
 3   Problem  :问长度为n的数字串中，有多少个包含子串s恰好一次。可以有前导0
 4   Solution :DP. 利用dp[2][i][j]表示当前匹配了前i个字符，且末尾的j个字符和s的前j个字符是匹配的。然后用0,1来表示是否匹配了完整的一次s
 5      ...]]></description><category></category></item><item><title><![CDATA[hihocoder编程练习赛73 A 地铁站]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113966</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113966</guid><author>aiyi9685</author><pubDate>Sun, 19 Aug 2018 19:13:00 +0800</pubDate><description><![CDATA[1 /*
 2   Source   :hihocoder编程练习73
 3   Problem  :一个长度为n的串，由若干段1-a[i]（假设有Y段）的序列组成，现在中间缺了K个数，问能够还原出来的方案数，需要保证还原出来的子串的个数最少，即最小Y
 4   Solution :1.通过分析剩余的序列，我们可以知道原来最少的时候Y是多少，即看原来的序列有多少单调递增的子段...]]></description><category></category></item><item><title><![CDATA[牛客网wannafly22 D 整数序列]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113971</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113971</guid><author>aiyi9685</author><pubDate>Sat, 18 Aug 2018 18:34:00 +0800</pubDate><description><![CDATA[1 /*
  2   Source   :wannafly 22 D 整数序列
  3   Problem  :给定长度为n的数组，有m次操作，op=1 时， 把a[l-r] 中的数加v, op=2时， 求sum(sin(a[l-r]))
  4   Solution :由 sin(a+b) = sin(a)cos(b) + cos(a)*sin(b)
  5      ...]]></description><category></category></item><item><title><![CDATA[CF 609E 树上的倍增]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113964</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113964</guid><author>aiyi9685</author><pubDate>Thu, 16 Aug 2018 21:28:00 +0800</pubDate><description><![CDATA[1 /*
  2   Source   :CF 609E
  3   Problem  :给定n个顶点，m条边的图，对于一条边，求包含这条边的最小生成树
  4   Solution :先求出MST,然后对于一条给定的边，对应的最小生成树为MST中去掉u,v路径上的最大的边，然后加上当前的边
  5             对于后面的问题，求解u，v路径上的最大边，可用树...]]></description><category></category></item><item><title><![CDATA[hihocoder 193周 修补木桶]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113969</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113969</guid><author>aiyi9685</author><pubDate>Thu, 16 Aug 2018 20:40:00 +0800</pubDate><description><![CDATA[1 /*
 2   Source   :hihocoder193周 修补木桶
 3   Problem  :一个圆形的木桶由n块木板围成，可以使用一种操作把连续的一段长度为L的区间中的木板变成无限长，操作可以使用m次，问最终最短的木板是多长。n&lt;=1000,L&lt;=20,m*L&lt;n
 4   Solution :直接计算较为困难，考虑一个简单一点的问题：如果知...]]></description><category></category></item><item><title><![CDATA[倍增法]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113967</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113967</guid><author>aiyi9685</author><pubDate>Thu, 16 Aug 2018 17:35:00 +0800</pubDate><description><![CDATA[1 /*
  2   Source   :
  3   Problem  : 求最近公共祖先的倍增算法
  4   Solution :
  5   Date     :2018-08-16-16.45
  6 */
  7 
  8 // #include &lt;bits/stdc++.h&gt;
  9 #include&lt;cstdio&gt;
 10...]]></description><category></category></item><item><title><![CDATA[dfs序]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113962</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113962</guid><author>aiyi9685</author><pubDate>Thu, 16 Aug 2018 16:36:00 +0800</pubDate><description><![CDATA[1 /*
  2   Source   : POJ 3321
  3   Problem  : 每次改变树的点权，求子树点权和
  4   Solution : dfs序
  5   Date     :2018-08-16-16.03
  6 */
  7 
  8 // #include &lt;bits/stdc++.h&gt;
  9 #include &...]]></description><category></category></item><item><title><![CDATA[wannafly19 矩阵]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113965</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113965</guid><author>aiyi9685</author><pubDate>Thu, 16 Aug 2018 11:51:00 +0800</pubDate><description><![CDATA[1 /*
 2   Source   :牛客网wannafly 19 矩阵
 3   Problem  :在一个n*m ,n,m&lt;500的网格中，求满足条件的最大矩阵,行数&lt;=X,列数&lt;=Y,0的个数&lt;=Z
 4   Solution :枚举两列转换成一维的问题,然后用单调队列维护满足条件的最小值，那么最大值=当前值-最小值。
 5   Date  ...]]></description><category></category></item><item><title><![CDATA[hihocoder1800]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113960</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113960</guid><author>aiyi9685</author><pubDate>Wed, 15 Aug 2018 21:08:00 +0800</pubDate><description><![CDATA[1 /*
 2   Source   :hihocoder1800
 3   Problem  :在n*m的方格中，每个格子有一个权值，求一个矩形区域面积大于等于S,总和最大
 4   Solution :枚举固定的两列，然后可以求得符合条件的长度L，求一个长度大于等于L的最大和。最大和=当前总和-最小的前缀和,当前总和的位置与最小前缀和的位置满足条件。
 5   Date...]]></description><category></category></item><item><title><![CDATA[CF 689D A区间最大值等于B区间最小值的区间个数统计]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113963</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113963</guid><author>aiyi9685</author><pubDate>Tue, 14 Aug 2018 23:34:00 +0800</pubDate><description><![CDATA[1 /*
  2   Source :CF689D
  3   题意：给出a,b两个长度为n的数组，问有多少个区间满足max(a[l,r])==min(b[l,r])  len(a)&lt;10^5
  4   思路：对于一个固定的l,max(a[l,r])是一个单调不减的序列，min(b[l,r])是一个单调不增的序列,
  5         于是可以枚举区间的左端点...]]></description><category></category></item><item><title><![CDATA[图中找环]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113958</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113958</guid><author>aiyi9685</author><pubDate>Mon, 13 Aug 2018 18:41:00 +0800</pubDate><description><![CDATA[1 /*
 2   Source   :hihocoder 215周
 3   Problem  :有向图判断是否存在环
 4   Solution : 方法1. 可以使用拓扑排序来做
 5              方法2. 对于无向图可以用并查集做
 6              方法3. 利用dfs遍历,第一次遍历到节点是着灰色，离开节点时着黑色，如果遍历的过程中访...]]></description><category></category></item><item><title><![CDATA[大水题]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113955</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113955</guid><author>aiyi9685</author><pubDate>Fri, 10 Aug 2018 12:09:00 +0800</pubDate><description><![CDATA[1 /*
  2   Source   : wannafly21
  3   Problem  ：给出一个长度为n的序列，每个位置有一个值和一个权重，可以把两个位置值相同的一段连起来作为一个操作，得分为对应的权重之和，每个位置只能连一次，
  4              求最终最大的和。
  5   Solution ：dp[i] = dp[j] + sum(i,j) ...]]></description><category></category></item><item><title><![CDATA[数位DP hihocoder1791]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113961</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113961</guid><author>aiyi9685</author><pubDate>Fri, 03 Aug 2018 18:35:00 +0800</pubDate><description><![CDATA[1 /*
  2   题意：求 1...n, n&lt;10^12中满足x%sum(x)==0的数的个数，sum(x)为x的各个位数的和
  3   题解：数位DP
  4   时间：2018.08.03
  5 */
  6 
  7 #include &lt;bits/stdc++.h&gt;
  8 using namespace std;
  9 
 1...]]></description><category></category></item><item><title><![CDATA[牛客练习23 托米的游戏]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113959</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113959</guid><author>aiyi9685</author><pubDate>Thu, 02 Aug 2018 11:24:00 +0800</pubDate><description><![CDATA[1 /*
 2   题意：给出一个树，根是1，每次选一个节点删除，求期望删空的步数e = a/b, 求x使得(xb = a) % 998244353.
 3   题解：考虑每个节点对答案的贡献，一个节点i被删除时，对答案贡献1，而被删除的概率为1/dep[i].
 4         e = sum(1/dep[i]) = a/b,
 5         由 (xb=a)%...]]></description><category></category></item><item><title><![CDATA[矩阵快速幂]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113953</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113953</guid><author>aiyi9685</author><pubDate>Tue, 31 Jul 2018 21:24:00 +0800</pubDate><description><![CDATA[1 /*
  2   题意：求a(n)=a(n-1)+a(n-2)+a(n-3)+......a(n-k)+...     k&lt;20      n&lt;10^18
  3   题解：矩阵快速幂，把递推公式写成矩阵的形式，就可以利用快速幂计算
  4   时间：2018.07.31
  5 */
  6 
  7 #include &lt;bits/stdc++...]]></description><category></category></item><item><title><![CDATA[大数乘法]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113956</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113956</guid><author>aiyi9685</author><pubDate>Mon, 30 Jul 2018 11:21:00 +0800</pubDate><description><![CDATA[1 /*
  2   题意：大数乘法NTT
  3   题解：FNT
  4   时间：2018.07.30
  5 */
  6 
  7 #include &lt;bits/stdc++.h&gt;
  8 using namespace std;
  9 
 10 typedef long long LL;
 11 const int MAXN = 10...]]></description><category></category></item><item><title><![CDATA[求原根]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113951</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113951</guid><author>aiyi9685</author><pubDate>Thu, 26 Jul 2018 21:19:00 +0800</pubDate><description><![CDATA[1 /*
  2   题意：求一个数x的原根
  3   题解：x=p1^e1 * p2^e2 * p3^e3 * pm^em
  4         依次判断 a^((x-1)/pi) == 1 mod x 是否等于1,如果都不等于1那么a是原根。
  5   时间：2018.07.26
  6 */
  7 
  8 #include &lt;bits/stdc...]]></description><category></category></item><item><title><![CDATA[主席树]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113957</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113957</guid><author>aiyi9685</author><pubDate>Sat, 21 Jul 2018 21:06:00 +0800</pubDate><description><![CDATA[1 /*
 2   题意：查询区间第K大
 3   题解：主席树
 4   时间：
 5 */
 6 
 7 #include &lt;bits/stdc++.h&gt;
 8 using namespace std;
 9 
10 typedef long long LL;
11 const int MAXN = 100005;
12 const LL MO...]]></description><category></category></item><item><title><![CDATA[背包]]></title><link>https://blog.youkuaiyun.com/aiyi9685/article/details/102113954</link><guid>https://blog.youkuaiyun.com/aiyi9685/article/details/102113954</guid><author>aiyi9685</author><pubDate>Sat, 21 Jul 2018 11:53:00 +0800</pubDate><description><![CDATA[题目链接：https://www.nowcoder.com/acm/contest/133/B

  1 /*
  2   题意：V背包容量，n物品个数，m需要装的物品个数，ai,bi价值，大小，求刚好装m个物品时，物品的中位数最大是多少
  3   思路：首先按照价值排序，m个物品分成三组，中位数，小于中位数，和大于中位数的
  4         假设m为奇数，中位数只有...]]></description><category></category></item></channel></rss>