又是虚脱的一天啊QAQ,早上习惯性迟到,九点多到学校开始码题,六道题看下来花了将近一个小时,主要纠结于第二题和第六题。到了十点,没再深入思考,开始码题..

一直到十一点半,写了两道题。然后吃完饭后中午把剩下会的两道题水了水就开始去主攻第六题,第二题感觉不是很有思路。

然后就从三点想到四点,中间考量了很多算法好像都不行,但我能确定这是一道最短路的计数问题,相关的题目之前做过一道,但是面对这道题还不是很有想法。无奈,最后码了暴力走人。

今天没精力再改题了,一会还要补文化课的作业,具体的题解和小结什么的后天补上。

================================================

正经题解

改了一上午..终于改完了!

coins

这道题真的很水..但是整个机房只有神犇chadA掉了..其实就是正向边和反向边建个图,然后扫一遍就行了..

主要死于不能熟悉的运用DAG的性质,中间应该避免从一个点出发到另一个点存在多个路径导致方案数的重复计算。

//Graph T1 coins
//by Cydiater
//2016.10.2
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <queue>
#include <map>
#include <ctime>
#include <cmath>
#include <string>
#include <iomanip>
#include <algorithm>
#include <cstring>
using namespace std;
#define ll long long
#define up(i,j,n)        for(int i=j;i<=n;i++)
#define down(i,j,n)        for(int i=j;i>=n;i--)
#define FILE "coins"
const int MAXN=2e6+5;
const int oo=0x3f3f3f3f;
inline int read(){
    char ch=getchar();int x=0,f=1;
    while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
int LINK[MAXN],len=0,N,M,dfn[MAXN],low[MAXN],dfs_clock=0,group[MAXN],group_num=0,stack[MAXN],top=0,siz1[MAXN],siz0[MAXN],maxx=0,id=1;
bool vis[MAXN];
struct edge{
    int y,next,v;
}e[MAXN];
namespace solution{
    inline void insert(int x,int y,int v){e[++len].next=LINK[x];LINK[x]=len;e[len].y=y;e[len].v=v;}
    void init(){
        N=read();M=read();
        up(i,1,M){
            int x=read(),y=read();
            if(x==y){
                puts("IMPOSSIBLE");
                exit(0);
            }
            insert(x,y,1);
            insert(y,x,0);
        }
    }
    void tarjan(int node){
        dfn[node]=low[node]=++dfs_clock;
        stack[++top]=node;vis[node]=1;
        for(int i=LINK[node];i;i=e[i].next)if(e[i].v>0){
            if(!dfn[e[i].y]){
                tarjan(e[i].y);
                low[node]=min(low[node],low[e[i].y]);
            }else if(vis[e[i].y]) low[node]=min(low[node],dfn[e[i].y]);
        }
        if(dfn[node]==low[node]){
            int tmp;group_num++;
            do{
                tmp=stack[top--];
                vis[tmp]=0;
                group[tmp]=group_num;
            }while(tmp!=node);
        }
    }
    bool pre_judge(){
        memset(vis,0,sizeof(vis));
        up(i,1,N)if(!dfn[i])tarjan(i);
        memset(vis,0,sizeof(vis));
        up(i,1,N)    if(vis[group[i]])                return 0;
        else                                         vis[group[i]]=1;
        return 1;
    }
    void dfs1(int node){
        vis[node]=1;siz1[node]=1;
        for(int i=LINK[node];i;i=e[i].next)if(e[i].v>0&&!vis[e[i].y]){
            dfs1(e[i].y);
            siz1[node]+=siz1[e[i].y];
        }
    }
    void dfs0(int node){
        vis[node]=1;siz0[node]=1;
        for(int i=LINK[node];i;i=e[i].next)if(e[i].v<=0&&!vis[e[i].y]){
            dfs0(e[i].y);
            siz0[node]+=siz0[e[i].y];
        }
    }
    int slove(){
        if(!pre_judge())return -1;
        up(i,1,N){
            memset(vis,0,sizeof(vis));
            dfs1(i);
            memset(vis,0,sizeof(vis));
            dfs0(i);
            if(siz1[i]+siz0[i]-2>maxx){
                maxx=siz1[i]+siz0[i]-2;
                id=i;
            }
        }
        return id;
    }
}
int main(){
    freopen(FILE".in","r",stdin);
    freopen(FILE".out","w",stdout);
    using namespace solution;
    init();
    int ans=slove();
    if(ans==-1)puts("IMPOSSIBLE");
    else       cout<<ans<<endl;
    return 0;
}

maf

也是一道大水题..或者说是智商题,这道题是贪心,考场上想出了方案,但是没有想到可以用Topsort来维护相关性质,详细点讲吧。

1.被杀死的人最多即活着的人最少

活着的人最少,那么显然最后形成的图中满足任意两点之间不存在连边且点数最少。根据题目性质,每个点的出度都是1,所有这个图一定是由简单链,简单环,简单链套简单环组成的。

对于简单链,简单环,简单链套简单环,显然最少的可以活着的人都是1。所以只要统计出有多少个上述图就可以了。对于简单链和简单链套简单环,只需要统计出有多少个入度为0的点就行了。剩下的统计有多少个环也不必多说。

2.被杀死的人最少即活着的人最多

活着的人最多的情况相对来说是比较麻烦的。首先,让所有入度为0的点入队。然后这个点指向的点肯定die掉了,然后被杀的点所指向的点就少了一次被杀掉的机会。如果这时候这个点的入度恰好为0.那么这个也入队。重复几个。最后剩下的一定是环或者点,对于每个换,通过显然法可以证明每个环最多的能活下来的点为$\lfloor \frac{size}{2} \rfloor$,然后累加即可。

//NOIp Graph maf
//by Cydiater
//2016.10.4
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <queue>
#include <map>
#include <ctime>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
#define ll long long
#define up(i,j,n)        for(int i=j;i<=n;i++)
#define down(i,j,n)        for(int i=j;i>=n;i--)
#define FILE "maf"
const int MAXN=1e6+5;
const int oo=0x3f3f3f3f;
inline int read(){
    char ch=getchar();int x=0,f=1;
    while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
int N,kill[MAXN],indu[MAXN],q[MAXN<<2],head,tail,ans1,ans2;
bool die[MAXN],undie[MAXN];
namespace solution{
    void init(){
        N=read();
        up(i,1,N)indu[kill[i]=read()]++;
    }
    void slove(){
        memset(die,0,sizeof(die));
        memset(undie,0,sizeof(undie));
        head=1;tail=0;
        up(i,1,N)if(indu[i]==0)q[++tail]=i;
        ans1=tail;
        for(;head<=tail;head++){
            int node=q[head];ans2=tail;
            if(die[kill[node]])continue;
            die[kill[node]]=1;undie[kill[kill[node]]]=1;
            if(--indu[kill[kill[node]]]==0)q[++tail]=kill[kill[node]];
        }
        up(i,1,N)if(indu[i]&&!die[i]){
            int len=0,lea=0;
            for(int j=i;!die[j];j=kill[j]){
                die[j]=1;len++;
                lea|=undie[j];
            }
            if(!lea&&len>1)ans1++;
            ans2+=len/2;
        }
        cout<<N-ans2<<' '<<N-ans1<<endl;
    }
}
int main(){
    freopen(FILE".in","r",stdin);
    freopen(FILE".out","w",stdout);
    using namespace solution;
    init();
    slove();
    return 0;
}

board

大水题,不说

//Graph board
//by Cydiater
//2016.10.2
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <algorithm>
#include <queue>
#include <map>
#include <ctime>
#include <cmath>
#include <iomanip>
using namespace std;
#define ll long long
#define up(i,j,n)        for(int i=j;i<=n;i++)
#define down(i,j,n)        for(int i=j;i>=n;i--)
#define FILE "board"
const int MAXN=1e6+5;;
const int oo=0x3f3f3f3f;
const int dx[4]={1,0,-1,0};
const int dy[4]={0,-1,0,1};
inline int read(){
    char ch=getchar();int x=0,f=1;
    while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
int N,M,cnt=0,len=0,node[205][205],T,LINK[MAXN],dfn[MAXN],low[MAXN],stack[MAXN],top=0,group[MAXN],group_num,dfs_clock=0,head,tail,q[MAXN],dis[MAXN];
int ans=0;
char a[205][205];
struct edge{
    int y,next,v;
}e[MAXN];
bool vis[MAXN],flag=0,cc[205][205];
namespace solution{
    inline int get(int x,int y){
        if(x>N||x<1||y>M||y<1)    return T;
        if(a[x][y]=='H')        return T;
        return node[x][y];
    }
    inline void insert(int x,int y,int v){e[++len].next=LINK[x];LINK[x]=len;e[len].y=y;e[len].v=v;}
    void init(){
        N=read();M=read();T=N*M+1;
        up(i,1,N){
            scanf("\n");
            up(j,1,M){
                scanf("%c",&a[i][j]);
            }
        }
        up(i,1,N)up(j,1,M){
            if(a[i][j]=='H')node[i][j]=T;
            else            node[i][j]=++cnt;
        }
        up(i,1,N)up(j,1,M)if(a[i][j]!='H'){
            int num=a[i][j]-'0';
            up(k,0,3){
                int x=i+dx[k]*num,y=j+dy[k]*num;
                insert(node[i][j],get(x,y),1);
            }
        }
    }
    void tarjan(int node){
        dfn[node]=low[node]=++dfs_clock;
        vis[node]=1;stack[++top]=node;
        for(int i=LINK[node];i;i=e[i].next)
            if(!dfn[e[i].y]){
                tarjan(e[i].y);
                low[node]=min(low[node],low[e[i].y]);
            }else if(vis[e[i].y]) low[node]=min(low[node],dfn[e[i].y]);
        if(dfn[node]==low[node]){
            int tmp;group_num++;
            do{
                tmp=stack[top--];
                vis[tmp]=0;
                group[tmp]=group_num;
            }while(tmp!=node);
        }
    }
    void dfs(int x,int y){
        if(flag)return;
        if(x>N||x<1||y>M||y<1)    return;
        if(a[x][y]=='H')        return;
        if(a[x][y]=='0'){
            flag=1;
            return;
        }
        if(cc[x][y])return;
        cc[x][y]=1;
        up(i,0,3){
            int tx=x+dx[i]*(a[x][y]-'0'),ty=y+dy[i]*(a[x][y]-'0');
            dfs(tx,ty);
        }
    }
    bool pre_judge(){
        memset(cc,0,sizeof(cc));
        dfs(1,1);
        if(flag)return 0;
        memset(vis,0,sizeof(vis));
        up(i,1,T)if(!dfn[i])tarjan(i);
        memset(vis,0,sizeof(vis));
        up(i,1,T)if(vis[group[i]])    return 0;
        else                        vis[group[i]]=1;
        return 1;
    }
    void spfa(){
        memset(vis,0,sizeof(vis));
        memset(dis,0,sizeof(dis));
        vis[node[1][1]]=1;dis[node[1][1]]=0;
        head=1;tail=0;q[++tail]=node[1][1];
        for(;head<=tail;head++){
            int node=q[head];
            for(int i=LINK[node];i;i=e[i].next)
                if(dis[e[i].y]<dis[node]+e[i].v){
                    dis[e[i].y]=dis[node]+e[i].v;
                    if(!vis[e[i].y]){
                        vis[e[i].y]=1;
                        q[++tail]=e[i].y;
                    }
                }
            vis[node]=0;
        }
    }
    int slove(){
        if(!pre_judge())return -1;
        spfa();
        up(i,1,T)ans=max(ans,dis[i]);
        return ans;
    }
}
int main(){
    freopen(FILE".in","r",stdin);
    freopen(FILE".out","w",stdout);
    using namespace solution;
    init();
    cout<<slove()<<endl;
    return 0;
}

kuglarz

你看,图论题,给你个矩阵,一般都是直接就把邻接矩阵给你了。然后考虑考虑这个题目的性质,显然是把横坐标+1跑最小生成树呀!

并查集写崩无限想扇自己

//Graph kug
//by Cydiater
//2016.10.2
#pragma GCC optimize("O2")
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <algorithm>
#include <queue>
#include <map>
#include <ctime>
#include <cmath>
#include <iomanip>
using namespace std;
#define ll long long
#define up(i,j,n)        for(int i=j;i<=n;i++)
#define down(i,j,n)        for(int i=j;i>=n;i--)
#define FILE "kug"
const int MAXN=4e6+5;
const int oo=0x3f3f3f3f;
inline int read(){
    char ch=getchar();int x=0,f=1;
    while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
int N,len,fa[MAXN];ll ans=0;
struct edge{
    int x,y,v;
}e[MAXN];
namespace solution{
    inline bool cmp(edge x,edge y){return x.v<y.v;}
    int getf(int node){
        if(fa[node]==node)        return node;
        fa[node]=getf(fa[node]);
        return fa[node];
    }
    void init(){
        N=read();
        up(i,1,N)up(j,i,N){
            int num=read();
            e[++len]=(edge){i,j+1,num};
        }
        up(i,1,N+1)fa[i]=i;
    }
    void slove(){
        sort(e+1,e+len+1,cmp);
        up(i,1,len){
            int x=e[i].x,y=e[i].y,v=e[i].v;
            x=getf(x);y=getf(y);
            if(x==y)continue;
            ans+=1LL*v;fa[x]=y;
        }
    }
    void output(){
        cout<<ans<<endl;
    }
}
int main(){
    freopen(FILE".in","r",stdin);
    freopen(FILE".out","w",stdout);
    using namespace solution;
    init();
    slove();
    output();
    //cout<<"Time has passed:"<<1.0*clock()/1000<<"s!"<<endl;
    return 0;
}

blo

Tarjan 模板题,考察对Tarjan的理解。对于每条割点所连接的点。用乘法原理累加方案数就行了。

//Graph blo
//by Cydiater
//2016.10.2
#pragma GCC optimize("O2")
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <string>
#include <algorithm>
#include <cstring>
#include <queue>
#include <map>
#include <iomanip>
using namespace std;
#define ll long long
#define up(i,j,n)        for(int i=j;i<=n;i++)
#define down(i,j,n)        for(int i=j;i>=n;i--)
#define FILE "blo"
const int MAXN=1e6+5;
const int oo=0x3f3f3f3f;
inline ll read(){
    char ch=getchar();ll x=0,f=1;
    while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
ll N,M,LINK[MAXN],len=0,dfn[MAXN],low[MAXN],dfs_clock=0,siz[MAXN],ans[MAXN];
bool vis[MAXN];
struct edge{
    int y,next,x;
}e[MAXN];
namespace solution{
    inline void insert(int x,int y){e[++len].next=LINK[x];LINK[x]=len;e[len].y=y;e[len].x=x;}
    void init(){
        N=read();M=read();
        up(i,1,M){
            int x=read(),y=read();
            insert(x,y);
            insert(y,x);
        }
    }
    void tarjan(int node,int fa){
        vis[node]=1;low[node]=dfn[node]=++dfs_clock;
        ll tmp=0;siz[node]=1;
        for(int i=LINK[node];i;i=e[i].next)
            if(!dfn[e[i].y]){
                tarjan(e[i].y,node);
                low[node]=min(low[node],low[e[i].y]);
                siz[node]+=siz[e[i].y];
                if(low[e[i].y]>=dfn[node]){
                    ans[node]+=tmp*siz[e[i].y];
                    tmp+=siz[e[i].y];
                }
            }else if(vis[e[i].y]&&fa!=e[i].y) low[node]=min(low[node],dfn[e[i].y]);
        ans[node]+=tmp*(N-tmp-1);ans[node]=(ans[node]+N-1)<<1;
    }
    void slove(){
        memset(vis,0,sizeof(vis));
        up(i,1,N)if(!dfn[i])tarjan(i,0);
    }
    void output(){
        up(i,1,N)printf("%I64d\n",ans[i]);
    }
}
int main(){
    int __size__ = 20 << 20; // 20MB
char *__p__ = (char*)malloc(__size__) + __size__;
__asm__("movl %0, %%esp\n" :: "r"(__p__));
    freopen(FILE".in","r",stdin);
    freopen(FILE".out","w",stdout);
    using namespace solution;
    init();
    slove();
    output();
    return 0;
}

castle

考试的时候无限想和以前写过的一道题找关系,那道题是问每条边可以当多少次最短路。然后就GG了QAQ。

好吧其实这道题也不算难(至少比那道题要简单很多),先跑一遍SPFA,然后把dis排序,每个点扫一遍乘法原理xjb搞搞就行了。

//NOIp castle
//by Cydiater
//2016.10.4
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <queue>
#include <map>
#include <ctime>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iomanip>
using namespace std;
#define ll long long
#define up(i,j,n)        for(int i=j;i<=n;i++)
#define down(i,j,n)        for(int i=j;i>=n;i--)
#define FILE "castle"
const int MAXN=2e6+5;
const int oo=0x3f3f3f3f;
const ll mod=(1<<31)-1;
inline ll read(){
    char ch=getchar();ll x=0,f=1;
    while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
ll N,M,LINK[MAXN],len=0,head,tail,ans=1,q[MAXN],eg[1005][1005];
struct edge{
    ll y,next,v;
}e[MAXN];
bool vis[MAXN];
struct dist{
    int id,v;
    dist(){v=oo;}
}dis[MAXN];
namespace solution{
    inline void insert(int x,int y,int v){e[++len].next=LINK[x];LINK[x]=len;e[len].y=y;e[len].v=v;}
    inline bool cmp(dist x,dist y){return x.v<y.v;}
    void init(){
        N=read();M=read();
        memset(eg,10,sizeof(eg));
        up(i,1,M){
            ll x=read(),y=read(),v=read();
            insert(x,y,v);
            insert(y,x,v);
            eg[x][y]=min(eg[x][y],v);
            eg[y][x]=eg[x][y];
        }
    }
    void pret_SPFA(){
        head=1;tail=0;
        memset(vis,0,sizeof(vis));
        up(i,1,N)dis[i].id=i;
        vis[1]=1;dis[1].v=0;q[++tail]=1;
        for(;head<=tail;head++){
            int node=q[head];
            for(int i=LINK[node];i;i=e[i].next)
                if(dis[e[i].y].v>dis[node].v+e[i].v){
                    dis[e[i].y].v=dis[node].v+e[i].v;
                    if(!vis[e[i].y]){
                        vis[e[i].y]=1;
                        q[++tail]=e[i].y;
                    }
                }
            vis[node]=0;
        }
    }
    void slove(){
        pret_SPFA();
        sort(dis+1,dis+N+1,cmp);
        up(i,2,N){
            ll tmp=0;
            down(j,i-1,1){
                int x=dis[i].id,y=dis[j].id;
                if(dis[i].v==dis[j].v+eg[x][y])tmp++;
            }
            (ans*=tmp)%=mod;
        }
    }
    void output(){
        cout<<ans<<endl;
    }
}
int main(){
    freopen(FILE".in","r",stdin);
    freopen(FILE".out","w",stdout);
    using namespace solution;
    init();
    slove();
    output();
    //cout<<"Time has passed:"<<1.0*clock()/1000<<"s!"<<endl;
    return 0;
}

NOIp Graph 1002 瞎眼记的更多相关文章

  1. NOIP 2018 真・退役记

    目录 NOIp 2018 真・退役记 7.01 7.05 \(summary\) 7.12 7.18 7.26 - 7.27 8.2 8.3 8.3 8.7 8.9 8.20 8.24 8.27 8. ...

  2. NOIP 2017 游(划水)记

    Day 0 上午,大概做了一套(大)信(水)心题. 让我想想我题目都是些什么鬼.. T1:大水题.什么sort一下就过了.据说lemon上用map不会被卡常(lemon上评测,程序跑得蜜汁快). T2 ...

  3. NOIp 0916 爆零记

    题目来自神犇chad 上次爆零是说着玩,这次真的爆零了QAQ 好吧貌似是TYVJ的模拟赛打多了..一直按照TYVJ的格式提交的压缩包.. 然后莫名其妙就AK了hhh 来的时候迟到了半小时,昨晚痛苦的补 ...

  4. NOIp 0910 爆零记

    这套题是神犇chty出的. 刚拿到题的时候有点懵逼,因为按照一般的套路第一题都是一眼题,但是看到第一题后想了很多个算法和数据结构好像都不能很好的解决.然后就随手敲了个暴力去看T2. 嗯...文件名是b ...

  5. [日常] NOIP 2017滚粗记

    突然挑了这么个滑稽的时间补了游记... (成绩日常延时再加上人太菜估计基本上就是颓废记录) 然而文化课太废可能会被强制退役QAQ所以先补了再说吧 day0 一大早被老姚交代了个开十一机房门的任务... ...

  6. NOIP 2018 大翻车记

    都9102年了我才想起来写游记啊 Day -1 肚子里翻江倒海,一天去了七次厕所.吃了PPA把病压下去.安慰一下自己,说这样会涨人品. Loli讲述学长们的翻车笔记.我大概像是玩笑一样听过去了.(伏笔 ...

  7. [日常] NOIp 2018 滚粗记

    考试前预感到自己会滚大粗 然后发现确实滚了个大粗 ==== €€£ WARNING ==== 因为是后补的所以更新速度比较慢 最后决定把半成品扔出来 预计本周末放假会更完吧 2019.2.25 upd ...

  8. NOIP 2016 滚粗记

    Day -∞ 听说要去晋城一中去考试. MMP,我在省会城市,为什么要去一个偏远的小城市去考NOIP 就是因为几年前它们那里出了一个金牌吗?都怪我们太菜了. Day 0 坐着长途大巴车去考试,其他人都 ...

  9. 「游记」NOIP 2021 爆零记

    推荐访问本人自建博客 \(\text{cjwen.top}\) 欧拉欧拉欧拉欧拉欧拉欧拉欧拉欧拉,第一次参加 \(NOIP\),欧拉欧拉欧拉欧拉欧拉欧拉欧拉欧拉. 第一题比较简单,用类似于筛质数的做法 ...

随机推荐

  1. js前端的各种面试题

    转载:http://bbs.blueidea.com/thread-3107428-1-1.html 1.截取字符串abcdefg的efg //alert('abcdefg'.substring(4) ...

  2. coursera 公开课 文本挖掘和分析(text mining and analytics) week 1 笔记

    一.课程简介: text mining and analytics 是一门在coursera上的公开课,由美国伊利诺伊大学香槟分校(UIUC)计算机系教授 chengxiang zhai 讲授,公开课 ...

  3. Jquery-EasyUI学习2~

    下面这个Demo用的是MVC+Ado.Net.存储过程 实现功能:分页查询,添加.修改功能.模糊查询功能 先来几张效果图: 创建存储过程如下 go create proc usp_FenYe2 @se ...

  4. 【转】Java 8十个lambda表达式案例

    1. 实现Runnable线程案例 使用() -> {} 替代匿名类: //Before Java 8: new Thread(new Runnable() { @Override public ...

  5. 东大OJ-1430-PrimeNumbers

    题目描述 I'll give you a number , please tell me how many different prime factors in this number. 输入 The ...

  6. 十天冲刺---Day7

    站立式会议 站立式会议内容总结: 燃尽图 照片 两个人编码其实效率挺高的.但是在一些方面,比如说页面UI的编写,会非常吃力,很难达到自己的效果. 由于埋头在编码,所以issues的增加随之停止. 有点 ...

  7. Redis集群(二):Redis的安装

    官方网站:http://redis.io/ 本系列撒使用的版本是:3.0.0 一.安装必要包 yum -yinstall gcc 二.linux下安装及使用(wget下载到当前目录) redis-3. ...

  8. CentOS6.5下搭建NFS文件服务器

    本文参考这里 CentOS下搭建NFS服务器总结 环境介绍: 1. 服务器: 192.168.0.100 2. 客户机: 192.168.0.101 安装软件包: 服务器和客户机都要安装nfs 和 r ...

  9. Web前端性能优化教程01:减少Http请求

    性能黄金法则 只有10%-20%的最终用户响应时间花在接收请求的HTML文档上,剩下的80%-90%时间花在HTML文档所引用的所有组件(图片,script,css,flash等等)进行的HTTP请求 ...

  10. Leetcode 113. Path Sum II

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...