<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fufck]]></title><description><![CDATA[风在前，无惧！]]></description><link>https://blog.youkuaiyun.com/fufck</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fufck]]></copyright><item><title><![CDATA[BZOJ 4244 邮戳拉力赛]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/99705635</link><guid>https://blog.youkuaiyun.com/fufck/article/details/99705635</guid><author>fufck</author><pubDate>Sun, 18 Aug 2019 15:58:46 +0800</pubDate><description><![CDATA[题意：

思路：

参考博客

https://blog.youkuaiyun.com/forever_shi/article/details/84931438








/**************************************************************
    Problem: 4244
    User: fufck
    Language: C+...]]></description><category></category></item><item><title><![CDATA[CF 1178 F1]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/99705250</link><guid>https://blog.youkuaiyun.com/fufck/article/details/99705250</guid><author>fufck</author><pubDate>Sun, 18 Aug 2019 15:46:04 +0800</pubDate><description><![CDATA[题意：n个格子，编号1~n，n种颜色的油漆 ，编号1~n，每次依次选第i种颜色并将一段区间内全部涂成颜色i，区间内颜色被覆盖，可以涂色的前提是这一区间是相同的颜色，所以你可以认为最初n个格子全是白色。问有多少种涂色方式形成最终的颜色分布。

思路：笛卡尔树DP



从小到大操作，对于一个1他染的染色可能是红色的一段，所以可以分成左右两段分开考虑，最后乘起来即可。


#include&lt;bi...]]></description><category></category></item><item><title><![CDATA[2019牛客暑期多校训练营（第十场）J Wood Processing 斜率DP or 分治DP]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/99704977</link><guid>https://blog.youkuaiyun.com/fufck/article/details/99704977</guid><author>fufck</author><pubDate>Sun, 18 Aug 2019 15:20:10 +0800</pubDate><description><![CDATA[题意：



n块矩形，问你合并成K块，切掉的面积最小是多少

思路1：斜率DP

首先按照高度从小到大排序

F[I][J]表示前i块矩形，划分成J块的最小代价。则

F[I][J]=min(F[I][J],F[K][J-1]+W（K+1,I）)

W（i,j）表示把i到j这些合并一起的代价，sum[i]-sum[k]- h[k+1]*(sumw[i]-sumw[k]).

最后整理可得如下形式...]]></description><category></category></item><item><title><![CDATA[洛谷 2511 [HAOI2008]木棍分割]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/99704415</link><guid>https://blog.youkuaiyun.com/fufck/article/details/99704415</guid><author>fufck</author><pubDate>Sun, 18 Aug 2019 14:36:02 +0800</pubDate><description><![CDATA[题意：如题

思路：首先二分枚举最大的长度。

     dp[i][j]表示前一个木棍，切了j刀符合条件的方案数。

     dp[i][j]+=dp[k][j-1] (sum[i]-sum[k]&lt;=ans)

     这个转移可以用前缀和维护。

    状态总共O(n*m)，转移O（1）


#include&lt;bits/stdc++.h...]]></description><category></category></item><item><title><![CDATA[数位DP 做题小结]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/99687144</link><guid>https://blog.youkuaiyun.com/fufck/article/details/99687144</guid><author>fufck</author><pubDate>Fri, 16 Aug 2019 23:34:53 +0800</pubDate><description><![CDATA[HDU 4507

题意：不满足条件的数字的平方和

思路：DP[pos][num][val] 表示做到第pos位，各个数字和%7=num，整个数字%7=val的合法数字平方和是多少。


#include&lt;bits/stdc++.h&gt;
#define rep(i,a,b) for(int i=a;i&lt;=b;i++)
#define dep(i,a,b) for(int i=b;...]]></description><category></category></item><item><title><![CDATA[2019牛客暑期多校训练营（第九场）Quadratic equation]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/99658072</link><guid>https://blog.youkuaiyun.com/fufck/article/details/99658072</guid><author>fufck</author><pubDate>Thu, 15 Aug 2019 22:02:48 +0800</pubDate><description><![CDATA[题意：



思路：

已知





求：



x+y=? x-y=? 即可求解

可用二次剩余求解


#include&lt;bits/stdc++.h&gt;
#define rep(i,a,b) for(int i=a;i&lt;=b;i++)
#define dep(i,a,b) for(int i=b;i&gt;=a;i--)
using namespace std;
#defi...]]></description><category></category></item><item><title><![CDATA[Light OJ 1274 Beating the Dataset]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/99618085</link><guid>https://blog.youkuaiyun.com/fufck/article/details/99618085</guid><author>fufck</author><pubDate>Wed, 14 Aug 2019 23:39:20 +0800</pubDate><description><![CDATA[题意：（转化）题目可以抽象为某个01串全排列该位置与前一个位置不同或者第一位为0的数量期望。（0的数量是X，1的数量是Y）

思路：期望题。首先我们假设所有的01各不相同，总的方案数就有（x+y）！

     我们把01看成一个数字，（x+y-1）个数字全排列的个数为（x+y-1）！,总共有xy个不同的01,01互换位置的话有2xy

     把0放在第一位有X种，后面任意...]]></description><category></category></item><item><title><![CDATA[CF1110 D. Destroy the Colony (DP)]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/89093067</link><guid>https://blog.youkuaiyun.com/fufck/article/details/89093067</guid><author>fufck</author><pubDate>Mon, 08 Apr 2019 16:10:32 +0800</pubDate><description><![CDATA[题意：给你一串数字，问你最多有多少个[x,x+1,x+2]或者[x,x,x]这样的

思路：

用DP[i][j][k]表示有j个[x-1,x,x+1],还有k个[x,x+1,x+2]的最多三元组。

dp[i][k][l] = max(dp[i][k][l], dp[i - 1][j][k] + (Sum[i] - j - k - l)/3 + l) ;

一开始先加上l表示多了l个[x,x+1...]]></description><category></category></item><item><title><![CDATA[CF 1144 G Two Merged Sequences（贪心 or DP）]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/89089471</link><guid>https://blog.youkuaiyun.com/fufck/article/details/89089471</guid><author>fufck</author><pubDate>Mon, 08 Apr 2019 15:01:03 +0800</pubDate><description><![CDATA[参考博客：https://www.luogu.org/problemnew/solution/CF1144G

思路：

用dp[i][0]表示ai在递增序列中时，递减序列最小元素（最后一个元素）的最大可能值。

用dp[i][1]表示ai在递减序列中时，递增序列最大元素（最后一个元素）的最小可能值。

转移的时候就是：

dp[i][0]可能由a[i-1]和dp[i-1][0]的较大值

dp[...]]></description><category></category></item><item><title><![CDATA[BZOJ 4709 柠檬 决策单调性DP]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/88846310</link><guid>https://blog.youkuaiyun.com/fufck/article/details/88846310</guid><author>fufck</author><pubDate>Wed, 27 Mar 2019 15:49:04 +0800</pubDate><description><![CDATA[4709: [Jsoi2011]柠檬

           Time Limit:10 SecMemory Limit:128 MB

Description

Flute 很喜欢柠檬。它准备了一串用树枝串起来的贝壳，打算用一种魔法把贝壳变成柠檬。贝壳一共有 N (1 ≤ N

≤ 100...]]></description><category></category></item><item><title><![CDATA[CF 1093 F Vasya and Array]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/88777342</link><guid>https://blog.youkuaiyun.com/fufck/article/details/88777342</guid><author>fufck</author><pubDate>Sun, 24 Mar 2019 15:26:02 +0800</pubDate><description><![CDATA[题意：

给出一段长度为n的整数序列，一个正整数k，一个正整数len，序列中的所有数均在1~k之间，或者等于−1。

如果没有长度大于len的连续相同数字则该数段是好的。

可以将-1改为1~k之间的整数，将该数列变为好的，求出方案数，对998244353取模。



思路：

F[i][j]表示第i个位置填数字j的方案数。

S[i]表示填完前i个位置的方...]]></description><category></category></item><item><title><![CDATA[PTA  L3-020]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/88777320</link><guid>https://blog.youkuaiyun.com/fufck/article/details/88777320</guid><author>fufck</author><pubDate>Sun, 24 Mar 2019 15:24:40 +0800</pubDate><description><![CDATA[题意：给定一个全部由小写英文字母组成的字符串，允许你至多删掉其中 3 个字符，结果可能有多少种不同的字符串？

思路：

dp[i][j]表示做到第i个字符删除j个字符不重复的状态数，

如果不考虑重复字符串:

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

重复的个数为：

X_ _X，这种状态，删除前三位与删除后三位是同一种状态

X_X，这种状态，删除前两位与删除后两位...]]></description><category></category></item><item><title><![CDATA[gym 102001 J. Future Generation]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/88396628</link><guid>https://blog.youkuaiyun.com/fufck/article/details/88396628</guid><author>fufck</author><pubDate>Mon, 11 Mar 2019 16:19:40 +0800</pubDate><description><![CDATA[题意：给你n（n&amp;lt;=15）个串(len&amp;lt;=15),找出严格递增的n个子串使其长度之和最大

思路：递推型DP，F[I][J]记录做到第i个串，当前获得的总长度为J，其字典序最小的（第i个串中）子串


#include&amp;lt;bits/stdc++.h&amp;gt;
#include&amp;lt;tr1/unordered_map&amp;gt;
#include&amp;lt;bits/stdc++.h&amp;gt;...]]></description><category></category></item><item><title><![CDATA[CF 449 D (高维前缀和)]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/88395816</link><guid>https://blog.youkuaiyun.com/fufck/article/details/88395816</guid><author>fufck</author><pubDate>Mon, 11 Mar 2019 15:59:47 +0800</pubDate><description><![CDATA[题意：



思路：

令f（s）​表示子集含ｓ的方案数，

那么实际上f（s）就是所有含ｓ的集合的高维前缀和

高维前缀和其实就是求所有包含S的集合的和，一般都是倒着做的，如果正着推复杂度多了2^n次。


#include&amp;lt;iostream&amp;gt;
#include&amp;lt;cstring&amp;gt;
#include&amp;lt;cmath&amp;gt;
#include&amp;lt;cstdlib&amp;gt;
...]]></description><category></category></item><item><title><![CDATA[CCPC-Wannafly Winter Camp Day8 (Div2, onsite) 去音乐会]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/87449826</link><guid>https://blog.youkuaiyun.com/fufck/article/details/87449826</guid><author>fufck</author><pubDate>Sat, 16 Feb 2019 14:52:09 +0800</pubDate><description><![CDATA[题目链接

题目描述

在冬马曜子工作室的安排下，和纱会在维也纳休养a天，然后去日本开b-a天音乐会，并以b天为一周期不断循环。而根据Knight Records的工作安排，雪菜会去外地出差c天，然后休息d-c天，并以d天为以一周期不断循环。如果雪菜处在休息时间，那么她一定会去和纱在当天的音乐会（即使她前一天也去过了）。春希想知道在前n天中，雪菜一共去了几天音乐会。

a,b,c,d,n(1≤a&amp;...]]></description><category></category></item><item><title><![CDATA[STL 学习（持续更新）]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/86695706</link><guid>https://blog.youkuaiyun.com/fufck/article/details/86695706</guid><author>fufck</author><pubDate>Tue, 29 Jan 2019 21:18:46 +0800</pubDate><description><![CDATA[前言：一点都不会stl，在一年前的浙大校赛上就因为不会stl折戟成沙，最近的wannafly的比赛上也有一道题是要用set的去重性的，只能交给队友去写，最最重要的一点来了，最近的一场CF 比赛 D题要用bitset，我不会就掉分了！！！

1.29

1.set没有重复元素，multiset可以有重复元素。（补题）

2.vector


        vector&amp;lt;int&amp;gt; a ;...]]></description><category></category></item><item><title><![CDATA[CCPC-Wannafly Winter Camp Day5 (Div2, onsite) Doppelblock（搜索）]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/86653813</link><guid>https://blog.youkuaiyun.com/fufck/article/details/86653813</guid><author>fufck</author><pubDate>Sat, 26 Jan 2019 01:33:45 +0800</pubDate><description><![CDATA[题意：给一个矩形，往里面加一些数字和X，满足一些条件

思路：爆搜，两条剪枝，首先先填X，两个X之间的差距为固定的，之后再填数字，数字的填法是X外面的数字之和为zhi-x【i】。

错误1：len数组没有清空（每次做的时候都要清空）

错误2：数组的大小（检查了两个小时发现是数组太小了）

错误3：如何骗评测，发现这个OJ是答案出来再比较的，所以首先评测一下是否有答案输出，用一个pp=0表示没有输...]]></description><category></category></item><item><title><![CDATA[CF 1108 E2 Array and Segments]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/86646697</link><guid>https://blog.youkuaiyun.com/fufck/article/details/86646697</guid><author>fufck</author><pubDate>Fri, 25 Jan 2019 16:41:24 +0800</pubDate><description><![CDATA[题意：给你一个序列，给你m个区间，你可以选择其中的若干区间进行区间-1操作，每个区间只能选一次，问你最后整个的序列的最大值-最小值的差值最大为多少。

思路一：总共只有300个区间，将其离散化最多只有2m个区间，枚举一个区间，将其最小值当为最小值，再枚举一个区间其最大值当为最大值，首先保持最大值不受影响，那么最小值能改变的最多为通过它的区间数但不通过最大值区间的数目。时间O（4*m^3）


#i...]]></description><category></category></item><item><title><![CDATA[CF 1108 F (kurskal)]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/86635094</link><guid>https://blog.youkuaiyun.com/fufck/article/details/86635094</guid><author>fufck</author><pubDate>Thu, 24 Jan 2019 23:53:25 +0800</pubDate><description><![CDATA[题意：给你一个图，你可以给一些边权+1，在最小生成树的权值不变且唯一的情况下操作次数最少。

思路：kurskal加边操作，对于边权相同的点判断是否在生成树内，不在的话ans++。


#include&amp;lt;bits\stdc++.h&amp;gt;
using namespace std;
struct node{
	int v,u,w;
}a[201000]; 
int cnt=0,n,m,fa[2...]]></description><category></category></item><item><title><![CDATA[玄学？待补]]></title><link>https://blog.youkuaiyun.com/fufck/article/details/84666720</link><guid>https://blog.youkuaiyun.com/fufck/article/details/84666720</guid><author>fufck</author><pubDate>Fri, 30 Nov 2018 19:18:40 +0800</pubDate><description><![CDATA[3572 Task Schedule

不知为何超时 ？


/*
复杂度：O(n2m) 
*/
#include&amp;lt;iostream&amp;gt;
#include&amp;lt;cstring&amp;gt;
#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;queue&amp;gt;
using namespace std;
const int max_n=1005;
const int max_...]]></description><category></category></item></channel></rss>