<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LOI_pingxing的博客]]></title><description><![CDATA[Are you enjoying the time of EVE?]]></description><link>https://blog.youkuaiyun.com/LOI_pingxing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LOI_pingxing]]></copyright><item><title><![CDATA[[模板]ST表]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78494149</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78494149</guid><author>LOI_pingxing</author><pubDate>Thu, 09 Nov 2017 21:14:09 +0800</pubDate><description><![CDATA[题目←可以O(1)的解决RMQ问题 
不过不支持修改 
基本基于DP，以最大值为例，st[i][j] = max(st[i][j - 1],st[i + (1 << j - 1)][j - 1]);#include<iostream>
#include<cstdio>
using namespace std;
const int MAXN = 200000 + 50;
int st[MAXN][30]]></description><category></category></item><item><title><![CDATA[[模板]倍增LCA]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78488827</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78488827</guid><author>LOI_pingxing</author><pubDate>Thu, 09 Nov 2017 13:48:04 +0800</pubDate><description><![CDATA[洛谷P1967用倍增法，fa[i][j]表示节点i向上 
2^j步所能到大的点 
minx[i][j]表示i向上2^j步所经过的最小边#include<iostream>
#include<cstdio>
#include<algorithm>
#define LL long long
using namespace std;
const int MAXN = 200000 + 50;
struct]]></description><category></category></item><item><title><![CDATA[[模板]线段树]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78487194</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78487194</guid><author>LOI_pingxing</author><pubDate>Thu, 09 Nov 2017 11:00:26 +0800</pubDate><description><![CDATA[codevs49271、注意代码是左闭右闭的线段树，mid在左区间内 
2、打权值线段树时注意线段树右端点大于最大值#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define L(w) w << 1
#define R(w) w << 1|1
#define INF 1061109567
type]]></description><category></category></item><item><title><![CDATA[[codevs1004]四子连棋]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78485154</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78485154</guid><author>LOI_pingxing</author><pubDate>Thu, 09 Nov 2017 08:13:40 +0800</pubDate><description><![CDATA[题目←没什么思维难度的搜索，但比较锻炼思路的清晰程度 
外加： 
1、x & (1 << j)，x第j位为1，得到的是(1 << j) 
2、’||’、’&&’在使用时，对下面的影响一定要想清楚#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
using namespace std;
const int M]]></description><category></category></item><item><title><![CDATA[[vijos1048]送给圣诞夜的贺卡]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78482942</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78482942</guid><author>LOI_pingxing</author><pubDate>Wed, 08 Nov 2017 20:36:31 +0800</pubDate><description><![CDATA[题目←不看数据范围一定想贪心系列….. 
暴搜就可以了？然而不行….TLE….. 
于是考虑减枝 
题目要求价值总和最大，就按大->小排序 
就从最大的选 
然而仅仅这样复杂度不会降…… 
需要配合后缀和食用 
当发现目前已选+后面待选的总和（即都选）依然比目前答案要小时，不搜 
因为已经按大小排过序了，搜到较大答案的时间靠前的可能性比较大 
达到减枝效果#include<iostream>
#in]]></description><category></category></item><item><title><![CDATA[[模板]高精度]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78472123</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78472123</guid><author>LOI_pingxing</author><pubDate>Tue, 07 Nov 2017 20:31:37 +0800</pubDate><description><![CDATA[copy from DQS…..题目： 
codevs1331 
codevs3115~3118Tips: 
1、为防爆栈加取地址符； 
2、len的及时更新求模数的话，在/最后返回a就可以了 
但直接返回会re，不知道为什么#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
typedef long l]]></description><category></category></item><item><title><![CDATA[[洛谷P2055]假期的宿舍]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78461877</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78461877</guid><author>LOI_pingxing</author><pubDate>Mon, 06 Nov 2017 20:59:11 +0800</pubDate><description><![CDATA[题目←存一波匈牙利板子 
check数组还是老老实实for一遍更新吧，回溯的时候更新容易出事//:-)
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define LL long long
using namespace std;
const int MAXN = 1000 + 50;
int n]]></description><category></category></item><item><title><![CDATA[[洛谷P1850]换教室  概率与期望]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78446452</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78446452</guid><author>LOI_pingxing</author><pubDate>Sat, 04 Nov 2017 21:58:49 +0800</pubDate><description><![CDATA[要分清哪些状态是独立的，哪些状态对期望有影响 
一开始傻傻的在通过和没通过之间取min…… 
事实上，在求期望的前提下，真正影响的决策是是否申请 
以及万万没想到Floyd打次了 
map[i][i] = 0才对发现当前时间段的状态仅仅与上一时间段的状态有关 
然后上一时间段的情况（未完，放学了）#include<iostream>
#include<cstdio>
#include<cstring]]></description><category></category></item><item><title><![CDATA[[题目总结][动态规划]  更新ing]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78445163</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78445163</guid><author>LOI_pingxing</author><pubDate>Sat, 04 Nov 2017 18:38:10 +0800</pubDate><description><![CDATA[待更新……
  动态规划是通过拆分问题，定义问题状态和状态之间的关系，使得问题能够以递推（或者说分治）的方式去解决。
以上摘自知乎。 
就停课以来做的题来看，除了那些根本不会的，要注意的大概有 
1、明确状态定义 
2、考虑初始状况 
3、注意端点状况 
4、时间复杂度，时间复杂度，时间复杂度vijos1232核电站问题 
也是洛谷的双塔问题 
orz  O(n^3)A掉此题的Frankcodevs]]></description><category></category></item><item><title><![CDATA[[codevs2488]绿豆蛙的归宿]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78441439</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78441439</guid><author>LOI_pingxing</author><pubDate>Sat, 04 Nov 2017 09:38:08 +0800</pubDate><description><![CDATA[题目←第一道期望和概率相关的题…… 
noip Day -6了才发现对于期望卵都不会……思路： 
求距终点距离的递推式： 
dis[f] = dis[t] + l[i].v 
加上期望 
E[f] = E[t] +l[i].v 
这是对于f只有t一条出边的情况 
多条出边时，设G为f所有出边的集合 
E[f]=∑e∈GE[e.t]+e.vout[f]E[f] = \sum_{e\in G}\frac]]></description><category></category></item><item><title><![CDATA[[洛谷P1315]观光公交]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78439786</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78439786</guid><author>LOI_pingxing</author><pubDate>Fri, 03 Nov 2017 21:15:32 +0800</pubDate><description><![CDATA[题目←模拟+贪心 
一开始看到10^5的数据，以为要klogn就敲了个线段树上去 
结果没考虑后效性，只过了3个点 
正解： 
一开始先处理出每一站的到站时间是对的，而随着修改到站时间的改变不一定满足前缀关系 
假设在某一站有人很晚才出发，那不管先前改变了多少后面的到站时间都是不变的 
综上 
还需要维护修改一段距离时最远能影响到的点（递推标签的由来） 
设i修改i后的线段最远影响到的点为G[i]]]></description><category></category></item><item><title><![CDATA[[洛谷P1313]计算系数]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78437058</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78437058</guid><author>LOI_pingxing</author><pubDate>Fri, 03 Nov 2017 16:38:50 +0800</pubDate><description><![CDATA[题目←在wwq大佬博客发现的，将数论知识点总结的很好的题 
也可以用杨辉三角求组合数，不过就跟着大佬练扩欧吧……#include<iostream>
#include<cstdio>
#include<algorithm>
#define LL long long
#define P 10007
using namespace std;
const int MAXN = 20000 + 50;
LL]]></description><category></category></item><item><title><![CDATA[[codevs1213]解的个数   二分 + exgcd]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78428877</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78428877</guid><author>LOI_pingxing</author><pubDate>Thu, 02 Nov 2017 20:15:27 +0800</pubDate><description><![CDATA[题目←扩欧，求不定方程解的个数 
我们已经知道通解x0 = x +- (b/gcd(a,b))*t，那只要知道有多少个t使x在题目给定的范围中就行了 
但还有y 
怎么办？求交集！ 
分别二分确定在x取值范围内合法的t的范围和在y取值范围内合法的t的范围 
然后交一下 
值得一提的是，对于同一个t，由exgcd求出的x，y而找到的一组通解为 
x + (b/gcd(a,b)) * t，y - (a/]]></description><category></category></item><item><title><![CDATA[[模板][洛谷P1516]青蛙的约会(exgcd)]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78427214</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78427214</guid><author>LOI_pingxing</author><pubDate>Thu, 02 Nov 2017 17:24:00 +0800</pubDate><description><![CDATA[题目←设k步后相遇 
题目实际要求X+m∗k≡Y+n∗k(modL)X + m*k\equiv Y + n*k(\mod L) 
不写成同余方程的话，就是X+m∗k−q∗L=Y+n∗k−p∗LX + m*k - q*L = Y + n*k - p*L 
移项(m−n)∗k+L∗(p−q)=Y−X(m - n)*k + L*(p - q) = Y - X 
m - n –>a，L –>b，Y - X]]></description><category></category></item><item><title><![CDATA[[模板][洛谷P1835]素数密度（区间筛）]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78421757</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78421757</guid><author>LOI_pingxing</author><pubDate>Thu, 02 Nov 2017 10:10:55 +0800</pubDate><description><![CDATA[题目←每个数n的最小质因子一定不超过n√\sqrt{n} 
预处理出m−−√\sqrt{m}内的素数表，删去每个素数在n-m区间内所有倍数，剩下的一定全为素数 
del数组采用下标偏移，i实际表示数n+i是否已被删去 
del数组大小为0~m-n#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#defin]]></description><category></category></item><item><title><![CDATA[[模板][洛谷P3383]线性筛素数]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78420725</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78420725</guid><author>LOI_pingxing</author><pubDate>Thu, 02 Nov 2017 08:38:06 +0800</pubDate><description><![CDATA[题目←#include<iostream>
#include<cstdio>
#define LL long long
int n,m;
int prime[10000010],cnt;
bool sh[10000010];
void solve(int n){
    for(int i = 2;i <= n;i ++){
        if(!sh[i])prime[++cnt] = i;]]></description><category></category></item><item><title><![CDATA[[洛谷P2898][USACO08JAN]haybale猜测Haybale Guessing]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78417033</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78417033</guid><author>LOI_pingxing</author><pubDate>Wed, 01 Nov 2017 18:21:00 +0800</pubDate><description><![CDATA[题目←题意：
  总共有n个互不相同的正整数，LYK每次猜一段区间的最小值。形如[li,ri]这段区间的数字的最小值一定等于xi。 
      我们总能构造出一种方案使得LYK满意。直到…… LYK自己猜的就是矛盾的！ 
      例如LYK猜[1,3]的最小值是2，[1,4]的最小值是3，这显然就是矛盾的。 
      你需要告诉LYK，它第几次猜数字开始就已经矛盾了。
10^5~10^6数]]></description><category></category></item><item><title><![CDATA[[洛谷P1658]购物]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78401104</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78401104</guid><author>LOI_pingxing</author><pubDate>Tue, 31 Oct 2017 11:02:16 +0800</pubDate><description><![CDATA[题目←因为看方法大概跟题解里的不太一样，就另写了个题解丢上去了 
这里就不再写了……#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int x,n,v[10010],cnt;
int dp[10010],ans = 10010;
bool exist[1001]]></description><category></category></item><item><title><![CDATA[[洛谷P2375]动物园]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78387195</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78387195</guid><author>LOI_pingxing</author><pubDate>Sun, 29 Oct 2017 19:27:03 +0800</pubDate><description><![CDATA[题目←很容易发现，题目要求的实际是某一位置的next[i]在小于等于 i/2时的回溯次数 
但是暴力处理每一位的next[i]会n^2…… 
有一点是我没有发现的，也是对next数组理解不足所致： 
对于长度确定的next[i]，它向前匹配的次数是一定的，因为next失配时也一直是从前缀中向前查找…… 
所以可以记录deep[i] -> next长度为i时向前匹配的次数 
那在找第i位的答案时只需要]]></description><category></category></item><item><title><![CDATA[[模板]kmp[poj3461][codevs5757]]]></title><link>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78387033</link><guid>https://blog.youkuaiyun.com/LOI_pingxing/article/details/78387033</guid><author>LOI_pingxing</author><pubDate>Sun, 29 Oct 2017 18:52:47 +0800</pubDate><description><![CDATA[codevs5757#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int MAXN = 1000000 + 50;
char s1[MAXN],s2[MAXN];
int next[MAXN];
int n,m,ans;
int main(){]]></description><category></category></item></channel></rss>