<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[YLWangcpp的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/YLWangcpp</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; YLWangcpp]]></copyright><item><title><![CDATA[扩欧模板]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/85220936</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/85220936</guid><author>YLWangcpp</author><pubDate>Sun, 23 Dec 2018 10:46:20 +0800</pubDate><description><![CDATA[
#pragma GCC optimize(3)
#include&amp;lt;bits/stdc++.h&amp;gt;
#define mst(a,b) memset(a,b,sizeof(a))
#define For(i, k, j) for(int i = (k); i &amp;lt;= (j); i++)
#define INF 2147483647/3
#define ll long long
usin...]]></description><category></category></item><item><title><![CDATA[树状数组单点修改模板]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/84554563</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/84554563</guid><author>YLWangcpp</author><pubDate>Mon, 26 Nov 2018 18:58:59 +0800</pubDate><description><![CDATA[
#pragma GCC optimize(3)
#include&amp;lt;bits/stdc++.h&amp;gt;
#define mst(a,b) memset(a,b,sizeof(a))
#define For(i, k, j) for(int i = (k); i &amp;lt;= (j); i++)
#define INF 2147483647/3
#define ll long long
usin...]]></description><category></category></item><item><title><![CDATA[搜集钻石（树形DP例题）]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/84546088</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/84546088</guid><author>YLWangcpp</author><pubDate>Mon, 26 Nov 2018 15:36:15 +0800</pubDate><description><![CDATA[搜集钻石

Description

 

蒜国有 n 座城市，编号从 1 到 n，城市间有 n−1 条道路，且保证任意两座城市之间是连通的。每一座城市有一定数量的钻石。

蒜头君想在蒜国搜集钻石。他从城市 1 出发，每天他可以通过城市之间道路开车到另外的城市。当蒜头第一次到一个城市的时候，他可以搜集完这个城市的所有钻石，如果他后面再来到这个城市，就没有砖石可以收集了。

蒜头君只有 K 天时间，...]]></description><category></category></item><item><title><![CDATA[购物]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/83718050</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/83718050</guid><author>YLWangcpp</author><pubDate>Sun, 04 Nov 2018 17:52:02 +0800</pubDate><description><![CDATA[



DP.f[i][j]表示花费为i, 买了j个物品的价值


#pragma GCC optimize(3)
#include&amp;lt;bits/stdc++.h&amp;gt;
#define For(i, j, k) for(int i=(j);i&amp;lt;=(k);i++)
#define INF (2147483647&amp;gt;&amp;gt;1)
#define Pair pair&amp;lt;int,int...]]></description><category></category></item><item><title><![CDATA[卖铅笔]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/83717800</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/83717800</guid><author>YLWangcpp</author><pubDate>Sun, 04 Nov 2018 17:27:31 +0800</pubDate><description><![CDATA[



此题很水，sort一遍即可。千万别忘记开long long

注意n，m不要读入反，博主就咕在了这里，Time Limit Exceeded 10 / 10


#pragma GCC optimize(3)
#include&amp;lt;bits/stdc++.h&amp;gt;
#define For(i, j, k) for(int i=(j);i&amp;lt;=(k);i++)
#define INF...]]></description><category></category></item><item><title><![CDATA[高精度类模板]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/83512519</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/83512519</guid><author>YLWangcpp</author><pubDate>Mon, 29 Oct 2018 20:25:30 +0800</pubDate><description><![CDATA[
struct bigint{
	static const int MAXN = 1005;
    int d[MAXN], len;
	void clean() { while(len &amp;gt; 1 &amp;amp;&amp;amp; !d[len-1]) len--; }
    bigint() { memset(d, 0, sizeof(d)); len = 1; }
    bigint(int n...]]></description><category></category></item><item><title><![CDATA[洛谷P1036 选数]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/83387310</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/83387310</guid><author>YLWangcpp</author><pubDate>Thu, 25 Oct 2018 22:02:01 +0800</pubDate><description><![CDATA[题目链接：https://www.luogu.org/problemnew/show/1036

题目描述：

已知 n 个整数 x1,x2,…,xn，以及一个整数 k（k＜n）。从 n 个整数中任选 k 个整数相加，可分别得到一系列的和。例如当 n=4，k＝3，4 个整数分别为 3，7，12，19 时，可得全部的组合与它们的和为：

3＋7＋12=22

3＋7＋19＝29

7＋12＋19＝3...]]></description><category></category></item><item><title><![CDATA[费用流详解]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/81044799</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/81044799</guid><author>YLWangcpp</author><pubDate>Sat, 14 Jul 2018 16:21:24 +0800</pubDate><description><![CDATA[转自https://blog.youkuaiyun.com/ripped/article/details/70669955费用流，也叫作最小费用最大流，是指在普通的网络流图中，每条边的流量都有一个单价，求出一组可行解，使得在满足它是最大流的情况下，总的费用最小。 （最大费用最大流同理，费用改成负的就行） 做法一般都是简单地SPFA（也就是和EK算法类似），时间复杂度比较高，所以一般规模都挺小的。 1、找到一条...]]></description><category></category></item><item><title><![CDATA[最大流]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/80916169</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/80916169</guid><author>YLWangcpp</author><pubDate>Wed, 04 Jul 2018 17:36:26 +0800</pubDate><description><![CDATA[EK：#include&amp;lt;bits/stdc++.h&amp;gt;
#define mst(a,b) memset(a,b,sizeof(a))
#define For(i, k, j) for(register int i = (k); i &amp;lt;= (j); i++)
#define INF 2147483647
using namespace std;
inline int read()
{...]]></description><category></category></item><item><title><![CDATA[线段树板子]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/80916145</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/80916145</guid><author>YLWangcpp</author><pubDate>Wed, 04 Jul 2018 17:35:03 +0800</pubDate><description><![CDATA[#include&amp;lt;bits/stdc++.h&amp;gt;
#define mst(a, b) memset(a, b, sizeof(a))
#define ls(k) (k&amp;lt;&amp;lt;1)
#define rs(k) (k&amp;lt;&amp;lt;1|1)
using namespace std;
struct tree {
	int l, r;
	long long sum;
	long long...]]></description><category></category></item><item><title><![CDATA[超神的质数判断]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/80791117</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/80791117</guid><author>YLWangcpp</author><pubDate>Sun, 24 Jun 2018 14:30:04 +0800</pubDate><description><![CDATA[速度很快，嗯。#include&amp;lt;bits/stdc++.h&amp;gt;
#define mst(a,b) memset(a,b,sizeof(a))
#define For(i, k, j) for(register int i = (k); i &amp;lt;= (j); i++)
#define INF 2147483647
using namespace std;
inline int read...]]></description><category></category></item><item><title><![CDATA[割点浅谈]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/80586433</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/80586433</guid><author>YLWangcpp</author><pubDate>Tue, 05 Jun 2018 21:20:01 +0800</pubDate><description><![CDATA[题目：洛谷P3388模板割点if(边 u -&amp;gt; v 是树边（父子边）)
    low[u] = min( low[u], low[v] );
else
    low[u] = min( low[u], dfn[v] );关键在于：为什么回边的情况下，为什么不是low[u] = min( low[u], low[v] );，而是low[u] = min( low[u], dfn[v] );...]]></description><category></category></item><item><title><![CDATA[最长上升子序列 nlogn]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/80570713</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/80570713</guid><author>YLWangcpp</author><pubDate>Mon, 04 Jun 2018 17:50:52 +0800</pubDate><description><![CDATA[nlogn LIS：开一个栈，每次取栈顶元素top和读到的元素temp做比较，如果temp &amp;gt; top 则将temp入栈；如果temp &amp;lt; top则二分查找栈中的比temp大的第1个数，并用temp替换它。 最长序列长度即为栈的大小top。这也是很好理解的，对于x和y，如果x &amp;lt; y且Stack[y] &amp;lt; Stack[x],用Stack[x]替换Stack[y]，此时的最长...]]></description><category></category></item><item><title><![CDATA[codeforce 462DIV2 C题]]></title><link>https://blog.youkuaiyun.com/YLWangcpp/article/details/80527929</link><guid>https://blog.youkuaiyun.com/YLWangcpp/article/details/80527929</guid><author>YLWangcpp</author><pubDate>Thu, 31 May 2018 17:46:11 +0800</pubDate><description><![CDATA[转自 https://www.cnblogs.com/LQLlulu/p/8825115.html题意  给出一个只含有1和2的序列，有n个元素，可以选择一段区间进行翻转操作，求再反转后的最大非递减子序列的长度分析 太菜了只想出了N^2的做法。序列只有1和2，那么每个非递减子序列都会有一个分界点，在分界点前是1以后是2。观察可以发现，只有当翻转的区间包含这个分界点的时候，这个分界点的非递减子序列的...]]></description><category></category></item></channel></rss>