<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wen_xp的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wen_xp</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wen_xp]]></copyright><item><title><![CDATA[欢迎使用优快云-markdown编辑器]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/72851121</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/72851121</guid><author>wen_xp</author><pubDate>Sat, 03 Jun 2017 11:38:44 +0800</pubDate><description><![CDATA[⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪I˙AI˙BI˙C=I˙aKV=IafKVe−j30∘=I˙bKV=IbfKVe−j90∘=−(I˙A+I˙B)\begin{equation*}
\left\{
\begin{aligned}
\dot{I}_A &= \frac{\dot{I}_a}{K_V}=\frac{I_{af}}{K_V}e{-j30^{\circ}} \\
\dot{I}_B &=\f]]></description><category></category></item><item><title><![CDATA[Codeforces 421D]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53982385</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53982385</guid><author>wen_xp</author><pubDate>Mon, 02 Jan 2017 21:34:10 +0800</pubDate><description><![CDATA[假如选择二元组(a,b)那么怎么计算有多少人同意哪？容斥一次就好了 
用同意a的人数+同意b的人数-同时同意(a,b)的人数 
然后对于这题，所有的二元组分为两种情况 
1.存在同时同意二元组里面的两个  
2.不存在 即 同时同意(a,b)的人数=0]]></description><category></category></item><item><title><![CDATA[Codeforces 83C]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53982105</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53982105</guid><author>wen_xp</author><pubDate>Mon, 02 Jan 2017 20:47:18 +0800</pubDate><description><![CDATA[求字典序最小的最短路 
先求最短路，因为边权都为1，所以直接沿着最短路边广搜出一条 
字典序最小的就好了#include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
typedef __int64 LL;
const int N=51;cha]]></description><category></category></item><item><title><![CDATA[Codeforces 160E]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53981823</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53981823</guid><author>wen_xp</author><pubDate>Mon, 02 Jan 2017 20:11:01 +0800</pubDate><description><![CDATA[给定n个三元组(si,fi,ti) 
有m个询问也是三元组的形式(li,ri,bi) 
对于每个询问，求满足sj<=li,ri<=fj and bi <=tj 的最小的tj 
思路就是 
按li一维排序，求满足ri<=fj and bi<=tj 的最小的tj 
然后就可以二分tj 判断 ri<=fj  
然后就是线段树怼一发#include<cstdio>
#include<cstring>
#in]]></description><category></category></item><item><title><![CDATA[Codeforces 268D]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53870934</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53870934</guid><author>wen_xp</author><pubDate>Sun, 25 Dec 2016 17:33:06 +0800</pubDate><description><![CDATA[有一根柱子，每个点上可以插有且仅有一根棍子，棍子的方向有四种。 
初始，可以选择任意方向往上爬，然后就只能按照原来的方向不停的往上爬。。。 
dp[i][a1][a2][a3][a4]表示当前已经插前i跟棍子，第i跟棍子能否到达a1,其他三个方向的棍子与第i跟棍子的距离分别为a2,a3,a4#include<cstdio>
#include<iostream>
#include<cstring>
u]]></description><category></category></item><item><title><![CDATA[Codeforces 316D2]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53870847</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53870847</guid><author>wen_xp</author><pubDate>Sun, 25 Dec 2016 17:17:36 +0800</pubDate><description><![CDATA[有n个人，第i个人初始拥有第i号球， 
两两之间可以交换球， 
第一种人最多能交换1次 
第二种人最多能交换2次， 
dp[i][j]表示第一种人i个，第二种人j个的情况总数 
不妨设第一种人1~i，第二种人i+1~i+j，我们只关注第一个人手中的球 
1.手中的球为1   dp[i-1][j] 
2.手中的球为i+1~i+j j*dp[i][j-1] 
3.手中的球为2~i 枚举这个球在传递过程中]]></description><category></category></item><item><title><![CDATA[Codeforces 283E]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53869260</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53869260</guid><author>wen_xp</author><pubDate>Sun, 25 Dec 2016 12:38:54 +0800</pubDate><description><![CDATA[不合法的三元组情况一定是这样的， 
存在一个项，比其他两个都大， 
所以求出每个数比他小的有多少个num[i]，总的不合法的就是 
∑ni=1C(num[i],2)\sum_{i=1}^n C(num[i],2) 
总共 C(n,3)种情况，减一下就好了 
假如要求num[i]，把和i有关的区间修改，线段树操作一下， 
然后统计 
原本比它小的总共修改偶数次 
原本比它大的总共修改奇数次， 
就是n]]></description><category></category></item><item><title><![CDATA[Codeforces 358E]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53868869</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53868869</guid><author>wen_xp</author><pubDate>Sun, 25 Dec 2016 11:51:33 +0800</pubDate><description><![CDATA[真的不会做。。。 
别人的代码没怎么看懂。。。#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <queue>
#include <cmath>
#include <stack>
#include <map>#pragma comment(]]></description><category></category></item><item><title><![CDATA[Codeforces 120I]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53868766</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53868766</guid><author>wen_xp</author><pubDate>Sun, 25 Dec 2016 11:23:29 +0800</pubDate><description><![CDATA[从后往前枚举新串与原串第一个大的位置， 
然后后面的就可以随便选了，然后我们贪心保存后面能得到的最大值，直到最大值大于原串， 
然后递归回去求字典序最小#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int N=2e5+100;
int cc[10]={119,36,93,109,46,]]></description><category></category></item><item><title><![CDATA[Codeforces 431E]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53862952</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53862952</guid><author>wen_xp</author><pubDate>Sat, 24 Dec 2016 22:08:28 +0800</pubDate><description><![CDATA[1.假如没有修改，直接排序， 
然后二分答案，然后找到比答案小的最大的位置，然后求前缀和怼怼 
2.有了修改，离散化权值，建线段树，剩下的一样#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e5+10;
typedef __int64]]></description><category></category></item><item><title><![CDATA[Codeforces 204D]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53862682</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53862682</guid><author>wen_xp</author><pubDate>Sat, 24 Dec 2016 21:32:06 +0800</pubDate><description><![CDATA[dp[i]表示前i个字母里面一定有连续k个’B’的情况总数 
dp1[i]表示前i个字母里面只有第i号位置出现有连续k个’B’情况总数 
然后答案的话就是直接枚举第一次出现连续k个’B’的位置， 
然后情况总数*后面一定出现连续k个’W’情况总数#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
con]]></description><category></category></item><item><title><![CDATA[Codeforces 452F]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53861045</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53861045</guid><author>wen_xp</author><pubDate>Sat, 24 Dec 2016 17:17:38 +0800</pubDate><description><![CDATA[哈希学到不好。。。 
假如，a+c=2*b 
对于比b小的数左高位右低位求hash 
对于比b小的数低高位右高位求hash 
当两个hash值完全一样就gg掉#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <set>
#include <m]]></description><category></category></item><item><title><![CDATA[Codeforces 117D]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53859863</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53859863</guid><author>wen_xp</author><pubDate>Sat, 24 Dec 2016 15:42:31 +0800</pubDate><description><![CDATA[不停的分治下去就好了， 
更容易想到的是 
求出(1,r,u,v)-(1,l-1,u,v)#include <cstdio>
typedef long long LL;
int Mod;
LL u,v;int calc(LL a,LL d,LL n,LL l,LL r){
    if (v<a || u>a+d*(n-1)) return 0;
    if (l==1 && r==n){]]></description><category></category></item><item><title><![CDATA[Codeforces 176E]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53858006</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53858006</guid><author>wen_xp</author><pubDate>Sat, 24 Dec 2016 12:23:06 +0800</pubDate><description><![CDATA[树链剖分 
增加一个或删除一个点 
1.如果有其他路径经过它，它就对答案没有影响 
2.其他情况就各种找lca 
反正我已经看不懂我的代码了，就酱#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
typedef __int64 LL;
const int N=1e5+100;
const int IN]]></description><category></category></item><item><title><![CDATA[Codeforces 30D]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53857933</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53857933</guid><author>wen_xp</author><pubDate>Sat, 24 Dec 2016 12:12:45 +0800</pubDate><description><![CDATA[题意从第k个点出发遍历所有的n+1个点，可以再任一点结束，的最短路#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 100100
using namespace std;
int n,k;
double newtag;
double xx[N]]></description><category></category></item><item><title><![CDATA[Codeforces 68C]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53857447</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53857447</guid><author>wen_xp</author><pubDate>Sat, 24 Dec 2016 11:26:36 +0800</pubDate><description><![CDATA[题意：给定6个点的有上下界的网络求最大费用最小流 
复杂度不可控#include<cstdio>
int n,ans,l[10][10],r[10][10],f[10],c[10][10];
//                                 Last Change:  2011-03-29 11:15:29
void dfs(int s,int t,int fl,int cost]]></description><category></category></item><item><title><![CDATA[Codeforces 433E]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53857169</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53857169</guid><author>wen_xp</author><pubDate>Sat, 24 Dec 2016 10:56:54 +0800</pubDate><description><![CDATA[自动机上的数位dp 
dp[i][j][k] 表示将要考虑到第i个位置，目前走到自动机第j号节点，目前总的价值k，的情况总数////HDU 2457
/////f[u]=r,r������u�ĺ�׺��
/////last[u]=r,r������u�ĺ�׺�У�������һ������
////ÿ����һ����ĸ��״̬ת��һ��
#include<cstdio>
#include<ios]]></description><category></category></item><item><title><![CDATA[Codeforces 359E]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53857083</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53857083</guid><author>wen_xp</author><pubDate>Sat, 24 Dec 2016 10:46:28 +0800</pubDate><description><![CDATA[题意:从一个点出发，可以上下左右移动，移动的前提是，方向上至少有一个灯是亮的，每次到达一个位置，可以把灯点亮或者关掉，输出一组解能把所有的等都关掉，并且回到起点。 
直接搜索一遍就好了，#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
using namespa]]></description><category></category></item><item><title><![CDATA[Codeforces 140F]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53844123</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53844123</guid><author>wen_xp</author><pubDate>Fri, 23 Dec 2016 21:34:43 +0800</pubDate><description><![CDATA[对点排序后，总共有k次魔法可以使用 
枚举最左边没有用魔法直接在给定点中找到对称点的 
枚举最右边没有用魔法直接在给定点中找到对称点的 
枚举量分别不会超过k， 
然后他们两个一定是互相匹配的，#include<cstdio>
#include<set>
#include<algorithm>
using namespace std;
#define X   first
#define Y   se]]></description><category></category></item><item><title><![CDATA[Codeforces 260E]]></title><link>https://blog.youkuaiyun.com/wen_xp/article/details/53841861</link><guid>https://blog.youkuaiyun.com/wen_xp/article/details/53841861</guid><author>wen_xp</author><pubDate>Fri, 23 Dec 2016 17:05:08 +0800</pubDate><description><![CDATA[首先9！枚举儿子的位置， 
1.画出水平的两根线，把平面分成三块，每块的个数是个固定值， 
2.画出竖直的两根线，把平面分成三块，每块的个数是个固定值， 
3.四根线合起来，计数 
也不知道这个代码是复制谁的。。。#include<iostream>
#include<cstdio>
#include<map>
#include<cstring>
#include<cmath>
#include<v]]></description><category></category></item></channel></rss>