<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[leolin_的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/leolin_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; leolin_]]></copyright><item><title><![CDATA[java]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/8019171</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/8019171</guid><author>leolin_</author><pubDate>Wed, 26 Sep 2012 00:04:30 +0800</pubDate><description><![CDATA[/*
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
 
 //package test;
 
 import java.io.BufferedInputStream;
 import java.util.Scanner;
 
 /**
  *]]></description><category></category></item><item><title><![CDATA[操作系统页面置换模拟系统]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7632811</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7632811</guid><author>leolin_</author><pubDate>Tue, 05 Jun 2012 01:22:19 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

int address[322];//指令地址
int]]></description><category></category></item><item><title><![CDATA[【后缀数组与统计】]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7444167</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7444167</guid><author>leolin_</author><pubDate>Tue, 10 Apr 2012 10:18:50 +0800</pubDate><description><![CDATA[后缀数组向来很强大，其中它的统计功能是一方面。
下面以两道题目为例说明一下如何使用强大的后缀数组进行统计
【例1】POJ 3415http://poj.org/problem?id=3415
这题是求两串中长度>=K的子串的个数(可重复)
做法：首先最正路的做法就是用后缀数组把两个串链接起来，中间加个没出现过的字符，对新串求heigh数组，我们先对遇到A的可以对前面与B的lcp进行相加，同]]></description><category></category></item><item><title><![CDATA[【单调栈】POJ 3250]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7441022</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7441022</guid><author>leolin_</author><pubDate>Mon, 09 Apr 2012 15:01:19 +0800</pubDate><description><![CDATA[第一次听说有单调栈这个东西，其实单调栈跟单调队列差不多，栈中的元素也有单调性，就拿这题来说，我们需要维护一个严格单调递减的栈
sample：
6
10 3 7 4 12 2
栈中的变化如下：
10
10 3
10 7
10 7 4
12
12 2
stack s;
int main(){
    int n;
    while(scanf("%d",&n) !=-1){]]></description><category></category></item><item><title><![CDATA[【稳定婚姻问题】]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7434852</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7434852</guid><author>leolin_</author><pubDate>Sat, 07 Apr 2012 12:26:33 +0800</pubDate><description><![CDATA[稳定婚姻是组合数学里面的一个问题。
问题大概是这样：有一个社团里有n个女生和n个男生，每位女生按照她的偏爱程度将男生排序，同时每位男生也按照自己的偏爱程度将女生排序。然后将这n个女生和n个男生配成完备婚姻。
如果存在两位女生A和B，两位男生a和b，使得A和a结婚，B和b结婚，但是A更偏爱b而不是a，b更偏爱A而不是B，则这个婚姻就是不稳定的，A和b可能背着别人相伴而走，因为他俩都认为，与当前配]]></description><category></category></item><item><title><![CDATA[【Gray格雷码】]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7430178</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7430178</guid><author>leolin_</author><pubDate>Thu, 05 Apr 2012 21:42:29 +0800</pubDate><description><![CDATA[Gray码（转自M67大牛）
Gray码
     假如我有4个潜在的GF，我需要决定最终到底和谁在一起。一个简单的办法就是，依次和每个MM交往一段时间，最后选择给我带来的“满意度”最大的MM。但看了dd牛的理论后，事情开始变得复杂了：我可以选择和多个MM在一起。这样，需要考核的状态变成了2^4=16种（当然包括0000这一状态，因为我有可能是玻璃）。现在的问题就是，我应该用什么顺序来遍历这1]]></description><category></category></item><item><title><![CDATA[【威佐夫博奕】POJ 1067]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7429706</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7429706</guid><author>leolin_</author><pubDate>Thu, 05 Apr 2012 19:22:26 +0800</pubDate><description><![CDATA[威佐夫博奕......
int main(){
    int a,b,k,tmp;
    while(scanf("%d%d",&a,&b) !=-1){
        if(a>b){
            swap(a,b);
        }
        k = b-a;
        tmp = floor(k*(1.0+sqrt(5.0))/2.0);]]></description><category></category></item><item><title><![CDATA[3种常见博弈]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7428628</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7428628</guid><author>leolin_</author><pubDate>Thu, 05 Apr 2012 15:07:53 +0800</pubDate><description><![CDATA[（一）巴什博奕（Bash Game）：只有一堆n个物品，两个人轮流从这堆物品中取物，规定每次至少取一个，最多取m个。最后取光者得胜。 

显然，如果n=m+1，那么由于一次最多只能取m个，所以，无论先取者拿走多少个，后取者都能够一次拿走剩余的物品，后者取胜。因此我们发现了如何取胜的法则：如果n=（m+1）r+s，（r为任意自然数，s≤m),那么先取者要拿走s个物品，如果后取者拿走k（≤m)个，]]></description><category></category></item><item><title><![CDATA[【表达式求值】HDU 4192]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7422842</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7422842</guid><author>leolin_</author><pubDate>Tue, 03 Apr 2012 01:06:49 +0800</pubDate><description><![CDATA[比较水的算是表达式求值，枚举每个变量即可............表达式求值的时候有个地方漏了i--，贡献1wa

#define N 10005
char str[N];
int num[N];
char op[N];
int v[11];
int id[11];
char cmp(char a,char b){
    if(a=='+'){
        if(b=='+' || b==]]></description><category></category></item><item><title><![CDATA[【第K排列问题】]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7419014</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7419014</guid><author>leolin_</author><pubDate>Sun, 01 Apr 2012 13:32:48 +0800</pubDate><description><![CDATA[Cow Line



Description

The N (1 <= N <= 20) cows conveniently numbered 1...N are playing yet another one of their crazy games with Farmer John. The cows will arrange themselves in a line and a]]></description><category></category></item><item><title><![CDATA[【dp求期望值】POJ 3756]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7412932</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7412932</guid><author>leolin_</author><pubDate>Fri, 30 Mar 2012 20:31:05 +0800</pubDate><description><![CDATA[dp求期望
double dp[1024][111];//dp[i][j]第i round到j格的概率
bool stop[111];
int go[111];
int n;
int main(){
    while(scanf("%d",&n) !=-1){
        int i,j;
        int m;
        memset(go,0,sizeof(go));]]></description><category></category></item><item><title><![CDATA[【鸽笼原理】ZOJ 2955]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7410931</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7410931</guid><author>leolin_</author><pubDate>Fri, 30 Mar 2012 13:09:18 +0800</pubDate><description><![CDATA[用到了鸽笼原理的结论：设可选的 N 个数从小到大依次为 a(1)、 a(2) … a(N)，则在最优的取法中，小于 a(N) 的数不会多于 a(N) 个。

#define N 10005
int dp[N];
int w[111];
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int n,c;]]></description><category></category></item><item><title><![CDATA[【计算几何——直线相交】POJ 1039]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7408972</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7408972</guid><author>leolin_</author><pubDate>Thu, 29 Mar 2012 21:22:36 +0800</pubDate><description><![CDATA[黑书例题
#define eps 1e-9
#define pi acos(-1.0)

struct Point{
    double x,y;
};
int dbl_cmp(double d){
    if (fabs(d)<eps)
        return 0;
    return d>0?1:-1;
}
double det(double x1,double y1,doubl]]></description><category></category></item><item><title><![CDATA[【O(nlgn)判定点在凸包内】Codeforces Round #113 (Div. 2) B]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7405462</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7405462</guid><author>leolin_</author><pubDate>Thu, 29 Mar 2012 02:00:09 +0800</pubDate><description><![CDATA[思路参考了这个bloghttp://hi.baidu.com/aekdycoin/blog/item/7abf85026f0d7e85d43f7cfe.html
复杂度是O(nlgn)

#define N 100005
struct node{
    double x,y;
}a[100005];
double cross(node a,node b,node c){//>0，ab在ac]]></description><category></category></item><item><title><![CDATA[【定径圆覆盖最多点模板】]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7389189</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7389189</guid><author>leolin_</author><pubDate>Sat, 24 Mar 2012 01:27:17 +0800</pubDate><description><![CDATA[#define eps 1e-9
#define pi acos(-1.0)
#define N 222
struct point{
    double x,y;
}p[N];
struct alpha{
    double v;
    bool flag;
    bool friend operator <(const alpha &a,const alpha &b){//排序专用偏序关]]></description><category></category></item><item><title><![CDATA[【Havel定理判断可图化】POJ 1659]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7374971</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7374971</guid><author>leolin_</author><pubDate>Tue, 20 Mar 2012 18:26:30 +0800</pubDate><description><![CDATA[这里首先复习一下什么叫“简单图”（其实是自己忘记了==！）.......
一个图如果不含重边或环则称为简单图。
1 、Havel 定理：把度排序，从大到小，类似拓扑排序，只是把过程反过来而已。
具体过程：贪心的方法是每次把顶点按度大小从大到小排序，取出度最大的点 Vi，依次和度较大 的那些顶点 Vj 连接，同时减去 Vj 的度。连接完之后就不再考虑 Vi 了，剩下的点再次排 序然后找度最大的]]></description><category></category></item><item><title><![CDATA[【作业调度—贪心】POJ 2751]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7362601</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7362601</guid><author>leolin_</author><pubDate>Fri, 16 Mar 2012 20:29:18 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=2751

贪心策略见cmp函数，简单来说就是使得s1的作业及你快完成，以便尽快转到s2，注意s1没有空闲时间，而s2可能有空闲时间

#define N 10005
struct node{
    int s1,s2;
}p[N];
/*
bool cmp(node a,node b){
    if(a.s1!=b.s1)retur]]></description><category></category></item><item><title><![CDATA[【tarjan求双连通分量+染色判二分图】POJ 2942]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7355359</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7355359</guid><author>leolin_</author><pubDate>Thu, 15 Mar 2012 02:08:31 +0800</pubDate><description><![CDATA[这题debug的好郁闷啊！！！先是染色有问题，然后就是各种小错误....
判奇圈可以用二分图标准，因为奇圈肯定不是二分图，之前还要分离各双连通分量.......染色法判二分图一定要先对分量里每一个点都染一次色再枚举任意两个相邻的点看是否有同色，就是因为这里wa了n次！！！
#define N 1005
vector v[N];
vector lin[N];
int dfn[N],low[N];]]></description><category></category></item><item><title><![CDATA[【最大流】HDU 3572]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7354402</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7354402</guid><author>leolin_</author><pubDate>Wed, 14 Mar 2012 20:11:34 +0800</pubDate><description><![CDATA[http://acm.hdu.edu.cn/showproblem.php?pid=3572
题意：给出n个任务+m台机器，还有一个任务处理时限+开始时间+结束时间，一个时刻里一台机器只能处理一个任务，但是一个任务可以在不同机器处理，问能否处理完所有任务？
方法：最大流。这个题的建图算是经典，因为限定每个时刻每台机器只能处理一个任务，所以可以把时间点分配给各个合法的机器...具体是先设定一个超]]></description><category></category></item><item><title><![CDATA[【弱连通分量】POJ 2762]]></title><link>https://blog.youkuaiyun.com/leolin_/article/details/7354213</link><guid>https://blog.youkuaiyun.com/leolin_/article/details/7354213</guid><author>leolin_</author><pubDate>Wed, 14 Mar 2012 19:08:40 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=2762
题目给出n个点m条单向边，问是否存在取任意两点x,y，使得可以x->y或y->x，其实就是求弱连通分量....
方法：缩点+拓扑。因为环内各点肯定可以任意到达，缩完点后就可能变成树或森林，当树是一条链的时候才存在弱连通分量，拓扑一下就ok...
一开始看不到The cave has n rooms, andone-way
cor]]></description><category></category></item></channel></rss>