<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mdnd1234的博客]]></title><description><![CDATA[这是一个zj蒟蒻的博客]]></description><link>https://blog.youkuaiyun.com/mdnd1234</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mdnd1234]]></copyright><item><title><![CDATA[APIO2012 派遣 题解]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/80966286</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/80966286</guid><author>mdnd1234</author><pubDate>Mon, 09 Jul 2018 10:24:19 +0800</pubDate><description><![CDATA[这题还是非常显然的题意大概是随便选一个点x，树上每点有点权(v[x])和一个代价(c[x])，你有一个值m，设，我们用m可以最多大于y[x]个x的子树中代价的和，求出所有点的y[x]*v[x]的值，其中最大值就是答案。非常显然用线段树合并还有可并堆的做法，不怎么会会，下次学#include&amp;lt;iostream&amp;gt;#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;algo...]]></description><category></category></item><item><title><![CDATA[noip2017(AFO)游记]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/78593119</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/78593119</guid><author>mdnd1234</author><pubDate>Tue, 21 Nov 2017 15:40:32 +0800</pubDate><description><![CDATA[几经挣扎，还是AFO了
果然我还是太菜了
甚矣，予之菜
DAY1 一开场发现T1好像有点鬼畜，然后想了想exgcd觉得可能exgcd被奶中了，然后推了十分钟推不出来，人开始进入虚幻状态，于是看了一下T2感觉就是个字符串模拟题，好吧，不管了，等会做，再看看T3吧，只会k=0，算了，先敲个30分暴力吧，敲完了，嗯。。。。再码T2吧，然后也敲完了，有个大样例萎了。。？？然后发现了个小错误调完了，然]]></description><category></category></item><item><title><![CDATA[51nod 1033骨牌覆盖 V2]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/71122135</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/71122135</guid><author>mdnd1234</author><pubDate>Wed, 03 May 2017 13:17:55 +0800</pubDate><description><![CDATA[矩阵乘法题
就是状压一下一列的状态然后预处理出某两种状态的转移的方案数
然后构造一个矩阵a[i][j]表示i的状态到j的状态的条数
然后直接矩阵乘法就可以了
#include
#include
#include
#include
using namespace std;
const int mod=1000000007;
typedef vector vec;
typedef vector]]></description><category></category></item><item><title><![CDATA[开博客了]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/71122029</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/71122029</guid><author>mdnd1234</author><pubDate>Wed, 03 May 2017 13:12:58 +0800</pubDate><description><![CDATA[没错，我又开始写博客了]]></description><category></category></item><item><title><![CDATA[关于更博的问题]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70597561</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70597561</guid><author>mdnd1234</author><pubDate>Mon, 24 Apr 2017 14:17:23 +0800</pubDate><description><![CDATA[由于博主变懒了，所以不想更博了
所以到这里就停了
蟹蟹
就是这么简单
但是别忘了有事没事来刷一下访问量]]></description><category></category></item><item><title><![CDATA[BZOJ P1011[HNOI2008]遥远的行星]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70225683</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70225683</guid><author>mdnd1234</author><pubDate>Tue, 18 Apr 2017 10:46:12 +0800</pubDate><description><![CDATA[大概是近似估算，由于只有距离在一定远的情况下才会有贡献，所以当距离十分大的时候直接估算
一定范围暴力求
#include
#include
#include
#include
using namespace std;
long long a[100005];
double f[100005],arf;
int n;
int main(){
	scanf("%d%lf",&n,&arf);
  ]]></description><category></category></item><item><title><![CDATA[BZOJ P1027[JSOI2007]合金]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70215582</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70215582</guid><author>mdnd1234</author><pubDate>Mon, 17 Apr 2017 20:19:39 +0800</pubDate><description><![CDATA[大概算是第一道的计算几何题？？
我们可以发现给出的三个量相加等于一，别跟我说样例，所以可以忽略一项
然后我们可以发现，如果要混合出一样东西，假设是x1,y1.x2,y2混合出x3,y3
(x1
所以题目就是要找一些点这些点连出来的多边形可以包含所有点
这样就是个凸包了，然后floyed跑个最短路
我的注释多详细
#include
#include
#include
#include]]></description><category></category></item><item><title><![CDATA[BZOJ P2654 tree]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70215035</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70215035</guid><author>mdnd1234</author><pubDate>Mon, 17 Apr 2017 19:30:47 +0800</pubDate><description><![CDATA[神题啊
二分给白色边加上的权值，然后kruscal看看有没有正好need条边
有的话直接输出就可以了
然后证明的话不会，大概是你每条白边都加上一定的值是不会影响到最后的结果的
当然你也可以当做是显然成立的
#include
#include
#include
#include
using namespace std;
int n,m,cnt,tot,ned,sumv;
int u[100]]></description><category></category></item><item><title><![CDATA[BZOJ P3289 Mato的文件管理]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70207999</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70207999</guid><author>mdnd1234</author><pubDate>Mon, 17 Apr 2017 10:08:10 +0800</pubDate><description><![CDATA[交换次数就是逆序对个数，然后莫队离线处理一下
用树状数组求逆序对
#include
#include
#include
#include
#include
using namespace std;
struct data{
	int id,rank;
};
struct que{
	int l,r,id;
};
que q[50003];
data file[50003];
int n,m,s]]></description><category></category></item><item><title><![CDATA[BZOJ P1878[SDOI2009]HH的项链]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70207447</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70207447</guid><author>mdnd1234</author><pubDate>Mon, 17 Apr 2017 09:04:58 +0800</pubDate><description><![CDATA[直接离线加上一个巧妙的前缀和
就是类似于边表存一个某一个元素的第一次出现的位置和下一次
然后离线询问之后从左往后扫
扫到某一个元素就把这个元素的下一个位置加一，然后每一个询问求一个区间和就可以了
#include
#include
#include
#include
using namespace std;
inline int read(){
    int x=0;
	char ch=]]></description><category></category></item><item><title><![CDATA[混合图的欧拉回路求法]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70186794</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70186794</guid><author>mdnd1234</author><pubDate>Sat, 15 Apr 2017 20:46:50 +0800</pubDate><description><![CDATA[利用了网络流的自调整特性，构图，并通过最大流解决
首先混合图欧拉回路的判定就是入度=出度
我们先把有向边的贡献都算一遍，即对点入度出度的贡献
然后对每一条无向边任意定向，然后算出贡献
然后我们考虑这样显然不是正解，所以要
调整
怎么调整呢？？就是把原来定向的无向边改变方向
我们想想一条无向边改变方向的贡献是多少，是2，因为一进一出就是2啊
然后我们把无向边定向后的所有入度大于出度的]]></description><category></category></item><item><title><![CDATA[BZOJ P3212 Pku3468 A Simple Problem with Integers]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70168288</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70168288</guid><author>mdnd1234</author><pubDate>Fri, 14 Apr 2017 09:26:05 +0800</pubDate><description><![CDATA[线段树区间加区间查询
记得要开long long
#include
#include
#include
#include
#include
using namespace std;
int n,m;
struct data{
	int l,r;
	long long s,add;
}t[400003];
void pushup(int k){
	t[k].s=t[k<<1].s+t[k<<1|]]></description><category></category></item><item><title><![CDATA[最小生成树]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70168032</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70168032</guid><author>mdnd1234</author><pubDate>Fri, 14 Apr 2017 08:54:53 +0800</pubDate><description><![CDATA[可以意淫一下，我如果要又在最小生成树上
又在最大生成树上
只有一种可能，把与u联通的点为一个集合，把与v联通的点为一个集合
这两个集合中有且仅有长度等于L的边相连
所以题目就变成了，求割掉最少的边，把点分成两个集合，使得这两个集合中不连通
然后跑最小割
不知道思路对不对
等会下午打个代码试试]]></description><category></category></item><item><title><![CDATA[BZOJ P3438 小M的作物]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70161383</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70161383</guid><author>mdnd1234</author><pubDate>Thu, 13 Apr 2017 19:45:18 +0800</pubDate><description><![CDATA[最小割
#include
#include
#include
#include
using namespace std;
const int inf=1000000000;
int head[3003];
int to[5100010],c[5100010];
int next[5100010],q[3003];
int d[3003],a[3003],b[3003];
int n,m,num,]]></description><category></category></item><item><title><![CDATA[BZOJ P1570[JSOI2008]Blue Mary的旅行]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70104707</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70104707</guid><author>mdnd1234</author><pubDate>Tue, 11 Apr 2017 19:11:41 +0800</pubDate><description><![CDATA[一开始想用费用流来着
但是这个费用流还要两条路的min？？
这很不兹糍
然后想了一下两条路，然后不能重合，看来要拆点啊，
然后想着拆点就想到可以直接按天数一天一天拓展点，直到满流这一天就是答案
代码过一会再发
clock: 19:11]]></description><category></category></item><item><title><![CDATA[BZOJ P3504[Cqoi2014]危桥]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70054174</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70054174</guid><author>mdnd1234</author><pubDate>Tue, 11 Apr 2017 15:32:56 +0800</pubDate><description><![CDATA[直接最大流，但是可能会a1流到b2这样怎么办
然后我就不会了
据网上说交换一下b1,b2再流一遍就可以了？？我不会证
#include
#include
#include
#include
#include
using namespace std;
const int T=51;
bool flag;
int n,a1,a2,an,b1,b2,bn,cnt,ans;
int h[53],q[]]></description><category></category></item><item><title><![CDATA[BZOJ P2756[SCOI2012]奇怪的游戏]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70051469</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70051469</guid><author>mdnd1234</author><pubDate>Tue, 11 Apr 2017 13:35:28 +0800</pubDate><description><![CDATA[#include#include
#include
#include
#include
#define inf (1LL<<50)
#define p(x,y) (x-1)*m+y
using namespace std;
const int xx[4]={0,0,1,-1};
const int yy[4]={1,-1,0,0};
long long s0,s1;
int c0,c1,test,]]></description><category></category></item><item><title><![CDATA[BZOJ P4590[Shoi2015]自动刷题机]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70036685</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70036685</guid><author>mdnd1234</author><pubDate>Mon, 10 Apr 2017 20:51:05 +0800</pubDate><description><![CDATA[因为考虑到问题的单调性
直接二分最大最小值然后模拟判断一下
#include
#include
#include
#include
#include
using namespace std;
long long n,m,a[100003];
long long l,r,ans1,ans2;  
long long calc(long long x){  
    long long ans=0]]></description><category></category></item><item><title><![CDATA[BZOJ P3158 千钧一发]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/70020698</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/70020698</guid><author>mdnd1234</author><pubDate>Mon, 10 Apr 2017 20:03:22 +0800</pubDate><description><![CDATA[题目中的条件有一个非常好的性质
就是奇数都满足第一条
(2a+1)^2+(2b+1)^2=4a^2+4a+1+4b^2+4b+1=2*(2a^2+2a+2b^2+2b+1)
因为有个2所以为了成为平方数，后面的数一定得能质因数分解出一个2，但是后面的数显然是奇数，所以不能分解2
然后偶数都能满足第二条
这很简单吧gcd(2a,2b)>=2
然后按照偶数奇数建一个二分图
一旦是不符合的]]></description><category></category></item><item><title><![CDATA[BZOJ P2661[BeiJing wc2012]连连看]]></title><link>https://blog.youkuaiyun.com/mdnd1234/article/details/69996752</link><guid>https://blog.youkuaiyun.com/mdnd1234/article/details/69996752</guid><author>mdnd1234</author><pubDate>Mon, 10 Apr 2017 19:02:27 +0800</pubDate><description><![CDATA[比较简单的网络流题目
每个数拆点，然后按条件连边然后跑最大费用最大流
但是为什么这样就会每两个点一一对应呢？
我也不知道]]></description><category></category></item></channel></rss>