<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Dicer_的博客]]></title><description><![CDATA[水题者]]></description><link>https://blog.youkuaiyun.com/qq_41009682</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_41009682]]></copyright><item><title><![CDATA[NAIPC 2017 C, I]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82926274</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82926274</guid><author>qq_41009682</author><pubDate>Tue, 02 Oct 2018 15:05:58 +0800</pubDate><description><![CDATA[题目链接
求树上i，j两点之间的距离，其中i是j的因子。
我们可以先求出LCA(i,j)，然后套这个公式：
dist[i,j]=(dis[i]+dis[j]−2∗dis[LCA(i,j)]+1)dist[i,j] = (dis[i]+dis[j]-2*dis[LCA(i,j)]+1)dist[i,j]=(dis[i]+dis[j]−2∗dis[LCA(i,j)]+1)
dis[i]表示1到i的距离...]]></description><category></category></item><item><title><![CDATA[【洛谷】P1783 海滩防御（最小生成树+思维）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82846242</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82846242</guid><author>qq_41009682</author><pubDate>Tue, 25 Sep 2018 22:23:38 +0800</pubDate><description><![CDATA[题目链接
本来以为是一道计算几何，然后看大佬的代码发现竟然是最小生成树？？
能想到最小生成树很诡异，建图也很诡异。
最后相当于求0-n+1的这条路上的最大边权。
列数就是该点的横坐标。
建完图套一下Krustra的板子就好了。
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include &amp;lt;bits/stdc++.h&amp;gt;
using n...]]></description><category></category></item><item><title><![CDATA[【洛谷】P3870  - 开关（线段树）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82843411</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82843411</guid><author>qq_41009682</author><pubDate>Tue, 25 Sep 2018 18:49:56 +0800</pubDate><description><![CDATA[题目链接
线段树裸题。。
然后码了一下午，找标程对拍才过。。
真是菜啊。
AC代码:
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
#define clr(s, x) memset(s, x, sizeof(s))
typedef long lo...]]></description><category></category></item><item><title><![CDATA[【Codeforces】1047 - C. Enlarge GCD]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82814586</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82814586</guid><author>qq_41009682</author><pubDate>Sat, 22 Sep 2018 18:30:34 +0800</pubDate><description><![CDATA[题目链接
题意：给出n个数字，求最少删除几个可以使剩下的数字的GCD大于n个数字的GCD。
思路：求出最多的公共因子，去掉没有这个因子的剩下的数的GCD大于原来的GCD。
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include &amp;amp;lt;bits/stdc++.h&amp;amp;gt;
using namespace std;
#define clr(s,...]]></description><category></category></item><item><title><![CDATA[【Codeforces】1042 - B Vitamins]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82794560</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82794560</guid><author>qq_41009682</author><pubDate>Thu, 20 Sep 2018 22:25:54 +0800</pubDate><description><![CDATA[题目链接
先看一下我暴力的代码：
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
#define clr(s, x) memset(s, x, sizeof(s))
typedef long long ll;
typedef unsigned lo...]]></description><category></category></item><item><title><![CDATA[ACM-ICPC 2018 徐州赛区网络赛]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82757478</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82757478</guid><author>qq_41009682</author><pubDate>Tue, 18 Sep 2018 14:40:31 +0800</pubDate><description><![CDATA[题目链接
跟环形涂色问题很像，每一个数字都只有一个不能相邻的数字。
环形涂色的总方案数公式：

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include &amp;amp;lt;bits/stdc++.h&amp;amp;gt;
using namespace std;
#define clr(s, x) memset(s, x, sizeof(s))
typedef lo...]]></description><category></category></item><item><title><![CDATA[ACM-ICPC 2018 沈阳赛区网络赛  G. Spare Tire （容斥原理）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82750469</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82750469</guid><author>qq_41009682</author><pubDate>Mon, 17 Sep 2018 22:58:10 +0800</pubDate><description><![CDATA[题目链接
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include &amp;amp;lt;bits/stdc++.h&amp;amp;gt;
using namespace std;
#define clr(s, x) memset(s, x, sizeof(s))
typedef long long ll;
typedef unsigned long long ull;...]]></description><category></category></item><item><title><![CDATA[ACM-ICPC 2018 焦作赛区网络赛]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82747080</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82747080</guid><author>qq_41009682</author><pubDate>Mon, 17 Sep 2018 18:39:22 +0800</pubDate><description><![CDATA[题目链接
                        
                            
                                
                                1000ms
                            
                        
               ...]]></description><category></category></item><item><title><![CDATA[【牛客】练习赛26 - B烟花（概率DP）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82561119</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82561119</guid><author>qq_41009682</author><pubDate>Sun, 09 Sep 2018 18:57:54 +0800</pubDate><description><![CDATA[题目链接

题意：小a有个烟花，每个烟花代表着互不相同的颜色，对于第个烟花，它有的概率点燃，现在小a要去点燃它们，他想知道产生颜色的期望个数 及 产生恰好产生种颜色的概率 。

思路：概率DP 。 
我们先看下面这个表格，是n为3，k为2的情况。




  i\dp\j
  0
  1
  2



  0
  1
  0
  0


  1
  1−p11−p11-p_1
  p1p1p_1
...]]></description><category></category></item><item><title><![CDATA[【杭电oj】4405 - Aeroplane chess（期望DP）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82560433</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82560433</guid><author>qq_41009682</author><pubDate>Sun, 09 Sep 2018 17:40:27 +0800</pubDate><description><![CDATA[题目链接

直接递推就行了，如果能从x飞到y，相当于dp[x]=dp[y]，特判一下就行。



AC代码：



#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include &amp;lt;bits/stdc++.h&amp;gt;
#include &amp;lt;ext/rope&amp;gt;
using namespace std;
using namespace ...]]></description><category></category></item><item><title><![CDATA[【POJ】2096 - Collecting Bugs（期望DP）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82559726</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82559726</guid><author>qq_41009682</author><pubDate>Sun, 09 Sep 2018 16:42:46 +0800</pubDate><description><![CDATA[题目链接

原文链接：点击查看

AC代码：

/*
POJ 2096
概率DP
writed by kuangbin

dp求期望
逆着递推求解
题意：（题意看题目确实比较难道，n和s都要找半天才能找到）
   一个软件有s个子系统，会产生n种bug
   某人一天发现一个bug,这个bug属于一个子系统，属于一个分类
   每个bug属于某个子系统的概率是1/s,属于某种分类的概率是1/n
 ...]]></description><category></category></item><item><title><![CDATA[【Codeforces】1038 - 个人总结（思维）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82491695</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82491695</guid><author>qq_41009682</author><pubDate>Fri, 07 Sep 2018 09:50:16 +0800</pubDate><description><![CDATA[比赛连接 
A. Equality： 
题意：给出一个长度为n的字符串，求前k个大写字母出现次数相同的最长子序列。 
思路：因为是子序列，不用保证连续，所以只要去前k个大写字母中出现次数最小的那个值乘上k即可。 
ans=k∗min(a1,a2...ak),ai表示第k个大写字母出现的次数ans=k∗min(a1,a2...ak),ai表示第k个大写字母出现的次数ans = k*min(a_1,a...]]></description><category></category></item><item><title><![CDATA[【杭电oj】1532 - Drainage Ditches（最大流）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82468322</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82468322</guid><author>qq_41009682</author><pubDate>Thu, 06 Sep 2018 21:09:59 +0800</pubDate><description><![CDATA[题目链接

最大流的模板题。。

多动手模拟，有一个讲的很清楚的博客：传送门

听说EK容易TLE。

EK：

#include &amp;amp;lt;bits/stdc++.h&amp;amp;gt;
using namespace std;
const int INF = 0x3f3f3f3f;
const int N = 210;
int n, m, c[N][N], pre[N], mmin;

bool bfs(i...]]></description><category></category></item><item><title><![CDATA[【Codeforces】766 - 个人总结]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82426562</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82426562</guid><author>qq_41009682</author><pubDate>Wed, 05 Sep 2018 16:45:17 +0800</pubDate><description><![CDATA[题目链接

给出n个单词，m次操作，q次查询。 
操作有两种，一种是两种为同义词，另一种是 两种为反义词。 
如果操作不与之前形成的关系冲突，输出YES，否则输出NO。 
查询：给两个单词求它们的关系，同义词输出1，反义词输入2。

用0表示与根节点同义，1表示反义。

重要的还是find函数，在刚经过merge后，并查集的结构可能不是一颗只有两层的树，但是下一步无论是查询还是操作都有一步find...]]></description><category></category></item><item><title><![CDATA[【hihocoder】1515 - 分数调查 （带权并查集）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82421927</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82421927</guid><author>qq_41009682</author><pubDate>Wed, 05 Sep 2018 13:04:39 +0800</pubDate><description><![CDATA[题目链接

文章推荐：点击查看

用val[x]存放x与根节点的差。

感觉带权并查集的find函数跟merge函数有很多递归回溯的思想。 
还有大佬说向量偏移之类的，我觉得应该就是利用关系之间的传递性。

AC代码：



#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int N = 2e5;
int n, m, q, x, ...]]></description><category></category></item><item><title><![CDATA[【Codeforces】1037 - D. Valid BFS? （思维）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82356453</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82356453</guid><author>qq_41009682</author><pubDate>Mon, 03 Sep 2018 23:02:04 +0800</pubDate><description><![CDATA[题目链接

题意：给出你一棵树，然后给出一个遍历顺序，问：该序列是否为这棵树的可能BFS序。你只需考虑从1开始遍历的情况。

思路：本来自己写的想着是只要当前这个点的步数大于等于前一个点就可行，但其实不对，这个条件不充分。

是有效的bfs序的充分的条件应该是：层数不降且父节点顺序不降。

看到前几的大佬代码更简洁，只是按照进队列的顺序排了一个序，这样就可以我们保证自己写的BFS序最可能是符合所给...]]></description><category></category></item><item><title><![CDATA[【BZOJ】2763 - [JLOI2011]飞行路线 （分层图 + 堆优化Dijkstra）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82320237</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82320237</guid><author>qq_41009682</author><pubDate>Sun, 02 Sep 2018 22:25:43 +0800</pubDate><description><![CDATA[题目链接

题意：还是单源最短路问题，不过不同的是你可以任选至多k条边并将它们的权值变成0。

思路：这是一类问题，我们可以把原图复制k边，形成k层，我们在每一次加边的时候不但要加上本来的边，还将n层图之间的u，v相连，权值为0，相当于一条快速下滑通道。因为图最多k层，所以最多只能使用k次下滑通道。你可能会觉得非常难实现，其实这本质上和经典的最短路没有区别，只是边更多了。

RE了无数次，因为不光...]]></description><category></category></item><item><title><![CDATA[【杭电oj】2066 - 一个人的旅行（SPFA）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82317231</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82317231</guid><author>qq_41009682</author><pubDate>Sun, 02 Sep 2018 17:27:20 +0800</pubDate><description><![CDATA[题目链接

单源最短路，但是有多个终点，求到最近终点的距离。

思路：唯一的难点就是将草儿家看成0点，做一个炒鸡源点。

没注意多组输入WA1。



AC代码：



#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
typedef long long ll;
typedef pair&amp;lt;int ,int&amp;gt; pii;
const i...]]></description><category></category></item><item><title><![CDATA[【CODEVS】1557 - 热浪 （SPFA）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82316692</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82316692</guid><author>qq_41009682</author><pubDate>Sun, 02 Sep 2018 16:38:00 +0800</pubDate><description><![CDATA[题目链接

其实就是一道单源最短路的题目，就是想测试一下我的SPFA板子。

双向边看成单向WA2。。。

AC代码：



#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
typedef long long ll;
typedef pair&amp;lt;int ,int&amp;gt; pii;
const int INF = 0x3f3f3f3f;
c...]]></description><category></category></item><item><title><![CDATA[【杭电oj】1536 - S-Nim（SG函数）]]></title><link>https://blog.youkuaiyun.com/qq_41009682/article/details/82291865</link><guid>https://blog.youkuaiyun.com/qq_41009682/article/details/82291865</guid><author>qq_41009682</author><pubDate>Sat, 01 Sep 2018 23:13:55 +0800</pubDate><description><![CDATA[题目链接

题意：类似经典的Nim博弈，不同的是这个题限制了可使用的操作，给出了操作集合。于是我们根据操作集合先做出SG数组就行了。

WA了一遍，有一个坑点就是给出的操作不一定是升序的，需要先排下序。。。 
感觉自己是个傻子。

AC代码：



#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int N = 1e4+100;
...]]></description><category></category></item></channel></rss>