<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yrleep的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yrleep</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yrleep]]></copyright><item><title><![CDATA[Numbers Line]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/83246311</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/83246311</guid><author>yrleep</author><pubDate>Sun, 21 Oct 2018 22:17:56 +0800</pubDate><description><![CDATA[Come to play the interesting and addicitive puzzle game!
Take adventure in the city, desert, farm with the farmer and grandson.

Be prepared to line digital blocks and magic blocks with challenging le...]]></description><category></category></item><item><title><![CDATA[Four In A Row]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/51524624</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/51524624</guid><author>yrleep</author><pubDate>Sat, 28 May 2016 13:56:36 +0800</pubDate><description><![CDATA[一款利用Game Center Turn Base 框架实现的经典游戏]]></description><category></category></item><item><title><![CDATA[hdu 4763 Theme Section kmp]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/17171541</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/17171541</guid><author>yrleep</author><pubDate>Fri, 06 Dec 2013 18:59:29 +0800</pubDate><description><![CDATA[这个next[i]表示的就是最长前后缀，那么头和尾的就不next就可以得出了
那么就剩下判断中间是否存在了，中间的只要不重叠的那部分存在一个next[j]大于的就可以了。
中间的部分是不断扩大的，那么就头尾不断next，中间不断更新新加入的节点即可。
#include 
#include 
#include 
using namespace std;
const int maxn=1e6+9]]></description><category></category></item><item><title><![CDATA[hdu 4052 Adding New Machine 扫描线求矩形面积并]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/17118961</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/17118961</guid><author>yrleep</author><pubDate>Wed, 04 Dec 2013 15:04:52 +0800</pubDate><description><![CDATA[这个每一个矩形都确定了一个不能放的矩形空间，那么就是可以转化成求矩形面积并了。
#include 
#include 
#include 
#include 
#include 
#define ll long long
#define midt (tr[t].l+tr[t].r>>1)
#define ls t<<1
#define rs t<<1|1
using namespace std;]]></description><category></category></item><item><title><![CDATA[hdu 3667 Transportation 费用流]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/17049409</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/17049409</guid><author>yrleep</author><pubDate>Sat, 30 Nov 2013 23:31:04 +0800</pubDate><description><![CDATA[很明显的费用流的题目，把一条边拆成5条即可。
#include 
#include 
#include 
using namespace std;
const int maxn=1e2+9;
int n,m,p;
int head[maxn],lon;
struct
{
    int next,to,c,w,from;
}e[222222];
void edgeini()
{
    mems]]></description><category></category></item><item><title><![CDATA[Codeforces Round #216 (Div. 2) D. Valera and Fools]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/17039863</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/17039863</guid><author>yrleep</author><pubDate>Sat, 30 Nov 2013 13:21:12 +0800</pubDate><description><![CDATA[这个题目很多人都是用记忆化搜索的办法来做的，确实这样比较不容易错并且好写。
不过我用了另外一种办法，枚举加判断，
判断dp[i][j]是否可行，首先计算前j-1个人死亡的最少回合数，然后再看看后i个人是否不存在神枪手，再判断j号人物是否具有杀伤力，然后再把之前的回合数加上杀死j到i的人的回合数，看看是否比k小，如果这些条件都满足，则这个状态可达。
然后剩下的问题就是怎么计算前j-1个人死亡的]]></description><category></category></item><item><title><![CDATA[hdu 4117 GRE Words 11年成都现场赛]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/17025193</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/17025193</guid><author>yrleep</author><pubDate>Fri, 29 Nov 2013 15:14:44 +0800</pubDate><description><![CDATA[离线建树，然后按顺序把值插入，每插入一个值的时候就按着fail算出该节点的最优解。
一个优化，那些值小于0的节点直接去掉。
#include 
#include 
#include 
#include 
using namespace std;
const int maxn=3e5+9,N=26,root=0,maxm=2e4+9;
int cas=0;
int lon;
struct
{]]></description><category></category></item><item><title><![CDATA[hdu 4114  dp]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16973517</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16973517</guid><author>yrleep</author><pubDate>Tue, 26 Nov 2013 22:15:11 +0800</pubDate><description><![CDATA[ans[i][j],i表示去过的景点和拿到的票的状态，j表示现在在哪个景点。
然后spfa即可
#include 
#include 
#include 
using namespace std;
const int maxn=59;
int n,m,p;
int cost[10][2];
int a[maxn][10],top[maxn];
int num[maxn];
int tt=0;
]]></description><category></category></item><item><title><![CDATA[hdu 4125 树状数组+kmp]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16970607</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16970607</guid><author>yrleep</author><pubDate>Tue, 26 Nov 2013 19:43:20 +0800</pubDate><description><![CDATA[这个建树的过程用了树状数组+二分找区间的做法，很麻烦。
#include 
#include 
#include 
#include 
#include 
using namespace std;
const int maxn=6e5+9;
int a[maxn];
char s[maxn<<1];
int top,tt=0,f[maxn];
char c[maxn];
int n;
int l]]></description><category></category></item><item><title><![CDATA[csdn 4090 GemAnd Prince]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16951459</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16951459</guid><author>yrleep</author><pubDate>Mon, 25 Nov 2013 21:15:11 +0800</pubDate><description><![CDATA[写了个最朴素的dfs
#include 
#include 
#include 
using namespace std;
int a[10][10],sum[10],ans;
int n,m,k;
int quex[111],quey[111],front,end;
bool chk(int t,int s,int use[10][10])
{
    int ret=0;
    int x]]></description><category></category></item><item><title><![CDATA[hdu 4085 斯坦纳树]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16947139</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16947139</guid><author>yrleep</author><pubDate>Mon, 25 Nov 2013 16:59:03 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
using namespace std;
const int maxm=11e2+9,maxn=10e1+9;
int dp[maxm][maxn],num[maxn],d[maxn][maxn];
int n,m,k;
bool visit[maxn],chk[maxm];
void getdp()
{
    memset(dp,50]]></description><category></category></item><item><title><![CDATA[hdu 4123 Bob’s Race 树形dp+单调队列]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16922763</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16922763</guid><author>yrleep</author><pubDate>Sun, 24 Nov 2013 18:25:33 +0800</pubDate><description><![CDATA[树形dp求树上最长距离，然后单调队列维护。
#include 
#include 
#include 
#include 
using namespace std;
const int maxn=5e4+9;
vector  > e[maxn];
int n,m;
int dist[maxn][2];

void dfs(int t,int from)
{
    for(vector  >::]]></description><category></category></item><item><title><![CDATA[hdu Holiday's Accommodation dfs]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16913069</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16913069</guid><author>yrleep</author><pubDate>Sun, 24 Nov 2013 02:39:45 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#define ll long long
#pragma comment(linker, "/STACK:1024000000,1024000000") 
using namespace std;
const int maxn=1e5+9;
vector  > e[maxn];
int n;
int son[maxn]]]></description><category></category></item><item><title><![CDATA[hdu 4115 Eliminate the Conflict]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16913015</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16913015</guid><author>yrleep</author><pubDate>Sun, 24 Nov 2013 02:05:48 +0800</pubDate><description><![CDATA[2sat题目，正确理解2sat即可。
#include 
#include 
#include 
using namespace std;
const int maxn=(1e4+9)*2;
int n,m;
int a[maxn][2];

int dfn[maxn],low[maxn],stack[maxn],instack[maxn],s[maxn],un[maxn];
int count]]></description><category></category></item><item><title><![CDATA[poj 1389]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16906643</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16906643</guid><author>yrleep</author><pubDate>Sat, 23 Nov 2013 20:59:15 +0800</pubDate><description><![CDATA[求矩形的面积并
#include 
#include 
#include 
#include 
using namespace std;
const int maxn=1101;
int ans;
struct
{
    int l,r,x;
    int y1,y2;
    bool ture;
    int count;
}tr[10000];

struct data
{
    ]]></description><category></category></item><item><title><![CDATA[hdu 4059 The Boss on Mars 容斥原理]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16906083</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16906083</guid><author>yrleep</author><pubDate>Sat, 23 Nov 2013 20:30:57 +0800</pubDate><description><![CDATA[容斥原理的题目，用容斥来做还是比较明显，关键是要去推那个4次方的公式。
然后注意公式里面要除以30，那么就先求%(mod*30)，然后再除以30再%mod。
#include 
#include 
#include 
#include 
#define ll long long
using namespace std;
const ll mod=1e9+7;
int a[1111],lon;
]]></description><category></category></item><item><title><![CDATA[hdu 4089 概率dp]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16902227</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16902227</guid><author>yrleep</author><pubDate>Sat, 23 Nov 2013 16:01:48 +0800</pubDate><description><![CDATA[带循环的概率dp
但是这个题目的问题是精度很难处理，为什么不特判p4就a不了，表示不能理解。
#include 
#include 
#include 
using namespace std;
const int maxn=2e3+9;
int n,m,k;
double p1,p2,p3,p4;
double dp[maxn][maxn];

void solve()
{
    mems]]></description><category></category></item><item><title><![CDATA[poj 2151 Check the difficulty of problems dp]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16883823</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16883823</guid><author>yrleep</author><pubDate>Fri, 22 Nov 2013 14:09:33 +0800</pubDate><description><![CDATA[概率dp的题目，不过我的做法可能比较不一样，先计算出每个人答对1~n-1,n~m道题目的概率。
然后dp[i][0] 表示前i个人，有一个人至少答对n道题，并且每个人至少一个题目的概率。
dp[i][1] 表示前i个人，每个人至少答对一道题目的概率。
状态转移就很明显了。
#include 
#include 
#include 
using namespace std;
const in]]></description><category></category></item><item><title><![CDATA[hdu 4468 spy kmp+dp]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16850647</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16850647</guid><author>yrleep</author><pubDate>Wed, 20 Nov 2013 21:34:38 +0800</pubDate><description><![CDATA[首先可以用递推的思想来考虑，如果已经求得了dp[i]的答案，怎么得到dp[i+1]的答案。这个dp值是不考虑最后一个字符需要完整的。
只需要判断所有以i+1个字符为结尾的串中有没有一个是现在的模式串的前缀，有的话证明dp[i]的值就是dp[i+1]的值。
否则这个i+1号字符及它之前的还未匹配的串就一定要加入到模式串中。
#include 
#include 
#include 
using]]></description><category></category></item><item><title><![CDATA[hdu 4704 费马小定理]]></title><link>https://blog.youkuaiyun.com/yrleep/article/details/16844123</link><guid>https://blog.youkuaiyun.com/yrleep/article/details/16844123</guid><author>yrleep</author><pubDate>Wed, 20 Nov 2013 14:42:37 +0800</pubDate><description><![CDATA[费马小定理+快速幂
费马小定理可以用来求解a的高次幂mod质数的值。前提是a与质数互质。
#include 
#include 
#include 
using namespace std;
const int maxn=1e6+9,mod=1e9+7;
char a[maxn],s[111]={0,'1','0','0','0','0','0','0','0','0','6'};

bool]]></description><category></category></item></channel></rss>