<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_40924940的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_40924940</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_40924940]]></copyright><item><title><![CDATA[Educational Codeforces Round 61 (Rated for Div. 2)]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88252822</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88252822</guid><author>qq_40924940</author><pubDate>Wed, 06 Mar 2019 20:03:34 +0800</pubDate><description><![CDATA[A.给你输入四个括号数目，求能否全部组成匹配

我们发现 2不用管。 3的话 n个3可以最后组合在一起变成1个3，只需要 1 4相等，同时 1 4为0时 3也为0其他情况输出0

B.贪心题，排序，然后输出 sum - a[i-q[i]]

c.暴力枚举不选的两个工人，但是需要前缀和快速处理

E是一道区间dp，但是感觉和原来做过的一个不太一样。。。


...]]></description><category></category></item><item><title><![CDATA[LT - 021 神坛]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88189878</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88189878</guid><author>qq_40924940</author><pubDate>Tue, 05 Mar 2019 16:58:46 +0800</pubDate><description><![CDATA[极角排序加暴力，但是注意如果直接用double会被卡精度，要用 ll之后转一下

枚举相邻向量构成面积

O ( n^2 * logn )




#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int maxn=5005;
#define ll long long int
struct node
{
    ll x,y;...]]></description><category></category></item><item><title><![CDATA[CF 1077F]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88184176</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88184176</guid><author>qq_40924940</author><pubDate>Tue, 05 Mar 2019 15:33:28 +0800</pubDate><description><![CDATA[分简单版和难版

题意就是我们要在长度为 n的数组里取 x个数字，同时每个数字之间间隔不得超过 k,同时取数字的起点和 1距离也不得超过 k ，终点和 n距离也不得超过k

我们发现每次取数字假设取 i那么就是要在 i-k这个区间内挑选最大值作为取的这个数的前一个，

开dp数组， dp [ i ] [ j ] 代表取第 i个数字为第 j个数字

那么 dp...]]></description><category></category></item><item><title><![CDATA[cf 1105E]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88170406</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88170406</guid><author>qq_40924940</author><pubDate>Tue, 05 Mar 2019 10:24:45 +0800</pubDate><description><![CDATA[有 n个操作,m个人， 1代表更改一个名字 ， 2代表查询一个名字，如果某个人在查找的时候发现账户名字就是自己名字的话她会很高兴，问最多能有几个人高兴

那么我们发现 1操作之间的 2操作就是关键点，不同 1之间的连续 2只能选择一个，我们发现这就是原图中的最大独立集，求法自然就是补图的最大团数目。。。附一个最大团模板




#include &amp;lt;bits/stdc+...]]></description><category></category></item><item><title><![CDATA[CF 1109G]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88131130</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88131130</guid><author>qq_40924940</author><pubDate>Mon, 04 Mar 2019 18:39:59 +0800</pubDate><description><![CDATA[有 n个题目，每个题目有一个难度，保证递增，还有一个花费，你每出一道题会获得 a元回报，现在需要你选择一个连续区间，使得受益最大，同时，收益还要减去 gap(i, j )  gap ( i , j ) = max( d[i] - di+1] ) ^2 求最大收益

枚举 gap出现点，用线段树维护区间最大和。。。同时需要注意，维护的区间和是连续区间和，需要前缀和后缀

线段树同时维护前...]]></description><category></category></item><item><title><![CDATA[CF 1077D]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88095952</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88095952</guid><author>qq_40924940</author><pubDate>Sun, 03 Mar 2019 23:06:27 +0800</pubDate><description><![CDATA[给一个数组，长度为 n ,选出长度为 k的子串，使得从长度为 n的串里消除这个子串的次数最多

二分枚举每个数字使用次数。




#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int maxn = 2e5+2;
#define debug(x) cout &amp;lt;&amp;lt; &quot;[&quot; &amp;lt;&amp;lt; x &amp;lt;&amp;l...]]></description><category></category></item><item><title><![CDATA[CF 1105C]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88093444</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88093444</guid><author>qq_40924940</author><pubDate>Sun, 03 Mar 2019 20:44:04 +0800</pubDate><description><![CDATA[给一个长度为 n的数列，数列数据范围在 l-r之间，问有多少种方案使得数列和为 3的倍数（可以重复取数）

数位 dp

因为要取3的倍数，所以数列和%3只有三种结果， 0 1 2 ，我们可以根据数论算出

l-r之间 %3 == i数字个数为 ( r-i+3 ) /3 - ( l-i-1+3 )/ 3

我们可以预处理 l r之间全部的计数，之后我们对于构建dp
...]]></description><category></category></item><item><title><![CDATA[CF 1105D]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88092679</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88092679</guid><author>qq_40924940</author><pubDate>Sun, 03 Mar 2019 19:54:52 +0800</pubDate><description><![CDATA[题目有一个 n*m的棋盘， #为墙， .为空地 1 2 3 4.等为旗手的棋子，每个旗手有一个速度，代表每回合能扩张几步，扩张方向包括上下左右，现在从 1 - p开始依次扩张直到棋盘满了，求每个旗手最多走了多少个地板。。

需要 p个队列储存 bfs信息，同时需要记录步数和回合数，每个回合只能扩张 v次，而如果全部棋盘都走满了则游戏结束。



以下为 AC代码‘’

...]]></description><category></category></item><item><title><![CDATA[牛客练习赛 41]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88081712</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88081712</guid><author>qq_40924940</author><pubDate>Sat, 02 Mar 2019 21:32:07 +0800</pubDate><description><![CDATA[A.博弈我们发现要么一次拿光，要么 m为 1否则都赢不了

B. dp思路，因为有负数，如果全负数，最小为 -666*300近似于 21W所以把锚点设为 210000，

dp [ i ] [ j ]代表前 i个数字凑够数字 j的方案数，

dp[ i ] [ j ] = dp [ i-1 ] [ -j ] + dp [ i-1 ] [ j-a[i] ]

但是...]]></description><category></category></item><item><title><![CDATA[CF 1118D]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88081472</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88081472</guid><author>qq_40924940</author><pubDate>Sat, 02 Mar 2019 21:20:50 +0800</pubDate><description><![CDATA[有 n杯咖啡， m本作业，每杯咖啡有一定能量，有 x 个能量就能完成 x 本作业，但是如果连续喝咖啡，会衰减能量，第一杯为 a[i] ,第二杯为 a[i]-1第三杯为 a[i] - 2....以此类推

问最少花费几天解决m个作业

简单版本可以暴力遍历，复杂版本就得靠二分法了

二分枚举完成天数，然后模拟。。。






#include&amp;lt;bits/stdc++.h...]]></description><category></category></item><item><title><![CDATA[CF 1130 C]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88075596</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88075596</guid><author>qq_40924940</author><pubDate>Sat, 02 Mar 2019 14:26:57 +0800</pubDate><description><![CDATA[给定起点终点，走迷宫，迷宫为 1代表没法走，我们可以直接在某两个点之间建一个通道，花费为 (x1-x2)^2 + (y1-y2)^2

求最小花费使得从起点到终点

遍历起点可以到的全部点和终点可以到的全部点，

暴力循环求距离求最小值就好了。。。




#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int maxn=...]]></description><category></category></item><item><title><![CDATA[CF 1108F]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88062733</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88062733</guid><author>qq_40924940</author><pubDate>Fri, 01 Mar 2019 16:50:46 +0800</pubDate><description><![CDATA[有一个操作，可以使一条边权值加1

现在给一个图，可能存在多个最小生成树，我们现在要求用最小的操作次数，使得最小生成树唯一

其实换种说法就是找一下图中最小生成树的冲突边

我们发现一旦权值一样，而且连接的 两个 联通块一样，那么这两条边就是可以二选一，

也就是 2个最小生成树的来源了

那么我们可以克鲁斯卡尔对边排序，之后根据边权分块，对于权值相同的边，我们只取需要的条数，因为我...]]></description><category></category></item><item><title><![CDATA[Codeforves 535 div3 模拟]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88047679</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88047679</guid><author>qq_40924940</author><pubDate>Fri, 01 Mar 2019 01:03:19 +0800</pubDate><description><![CDATA[A.水题。。两个坐标重合之后看一下

B.拆数字，我们知道最大的肯定是一个，第二个我们可以从大到小遍历，找到一个不会被最大值整除的或者连续出现两次的

因为只看最大和次打可以被 hack掉

参照 10 5 2 2 1

C.题意很墨迹，有三个灯， r g b我们要求 r与 r之间 ， g与 g之间以及 b与 b之间距离必须被3整除，

给你一个只含 rgb的字符串...]]></description><category></category></item><item><title><![CDATA[CF 1117F]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/88040568</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/88040568</guid><author>qq_40924940</author><pubDate>Thu, 28 Feb 2019 19:44:23 +0800</pubDate><description><![CDATA[给定一个数列，两种操作，

1区间乘 x

2求区间累乘 的欧拉函数对 1e9+1取模
我们发现线段树可以轻松搞定，可是 n 4e5虽然 ai只有 300，直接暴力肯定超 ll ,

首先区间乘法可以要线段树维护，而欧拉函数我们知道 = n* (p1-1)/p1 *(p2-1)/p2。。。

那么就可以逆元，而且 300以内素数有 62个，我们可以一一记录下来对于每个数，我...]]></description><category></category></item><item><title><![CDATA[CF 1130B]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/87992152</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/87992152</guid><author>qq_40924940</author><pubDate>Wed, 27 Feb 2019 21:37:40 +0800</pubDate><description><![CDATA[dp思路，

有一排商店，每个商店卖一个编号为 1-n之间的蛋糕，有 2*n个商店，我们现在有两个人想要买蛋糕，使得蛋糕编号为 1-n递增序列，商店之间距离为1，起始两个人都从 1开始，求最小走的距离，。

直接dp，蛋糕只有两个，我们设 id[ i ] [ 0 ] / id [ i ] [ 1 ]为卖 i号蛋糕的两个商店位置，

dp[ i ] [ 0 ]可以由 dp [ ...]]></description><category></category></item><item><title><![CDATA[CF 1131F]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/87985629</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/87985629</guid><author>qq_40924940</author><pubDate>Wed, 27 Feb 2019 19:25:19 +0800</pubDate><description><![CDATA[题干

有 n只猫咪，被分在 n个隔间，有 n-1个挡板，之后会拆n-1次挡板，没拆一次挡板使得 a b可以到一个l笼子中，输出可能存在的初始猫咪分配顺序。。‘



我们发现，这就是一个不断地把相邻元素整理成一个集合的过程，和并查集很像，但是唯一的不同点在于，我们需要根据集合整理顺序，存储这些猫咪，开个邻接表就好了，每次把少的加入到多的那里去，最后顺序输出




#incl...]]></description><category></category></item><item><title><![CDATA[CF 1131D]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/87980171</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/87980171</guid><author>qq_40924940</author><pubDate>Wed, 27 Feb 2019 17:05:07 +0800</pubDate><description><![CDATA[今天有 n 个菜，昨天有 m 个菜，我们输入一个字符矩阵 n*m，

如果 mp[ i ] [ j ] ==   ' &amp;gt; '  代表 今天的比昨天菜好吃 , &amp;lt; 代表不如昨天菜好吃， = 代表一样

求每道菜美味度（尽可能小，唯一解）

我们发现 如果两个菜是 = 那么很显然 ，他们美味度在一个等级， &amp;gt; 代表有一个菜比当前这个等级低一级。&amp;lt; 代表高一级，那么很显然，我们可...]]></description><category></category></item><item><title><![CDATA[CF 1103C]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/87947599</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/87947599</guid><author>qq_40924940</author><pubDate>Tue, 26 Feb 2019 20:45:03 +0800</pubDate><description><![CDATA[题目给你一个简单无向图，无自环，且每个点的度数至少为3，

首先 输入 n m k ，如果树的深度 超过 n/k ，输出大于等于 n/k的一条路径长度，并且输出路径上的点（任意一条）

如果这个任务没完成那么进入下一步

第二个任务，找出图中所有的环，保证这些环的大小大于3但不是3的倍数 ，且每个环中至少有一个点在所有输出的环中只出现过一次。，

我们知道用 dfs 方式将这个图 变成一个树，那么...]]></description><category></category></item><item><title><![CDATA[CF 1110E]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/87938068</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/87938068</guid><author>qq_40924940</author><pubDate>Tue, 26 Feb 2019 16:44:52 +0800</pubDate><description><![CDATA[差分题目。。。很神奇。。。

看了公式就会发现很简单，是个构造。。。

c i '  =  c i+1  + c i-1 - c i

= c i+1 - ci + c i-1

我们发现 出现了一个 ci+1  - ci， 那么我们很显然，可以尝试构造一个 新式子

di = ci+1 - ci

那么 di '  =  ci+1 - ci+1 + c i - c i-1  = d i-1

很...]]></description><category></category></item><item><title><![CDATA[CF 1114E]]></title><link>https://blog.youkuaiyun.com/qq_40924940/article/details/87935028</link><guid>https://blog.youkuaiyun.com/qq_40924940/article/details/87935028</guid><author>qq_40924940</author><pubDate>Tue, 26 Feb 2019 14:54:30 +0800</pubDate><description><![CDATA[交互题，给定一个长度为 n 的打乱顺序等差序列

给两种询问操作

A 询问有无 数字 &amp;gt;x 有返回1 无返回0

B 询问数列第 k 个数字是几（暴力询问）

最后60次询问内，求出最大项和公差

很简单，30次内 二分出最大项，用A操作，

之后暴力询问出 30 个尽可能不重复的 数字（太弱了，随机算法抄的网上的。。）

之后 最大项减去各个数字的差 的 gcd 就是公差了

 


#...]]></description><category></category></item></channel></rss>