<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[YYHS_WSF的博客]]></title><description><![CDATA[菜鸡的oi]]></description><link>https://blog.youkuaiyun.com/YYHS_WSF</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; YYHS_WSF]]></copyright><item><title><![CDATA[[ONTAK2010]Peaks加强版]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88592654</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88592654</guid><author>YYHS_WSF</author><pubDate>Sat, 16 Mar 2019 10:02:45 +0800</pubDate><description><![CDATA[题链：https://www.lydsy.com/JudgeOnline/problem.php?id=3551



kruskal重构树+主席树维护


#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;algorithm&amp;gt;
using namespace std;

int red()
{
	int ret=0;
	char ch=getchar();
	whil...]]></description><category></category></item><item><title><![CDATA[[Violet]蒲公英]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88592291</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88592291</guid><author>YYHS_WSF</author><pubDate>Sat, 16 Mar 2019 09:45:54 +0800</pubDate><description><![CDATA[题链：https://www.luogu.org/problemnew/show/P4168



这是一道神仙题

首先分块，答案可能是夹在中间的块或者是两边的数

预处理出任意一段块的众数

再每块用前缀和

每次询问暴力就好了



有点语无伦次，看代码


#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;algorithm&amp;gt;
#include&amp;lt;iost...]]></description><category></category></item><item><title><![CDATA[[国家集训队]小Z的袜子]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88592111</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88592111</guid><author>YYHS_WSF</author><pubDate>Sat, 16 Mar 2019 09:36:54 +0800</pubDate><description><![CDATA[题链：https://www.luogu.org/problemnew/show/P1494



莫队裸题

对询问按左端点排序

分成块，在对块中的询问按右端点排序

暴力从上一个询问转到下一个询问



时间：




#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cmath&amp;gt;
#include&amp;lt;algorithm&amp;gt;
#define ll lo...]]></description><category></category></item><item><title><![CDATA[「NOI2018」归程]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88591920</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88591920</guid><author>YYHS_WSF</author><pubDate>Sat, 16 Mar 2019 09:31:09 +0800</pubDate><description><![CDATA[题链：https://loj.ac/problem/2718



由于有无积水对行走没有影响，所以先预处理出每个点到1号点的路径

问题就变成了求一个联通块中最小值



两种方法：

1、用可持久化并查集维护，在根节点记录最小值

2、用kruskal重构树维护，用ST表维护最小值



方法1代码：


#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;queue&amp;...]]></description><category></category></item><item><title><![CDATA[【模板】可持久化并查集]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88591609</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88591609</guid><author>YYHS_WSF</author><pubDate>Sat, 16 Mar 2019 09:19:45 +0800</pubDate><description><![CDATA[题链：https://www.luogu.org/problemnew/show/P3402​​​​​


和可持久化数组及其类似，用主席树只是利用了主席树的结构
	主席树的叶子节点存的是该节点的爸爸
	由于每次修改的数量不能太多（不然会RE+TLE），所以不能路径压缩，只能按秩合并



#include&amp;lt;cstdio&amp;gt;
using namespace std;

const i...]]></description><category></category></item><item><title><![CDATA[[国家集训队]矩阵乘法]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88591512</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88591512</guid><author>YYHS_WSF</author><pubDate>Sat, 16 Mar 2019 08:59:57 +0800</pubDate><description><![CDATA[题链：https://www.luogu.org/problemnew/show/P1527



感觉树套树可以，但是空间不够

没有修改，询问的类型相同，又可以离线，推测整体二分



试试看，发现是个二维整体二分

时间复杂度




#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;iostream&amp;gt;
#include&amp;lt;algorithm&amp;gt;
us...]]></description><category></category></item><item><title><![CDATA[[国家集训队]种树]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88319591</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88319591</guid><author>YYHS_WSF</author><pubDate>Thu, 07 Mar 2019 20:26:20 +0800</pubDate><description><![CDATA[戳我看题面

以每个坑种树的收益建一个大根堆

填上一个坑后，向堆加入坑两边收益减去坑的收益，提供反悔的机会

这与网络流很像

用链表存前驱后继


#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;queue&amp;gt;
using namespace std;

struct A{int id,x; };

const int N=2e5+5; 
int n,m,pre[N]...]]></description><category></category></item><item><title><![CDATA[NOIP2017 Day2 T3 列队]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88315297</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/88315297</guid><author>YYHS_WSF</author><pubDate>Thu, 07 Mar 2019 17:53:33 +0800</pubDate><description><![CDATA[戳我看题面

考虑n=1的时候：

维护一个数列，每次删除一个数，再数列的结尾加上一个数，求第K大

这是splay，treap模板题

当然，不单单可以用他们来做

来可以用老少皆宜的线段树来做

维护01数列表示那个数是否存在，提前开出空间

删掉一个数标记成0，加上一个数常规加，求第K大就是线段树上二分

也可以用树状数组来做

与线段树操作一样，求第K大就是树状数组上倍增



当n！=...]]></description><category></category></item><item><title><![CDATA[BZOJ 3143: [Hnoi2013]游走]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/87365799</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/87365799</guid><author>YYHS_WSF</author><pubDate>Fri, 15 Feb 2019 15:47:36 +0800</pubDate><description><![CDATA[看题面戳我

求最小的获得的期望

很容易想到当边的期望经过数量越小，给予的权值越大

设表示边经过次数的期望，为经过点出去次数的期望，为度数



，要，

通过移项，可以得到个未知数，个方程的方程组

高斯消元后求出，进而求出，进而求出总期望

唯一坑点：要开  ，这无疑是想不到

 

这道题不得说是一道对于初学者来说不错的题目

作为一个对期望一窍不通的弱鸡，我对此还能做出


#incl...]]></description><category></category></item><item><title><![CDATA[速战逆矩阵]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/87359726</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/87359726</guid><author>YYHS_WSF</author><pubDate>Fri, 15 Feb 2019 14:30:01 +0800</pubDate><description><![CDATA[A：这是不是像上篇速战高斯消元一样都是水货？只用小学数学？

Q：如果你小学就会了这个，WOW，ORZ大佬

A：什么？这是不是很难？

Q：你学过线性代数不难

A：。。

 

常识：任何初等变化都可以在左边乘上一个矩阵表示

常识：增广矩阵

 

一步一步教你如何写出逆矩阵模板

先拿出草稿纸和笔

然后任意写一个矩阵

之后在矩阵旁边并排写上一个单位矩阵，并把它们当成整体，一起加减消元法...]]></description><category></category></item><item><title><![CDATA[速战高斯消元]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/87298835</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/87298835</guid><author>YYHS_WSF</author><pubDate>Fri, 15 Feb 2019 12:50:16 +0800</pubDate><description><![CDATA[A：高斯消元，这难吗？

Q：不难，只要你会线性代数初等变换

A：没去学过？。。

Q：上B站看大神讲解，去上网易公开课，看百度，买本书自己啃……

 

前面都是为了鼓励你们自我学习所说的肺（骗）腑（人）之言，当然这没有这么高大上

也不需要许多前置知识，只要你会十分水（难）的如何加减消元和代入消元（想当年我初中就这两个名词没写出来被扣了分。。）

 

如何个方程的解呢？

其实很简单，只需...]]></description><category></category></item><item><title><![CDATA[Luogu P2659 美丽的序列]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/85388178</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/85388178</guid><author>YYHS_WSF</author><pubDate>Sun, 30 Dec 2018 15:00:45 +0800</pubDate><description><![CDATA[题链

很容易想到，对于每个数，

先求出最后一个在原来的数左边的比它小的数，

再求出第一个在原来的数右边的比它小的数

然后循环统计答案

 

问题就变成了如何求最后一个在原来数左边比它小的

 

可以发现具有单调性：设存在，满足,则可舍去

所以用单调的数据结构维护（队列、栈……）

 

这道题不用维护头，所以用栈维护

记得开long long

 


#include&amp;lt;cs...]]></description><category></category></item><item><title><![CDATA[浅谈矩阵乘法]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84930896</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84930896</guid><author>YYHS_WSF</author><pubDate>Sun, 09 Dec 2018 20:54:23 +0800</pubDate><description><![CDATA[https://vjudge.net/contest/274056#overview 

矩阵乘法：利用矩阵优化其次的递推式

矩阵和矩阵乘法相必大家都知道（不会的右转百度）

把与的矩阵相乘，得到一个的矩阵即是矩阵乘法，

时间最暴躁的为

———————————————————————————————————————————————————————

例：矩阵乘法模板题


#include&amp;...]]></description><category></category></item><item><title><![CDATA[BZOJ 1492: [NOI2007]货币兑换Cash]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84744949</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84744949</guid><author>YYHS_WSF</author><pubDate>Mon, 03 Dec 2018 09:00:32 +0800</pubDate><description><![CDATA[看题面戳我

60分做法：有提示得，每次必须买完或者卖完，感觉像dp

表示前天赚取的最多钱



其中 ，


#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;iostream&amp;gt;
using namespace std;

const int N=1e5+5;
int n;
double f[N],a[N],b[N],r[N];
 
int main()
{
	sca...]]></description><category></category></item><item><title><![CDATA[Luogu  P1393 动态逆序对]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84727576</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84727576</guid><author>YYHS_WSF</author><pubDate>Sun, 02 Dec 2018 20:44:13 +0800</pubDate><description><![CDATA[戳我看题面

常规操作：离线后删除改成插入（倒着做）

问题就变成了插入一个数，求逆序对

求逆序对是cdq分治，所以插入一个数求逆序对多半也是cdq分治

构造三元组，表示时间，表示位置，表示数的大小

新插入一个数带来的影响无疑是          且（，或者,） 

记下来后求一前缀和就搞定了


#include&amp;lt;cstdio&amp;gt;
#define ll long long
usi...]]></description><category></category></item><item><title><![CDATA[Luogu P3374 【模板】树状数组 1]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84727521</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84727521</guid><author>YYHS_WSF</author><pubDate>Sun, 02 Dec 2018 20:41:48 +0800</pubDate><description><![CDATA[看题面戳我

一道常规的二维偏序，用前缀和的思想把求分成

带修改条件的，是从二维进阶到三维的必备题


#include&amp;lt;cstdio&amp;gt;
using namespace std;

const int N=2e6+5;
int n,m,c,cnt,ans[N];
struct A{int id,k,x,y; }q[N],t[N];

void work(int l,int r)
{
...]]></description><category></category></item><item><title><![CDATA[浅谈整体二分]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84703152</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84703152</guid><author>YYHS_WSF</author><pubDate>Sun, 02 Dec 2018 11:29:54 +0800</pubDate><description><![CDATA[思路有些像CDQ，都是离线

整体二分满足以下性质： 
1. 询问的答案具有可二分性 
2. 修改对判定答案的贡献相对独立，修改之间互不影响效果 
3. 修改如果对判定答案有贡献，则贡献为一确定的与判定标准无关的值 
4. 贡献满足交换律，结合律，具有可加性 
5. 题目允许离线操作

时间复杂度方面还要满足整体二分内部不能与序列的总长度相关，而要与当前的序列的长度相关

————————————...]]></description><category></category></item><item><title><![CDATA[浅谈CDQ分治]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84670648</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84670648</guid><author>YYHS_WSF</author><pubDate>Sat, 01 Dec 2018 14:40:16 +0800</pubDate><description><![CDATA[前置知识：分治

步骤：

           1、把原问题分为若干个形式相同，规模更小的子问题，直到子问题足够小

           2、递归求解子问题

           3、合并子问题的解，得到原问题的解

__________________________________________________________________

 

CDQ分治：一种特殊的分治，可以代...]]></description><category></category></item><item><title><![CDATA[Luogu P1613 跑路]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84536301</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84536301</guid><author>YYHS_WSF</author><pubDate>Mon, 26 Nov 2018 13:03:47 +0800</pubDate><description><![CDATA[戳我看题面

才50，时间复杂度可能是，也就是或者 //是数的最大值

因为和倍增有关，所以猜测。

这么奇葩的时间复杂度，只有了。

也就是两遍了

第一遍，倍增求出所有用十分牛B的空间跑路器能在1点时间从到，也就是长度为都为1

第二遍，求出最短路

——————————————————————————————————————————————————

Q：倍增是……？

A：我给它取的名字，...]]></description><category></category></item><item><title><![CDATA[BZOJ 2223: [Coci 2009]PATULJCI]]></title><link>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84481060</link><guid>https://blog.youkuaiyun.com/YYHS_WSF/article/details/84481060</guid><author>YYHS_WSF</author><pubDate>Sun, 25 Nov 2018 12:03:05 +0800</pubDate><description><![CDATA[看题面戳我

因为给了上限，言外之意算法与数据的上限有关，猜测是数组，但想一想不可能，所以应该是权值线段树

综合一下，猜测应该是区间第K大，也就是主席树了

最暴力的做法：每次询问排序后查看是否有连续超过的数相同

Q：为什么要是超过的数相同呢？为什么不能在给一个数据呢？

A：这是区间的一半，排序后如果存在则相同的数必须为中位数，证明略

所以结论与之前的猜想一结合，就是求区间的中位数的个数是...]]></description><category></category></item></channel></rss>