10
2
2010
0

国庆

9月30日晚上,青儿的妈妈脚骨折了,爸爸做了痔疮手术。我和青在C楼看着特工邵特的时候,她接到了电话,伤心的哭了起来。之后我送她到校门口,她打的回去了。10月1日,感觉很无聊,告别了星火杯的念头,做了一题坦克的题目,晚上和戴毅伟一起去了C329上自习,感觉很好。对于十月份的这股凉意,心里却出现了莫名的暖意。今天十月2日。

昨天AC了连连看,今天早上起来与廖宇晨聊天还是蛮有收获的。HE SAID:看点linux内核代码啊,学学函数式编程啊,学下LaTeX啊,看点集训队论文啊,都比那个来的有价值。‘

10-10-03 06:30
我看了我看了~~~哈哈...问的很尖锐...回复

廖宇 晨2010-10-03 07:13
回复贾维: ^_^回复

饶洵2010-10-03 08:55
最近温总 的话很多被和谐回复

廖宇 晨2010-10-03 09:01
回复饶洵: 最近他说的这些话,让我对他很有改观。。。回复

王雨 舟 Boat2010-10-03 09:30
原来你那么喜欢聊和谐~~汗

廖宇 晨2010-10-03 09:31
回复王雨舟 Boat:呃,是的。回复

王雨 舟 Boat2010-10-03 09:31
回复廖宇晨:每次看你发的还挺有意思的。。继续收看

廖宇 晨2010-10-03 09:32
回复王雨舟 Boat:欢迎欢迎,你现在正常上课去了吧?回复

王雨 舟 Boat2010-10-03 09:33
回复廖宇晨:现在是国庆节。应该是随意上课吧。想弄星火杯,发现图形界面方面是弱智。。。

王雨 舟 Boat2010-10-03 09:34
美国那应该挺爽吧

廖宇 晨2010-10-03 09:36
回复王雨舟 Boat:哇靠,不要玩那个东西。自己写写就成,千万别玩,你等等在群上问下陈教主要他当时画的那个讽刺煋杯的logo回复

王雨 舟 Boat2010-10-03 09:37
回复廖宇晨:哇靠,咱们都是软院的吧。恩。我还是老老实实的弄点别的。粉刺星火杯的LOGO。。。去看看

廖宇 晨2010-10-03 09:37
回复王雨舟 Boat:我没玩过啊回复

廖宇 晨2010-10-03 09:38
回复王雨舟 Boat:千万不要相信那个什么说不参加就不能毕业的说法回复

王雨 舟 Boat2010-10-03 09:38
回复廖宇晨:主要是。。我如果拿奖可以让女朋友她妈觉得我很拽啊

廖宇 晨2010-10-03 09:38
回复王雨舟 Boat:。。。。。。。。。。。。。囧。。。。好吧,为了爱情,你上吧。。。。回复

廖宇 晨2010-10-03 09:39
回复王雨舟 Boat:我大四的时候看到过一个煋杯作品,货币转换器,那个SB写了4000多行if else判断是什么国家对什么国家,见过傻逼的没见过这么傻逼的。。。回复

王雨 舟 Boat2010-10-03 09:39
回复廖宇晨:......我发现还不是时候,我太弱了,,,。

王雨 舟 Boat2010-10-03 09:39
回复廖宇晨:。。。。。。。。。。。。。。

王雨 舟 Boat2010-10-03 09:39
诶。。打扰了你的政治贴。。。

王雨 舟 Boat2010-10-03 09:40
话说后来那个货币转换器啥下场

廖宇 晨2010-10-03 09:40
回复王雨舟 Boat:那些什么界面的东西都是空的~有时间多A几个题还有点意思。回复

廖宇 晨2010-10-03 09:40
回复王雨舟 Boat:3等。。回复

廖宇 晨2010-10-03 09:41
回复王雨舟 Boat:所以我很鄙视。。。。回复

王雨 舟 Boat2010-10-03 09:42
回复廖宇晨:我最近每天一题,十月一日A的一题很有意思的,我本来想把那个转变成星火杯,发现没写过游 戏。。。我昨天本来就放弃了,结果晚上睡觉的时候有了一个很好的idea,兴奋了一晚上,早上醒来发现操作起来脑子一片空白。。

廖宇 晨2010-10-03 09:45
回复王雨舟 Boat:囧,有时间别花那上面,看点linux内核代码啊,学学函数式编程啊,学下LaTeX啊,看点集训队论文啊,都比那个来的有价值。回复

王雨 舟 Boat2010-10-03 09:46
回复廖宇晨:记下来了。谢谢。恩。好,就先不做那玩意了。

王雨 舟 Boat2010-10-03 09:46
函数式编程?

廖宇 晨2010-10-03 09:46
回复王雨舟 Boat:Google之回复

王雨 舟 Boat2010-10-03 09:47

廖宇 晨2010-10-03 09:48
回复王雨舟 Boat:Python和haskell这样的~回复

王雨舟 Boat2010-10-03 09:51
回复廖宇晨: 谢谢愉悦一刻 。。。国 庆就去看看廖远古神牛的推荐

王雨舟 Boat10-03 09:51

回复廖宇晨: 谢谢愉悦一刻 。。。国 庆就去看看廖远古神牛的推荐

廖宇 晨10-03 09:52

回复 王雨舟 Boat:呃,还有一个超级推荐,去看王爽的汇编语言,你会有超级收获。。。。

王雨 舟 Boat10-03 09:53

回 复廖宇晨:汇编?好吧,王爽的?我看的是大灰狼的自学汇编

王雨 舟 Boat10-03 09:53

去 看看王爽

廖宇 晨10-03 09:53

回复 王雨舟 Boat:这书是当年我还是大三小屁孩的时候陈教主推荐给我看的,看了之后,才发现我原来根本就不理解计算机。。。

廖宇 晨10-03 09:54

回复 王雨舟 Boat:他写的是超级经典的书

王雨 舟 Boat10-03 09:54

回 复廖宇晨:恩。知道了。汇编很多书一开始看起来很头疼,不知道他写的怎么样

廖宇 晨10-03 09:55

回复 王雨舟 Boat:浅显易懂,深入浅出,可以当小说看,就算是没有任何计算机编程基础的都能看

廖宇 晨10-03 09:55

回复 王雨舟 Boat:不过上面的习题一定要做完~

王雨 舟 Boat10-03 09:56

回 复廖宇晨: 这么好。。。流口水 呵呵,有事情干了~~

Category: 休假的时候 | Tags:
10
2
2010
0

POJ3592 回来后做的第一题

swain[王雨舟](394528923) 22: wudiswain[王雨舟](394528923) 22:25:50
一张地图上,有一些矿点,每个矿点上都一个一定数量的矿(每个矿的量不一定相同) ,图上有些点可能是障碍物,现在坦克从图的左上角出发,出口在右下角,坦克只能往右或者往下开,问最多能有得到多少矿点,坦克开过矿点后矿点的矿全部给坦克
wudisplay[bsed刘通](357240143) 22:26:17
费用流?
wudiswain[王雨舟](394528923) 22:26:20
各位大牛,赶紧秒杀了这个。。
wudiswain[王雨舟](394528923) 22:26:34
。。费..
wudisplay[bsed刘通](357240143) 22:26:41
没描述啊
wudiswain[王雨舟](394528923) 22:26:51
坦克从图的左上角出发,出口在右下角,坦克只能往右或者往下开
wudisplay[bsed刘通](357240143) 22:27:06
DP就行了吧?
wudiswain[王雨舟](394528923) 22:27:11

wudiswain[王雨舟](394528923) 22:27:15
这是问题一
wudiswain[王雨舟](394528923) 22:27:26
还有改进版的
wudiswain[王雨舟](394528923) 22:27:33
现在图上有一些传送门
wudisplay[bsed刘通](357240143) 22:27:32

wudiswain[王雨舟](394528923) 22:27:44
每个传送门指定到图上 的一个点
wudiswain[王雨舟](394528923) 22:27:54
现在问你最多能有多少矿
wudiswain[王雨舟](394528923) 22:28:14
各位观众赶紧来秒杀这个
wudisplay[bsed刘通](357240143) 22:28:21
擦,这不是你问过小红的嘛
wudiswain[王雨舟](394528923) 22:28:39
。。擦,我哈尔滨回来后今天花了一天才AC
wudisplay[bsed刘通](357240143) 22:28:58
这种题,给他们说有意义么...反正我不会
wudiwudiswain[王雨舟](394528923) 22:29:31
。。我只是想说,不搞ACM的话,类似这种东西是很难写的。。
wudisplay[bsed刘通](357240143) 22:29:36

wudiswain[王雨舟](394528923) 22:29:47
刘大牛。。你怎么可能不会
wudisplay[bsed刘通](357240143) 22:29:48
果然比我有远见
wudiswain[王雨舟](394528923) 22:30:25
我只是想让听众有点兴趣而已
wudiswain[王雨舟](394528923) 22:30:37
方帧去哪了

先将所有矿点缩点,然后求最长路

//boatswain 2010 /10/ 1
//*********************************
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
const int N=25000;
int n,m,ans;
char map[50][50];
int loc[50][50];
int door[N];
int doornum;
int block[N];
int blocknum;
int ore[N];
int orenum;
//tarjan()
int scc,index,dfn[N],low[N],belong[N],num[N],sstack[N],top,out[N];
bool instack[N];
struct Edge{
	int v,next;
}edge[N];
int cnt;
int head[N];
int sum[N];
bool oyes(int i,int j){
	if (i>=0&&i<n&&j>=0&&j<m&&map[i][j]!='#')	return true;
	return false;
}
void addedge(int u,int v){
	edge[cnt].v=v;edge[cnt].next=head[u];head[u]=cnt++;
}
struct Edge2{
	int v,next,val;
}e[N];
int aug;
int head2[N];
void addedge2(int u,int v,int val){
	e[aug].v=v;
	e[aug].val=val;
	e[aug].next=head2[u];
	head2[u]=aug++;
}
void init(){
	aug=cnt=doornum=blocknum=orenum=0;
	memset(head,-1,sizeof(head));
	memset(head2,-1,sizeof(head));
	memset(block,0,sizeof(block));
	memset(loc,0,sizeof(loc));
	memset(map,0,sizeof(map));
	memset(ore,0,sizeof(ore));
	scanf("%d%d",&n,&m);
	for (int i=0;i<n;i++)  scanf("%s",map[i]);
	for (int i=0;i<n;i++)	
		for (int j=0;j<m;j++){
			loc[i][j]=i*m+j;
			if (map[i][j]=='*')		door[doornum++]=i*m+j;
			else if (map[i][j]=='#')	block[blocknum++]=i*m+j;
			else ore[loc[i][j]]=map[i][j]-'0';
		}
	for (int i=0;i<n;i++)
		for (int j=0;j<m;j++){
			if (!oyes(i,j)) continue;
			if (oyes(i+1,j)) addedge(loc[i][j],loc[i+1][j]);
			if (oyes(i,j+1)) addedge(loc[i][j],loc[i][j+1]);
		}
	for (int i=0;i<doornum;i++){
		int a,b;	scanf("%d%d",&a,&b);
		if (oyes(a,b)) addedge(door[i],loc[a][b]);
	}
}
int MAX(int a,int b){
    if (a<b) return b;
    return a;
}
int MIN(int a,int b){
    if(a<b)
        return a;
    return b;
}
void tarjan(int u)
{
    dfn[u]=low[u]=++index;
    sstack[++top]=u;
    instack[u]=true;
    for (int j=head[u];j!=-1;j=edge[j].next){
        int v=edge[j].v;
        if(dfn[v]==0){
            tarjan(v);
            low[u]=MIN(low[u],low[v]);
        }
        else if(instack[v])
        {
            low[u]=MIN(low[u],dfn[v]);
        }  
    }
    if(dfn[u]==low[u])
    {
        scc++;
        while(1)
        {
            int tmp=sstack[top--];
            instack[tmp]=0;
            belong[tmp]=scc;
            num[scc]++;
            if(tmp==u)
                break;
        }
    }
}
void SPFA(){
		bool vis[N];
		int dist[N],l,r,q[N*10],MAXQ=N+5;
		for (int i=0;i<scc+1;i++){
			dist[i]=-1;
			vis[i]=false;
		}
		l=r=0;
		q[r++]=0;
		dist[0]=0;
		while (l!=r){
			int u=q[l++];l%=MAXQ;
			vis[u]=false;
			for (int j=head2[u];j!=-1;j=e[j].next){
				int v=e[j].v;
				if (dist[v]<dist[u]+e[j].val){
					dist[v]=dist[u]+e[j].val;
				    if (!vis[v]){             
                       vis[v]=true; q[r++]=v;r%=MAXQ;
                       }
                }
		}
		}
		ans=0;
		for (int i=1;i<scc+1;i++){
            ans=MAX(ans,dist[i]);
            }
			
}
void solve(){
	scc=top=index=0;
	memset(dfn,0,sizeof(dfn));
	memset(sum,0,sizeof(sum));
	for (int i=0;i<n*m;i++)
		if (!dfn[i]) tarjan(i);
	for (int i=0;i<n*m;i++)
		sum[belong[i]]+=ore[i];
	addedge2(0,belong[0],sum[belong[0]]);
	for (int i=0;i<n*m;i++){
		for (int j=head[i];j!=-1;j=edge[j].next){
			int v=edge[j].v;
			if (belong[i]!=belong[v])
				addedge2(belong[i],belong[v],sum[belong[v]]);
		}
	}
 SPFA();
}
void output(){
	printf("%d\n",ans);
}
int main(){
   // freopen("a.in","r",stdin);
	int T;
	scanf("%d",&T);
	while(T--){
		init();
		solve();
		output();
	}
	system("PAUSE");
}
Category: ACM | Tags:
9
30
2010
1

SAP 模板 PKU 3469

 

Source Code

Problem: 3469

 

User: boatswain

Memory: 10900K

 

Time: 2922MS

Language: C++

 

Result: Accepted

  • Source Code

    		#include <stdio.h>
    #include <iostream>
    #include <string.h>
    using namespace std;
    const int N=20010;
    int NN;
    const int MAXE=200010;
    const int inf=1<<30;
    int head[N];
    struct Edge
    {
            int v,next,w;
    }edge[MAXE*8];
    int cnt,n,m,s,t;
    void addedge(int u,int v,int w)
    {
            edge[cnt].v=v;
            edge[cnt].w=w;
            edge[cnt].next=head[u];
            head[u]=cnt++;
            edge[cnt].v=u;
            edge[cnt].w=0;
            edge[cnt].next=head[v];
            head[v]=cnt++;
    }
    int sap()
    {
            int pre[N],cur[N],dis[N],gap[N];
            int flow=0,aug=inf,u;
            bool flag;
            for(int i=0;i<=NN;i++)
            {
                    cur[i]=head[i];
                    gap[i]=dis[i]=0;
            }
            gap[s]=NN;
            u=pre[s]=s;
            while(dis[s]<NN)
            {
                    flag=0;
                    for(int &j=cur[u];j!=-1;j=edge[j].next)  
                    {
                            int v=edge[j].v;
                            if(edge[j].w>0&&dis[u]==dis[v]+1)
                            {
                                    flag=1;
                                    if(edge[j].w<aug) aug=edge[j].w;
                                    pre[v]=u;
                                    u=v;
                                    if(u==t)
                                    {
                                            flow+=aug;
                                            while(u!=s)
                                            {
                                                u=pre[u];
                                                    edge[cur[u]].w-=aug;
                                                    edge[cur[u]^1].w+=aug;
                                            }
                                            aug=inf;
                                    }
                    break;
                            }
                    }
                    if(flag)
                            continue;
                    int mindis=NN;
                    for(int j=head[u];j!=-1;j=edge[j].next)
                    {
                            int v=edge[j].v;
                            if(edge[j].w>0&&dis[v]<mindis)
                {
                      mindis=dis[v];
                      cur[u]=j;
                }
                    }
                    if((--gap[dis[u]])==0)
                            break;
                    gap[dis[u]=mindis+1]++;
                    u=pre[u];
            }
            return flow;
    }
    int main()
    {
            while(scanf("%d%d",&n,&m)!=EOF)
            {
                    s=0;t=n+1;cnt=0;
                    memset(head,-1,sizeof(head));
                    int a,b,c;
                    for(int i=1;i<=n;i++)
                    {
                            scanf("%d%d",&a,&b);
                            addedge(s,i,a);
                            addedge(i,t,b);
                    }
                    for(int i=1;i<=m;i++)
                    {
                            scanf("%d%d%d",&a,&b,&c);
                            addedge(a,b,c);
                            addedge(b,a,c);
                    }
                    int ans=0;
                   NN=n+2;
                    ans=sap();
                    printf("%d\n",ans);
            }
    }
    
    
Category: ACM | Tags:
9
30
2010
1

HDU 3488 KM模板

#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
const int N=210;
const int inf=0x7fffffff;
int match[N];
long long lack;
long long  w[N][N];
int n,m;
bool visx[N],visy[N];
long long lx[N],ly[N];
int wmax=300005;
bool dfs(int x)
{
     visx[x]=true;
     for(int y=1;y<=n;y++)
     {
       if(visy[y]) continue;
       int t=lx[x]+ly[y]-w[x][y];
       if(t==0)
       {
         visy[y]=true;
         if(match[y]==-1||dfs(match[y]))
         {
           match[y]=x;
           return true;
         }
       }
       else if(lack>t) lack=t;
     }
     return false;
}
void KM()
{
     memset(lx,0,sizeof(lx));
     memset(ly,0,sizeof(ly));
     memset(match,-1,sizeof(match));
     for(int i=1;i<=n;i++)
     for(int j=1;j<=n;j++)
     if(w[i][j]>lx[i]) lx[i]=w[i][j];
     for(int x=1;x<=n;x++)
     {
       for(;;)
       {
        memset(visx,0,sizeof(visx));
        memset(visy,0,sizeof(visy));
        lack=inf;
        if(dfs(x)) break;
        for(int i=1;i<=n;i++)
        {
           if(visx[i]) lx[i]-=lack;
           if(visy[i]) ly[i]+=lack;
        }
       }
     }
}
int main()
{
    int t;
    long long sum;
    cin>>t;
    while(t--)
    {
      memset(w,0,sizeof(w));
      scanf("%d%d",&n,&m);
      for(int i=0;i<m;i++)
      {
       int a,b,c;
       cin>>a>>b>>c;
       if(wmax-c>w[a][b])
       w[a][b]=wmax-c;
       
      }
      KM();
      sum=0;
     for(int i=1;i<=n;i++)
     {
    // printf("match[%d][%d]=%d\n",match[i],i,inf-w[match[i]][i]);
     sum+=wmax-w[match[i]][i];
     }
     printf("%d\n",sum);
    }
}

Category: ACM | Tags:
9
30
2010
0

最小费用最大流模板

#include <stdio.h>

#include <iostream>

#include <string.h>

using namespace std;

const int N=40000;

const int MAXE=20000000;

const int inf=1<<30;

int head[N],s,t,cnt,n,m,ans;

int d[N],pre[N];

bool vis[N];

int q[MAXE];

struct Edge

{

    int u,v,c,w,next;

}edge[MAXE];

void addedge(int u,int v,int w,int c)

{

    edge[cnt].u=u;

    edge[cnt].v=v;

    edge[cnt].w=w;

    edge[cnt].c=c;

    edge[cnt].next=head[u];

    head[u]=cnt++;

    edge[cnt].v=u;

    edge[cnt].u=v;

    edge[cnt].w=-w;

    edge[cnt].c=0;

    edge[cnt].next=head[v];

    head[v]=cnt++;

}

int SPFA()

{

    int l,r;

    memset(pre,-1,sizeof(pre));

    memset(vis,0,sizeof(vis));

    for(int i=0;i<=t;i++) d[i]=inf;

    d[s]=0;

    l=0;r=0;

    q[r++]=s;

    vis[s]=1;

    while(l<r)

    {

        int u=q[l++];

        vis[u]=0;

        for(int j=head[u];j!=-1;j=edge[j].next)

        {

            int v=edge[j].v;

            if(edge[j].c>0&&d[u]+edge[j].w<d[v])

            {

                d[v]=d[u]+edge[j].w;

                pre[v]=j;

                if(!vis[v])

                {

                    vis[v]=1;

                    q[r++]=v;

                }

            }

        }

    }

    if(d[t]==inf)

        return 0;

    return 1;

}

void MCMF()

{

    int flow=0;

    while(SPFA())

    {

        ans+=d[t];

        int u=t;

        int mini=inf;

        while(u!=s)

        {

            if(edge[pre[u]].c<mini)

                mini=edge[pre[u]].c;

                u=edge[pre[u]].u;

        }

        flow+=mini;

        u=t;

        while(u!=s)

        {

            edge[pre[u]].c-=mini;

            edge[pre[u]^1].c+=mini;

            u=edge[pre[u]].u;

        }

    }

}

int main()

{

    while(scanf("%d%d",&n,&m)!=EOF)

    {

        s=0;t=n+1;cnt=0;

        for(int i=0;i<=t;i++)

            head[i]=-1;

        for(int i=1;i<=m;i++)

        {

            int u,v,cost;

            scanf("%d%d%d",&u,&v,&cost);

            addedge(u,v,cost,1);

            addedge(v,u,cost,1);

        }

        addedge(0,1,0,2);

        addedge(n,t,0,2);

        ans=0;

        MCMF();

        printf("%d\n",ans);

    }

    return 0;

}

Category: ACM | Tags:
9
30
2010
1

哈尔滨四个男人的青春故事

哈尔滨故事
2010年9月23日,这是我去哈尔滨的日子。早上在QINZ,丁丁和罗丹岳正在酣睡的时候,我起床,将未曾晒干的衣服放入旅行 包中,在6点45分的时候去了丁香寝室吵醒了QINZ,拿了两千元后去火车站给我们队买哈尔滨回西安的返程票。不知道什么原因,之前居然一直没有搞好返程 票,前一天晚上QINZ给我说只有10几张卧铺了,所以我在睡了5个多小时后毅然顶着沉重的眼皮赶到了西安火车站。已经很少这么早起床做916公交车了。 风萧萧兮易水寒,当我赶到火车站的时候,发现返程票已经被卖光了,因为买的是9月27日的票,正赶上中秋和国庆,所以,我独自站在火车站,看着即将告别的 西安的天空,幻想着哈尔滨是怎样的景色。白衣飘飘的年代,我在手机没有电后去了网吧偷电,顺便开了笔记本打DOTA。傍晚QINZ带着丁丁,罗在我彻底饿 死之前下了五龙专线,一起在德克士吃了一顿饭后 去了火车站买了从郑州回西安的火车票。早上我买的是从哈尔滨回郑州的车票。
   告别了熟悉我和青儿的城市,开始了4个男人的火车之旅。那天晚上我和QINZ在火车的窗边聊天到了1点多,罗和丁丁早就睡觉了。当时在火车上还是对于哈尔 滨有个各种幻想,毕竟西电已经很多年没有那个队伍第一次出去就获奖的。心里一直劝告自己要淡定一些,在那个不知道发生了什么的火车之旅结束后,我们望着彼 此发白的嘴唇,肚子饿到了极点,坐上了哈工大的专车,路过了传说中的松花江,路过了传说中QINZ上半年住过的香格里拉饭店,
到了哈工大德华学 院,看着学院里贴着:与其打游戏,不如编程序之类的各种囧言后开始了热身赛。热身赛实在没啥好说的,还是不记得发生了啥,可能是太饿了,我和丁丁很快喝完 了举办方给我们准备的矿泉水。热身赛状态非常不好,但由于之前已经对这次比赛有了很多
心里准备,我也坦然了很多。到了住宿处的时候发现居然没有空 调。我迫不及待的洗了个澡,神清气爽后发现还是有些困,可能是早上饿的太厉害,下午整个人都没有缓过来。在众多选手一起由主办方带领去太阳岛旅游的 时候我我们四个都对旅游没啥兴趣。要知道之前我们队 XDU GreenWolf 可就是冲着旅游来的,向来突然很有意思,来旅游的没有旅游,反而在寝室无聊的DOTA,睡觉。
    晚上的时候丁丁,罗,QINZ三个在我房间里看漫画,我突然有点困,随意的躺在了床上,居然就直接睡着,醒来的时候已经第二天清晨5点多。哈尔滨和浙江貌 似在同一个经度上,所以晚上黑的早,早上5点多的时候天已经很亮了。醒来后突然发现旁边床上睡了一个QINZ不经莞尔,今天还有那个正式比赛,我们就是为 这个来,可是在过去的好几天中,貌似什么偶读没干,就是睡觉。早上我们吃了早饭后,就上去,坐在了38号 XDU GreenWolf  
 Qinz 在后面现场直播。
    主持人喊着:5 4 3 2 1 比赛开始。我们人手一本蛮精致的题目(这个很囧) 当时直接读题,我还没看完A题的时候罗让我看下最后一题,感觉像是网络流,我刚开始一读,感觉也像网络流,后来一想,貌似有点不对。就直接看了别的题目, 发现有一题直接是最小费用最大流,就上去直接敲了一个模板。这时候丁丁貌似已经发现一个数学题,开始在草稿纸上写那个数学动规,当我写完模板的时候丁丁打 算先写了,于是我让开开始建图。建图前和罗一起看着电脑屏幕,等待着第一次提交的结果,回来居然是1Y,无限欣喜后罗开始写场上最水的一题,没几下写完一 个很水的 floyd,提交再次返回1Y。那时候已经很多队过了这两题,我看了下H题,貌似过的不多,只有清华那几个队过了,建图的时候我发现这题还是有点奇 怪,A*X变成了A*X*X。一时不知道从哪里下手,后来比赛完后浙江师范大学的一个研究生给我说题目里C<=5,平方可以拆成1 3 5 7 9 然后分开建图,顿时我和罗都傻眼。。做了半天的H题,居然没有发现题目中容量限制是小于5。。还是非常郁闷。在我H题不知道怎么做的时候,罗给我说场上过 的比较多的 B题,貌似是一个最优匹配KM(),给我说了下题意,并且讲了一堆思路后我完全不知道他在说什么,当时又被他鄙视,于是我就直接自己想,想完后发现这题 KM()的话我还是能搞定的,后来罗也发现他自己一开始的思路有问题,就帮我出了几组数据,我敲完A题后运行了下罗的测试数据,全部通过。还是很紧张的按 下了SUBMIT。无限期待的1Y居然变成了TLE。。。我去,后来我看了下数据规模,直接无语。。。这题明显不是用KM做的,场上虽然都是高手,但是 KM()的题目怎么可能过那么多队,我早就感觉怪怪的。我重新审视了下题目意思后发现这题或许是一个非常水的贪心,说了下思路后让罗想了下贪心的正确性, 当时心里感觉这题应该就这样,但是感觉实在太水有点不放心,看了下场上貌似是超多队伍做出了这个,我直接开始敲代码,敲了一半的时候感觉还是题目太简单 了,有点不放心,再次问罗这题我的想法的正确性,罗说相信他一次,贪心是对的。于是我敲完后,鼓足勇气提交了代码,返回居然是YES(回来的火车上 QINZ给我说这题其实囧了很多队伍,有个队一共过了8个题目,到最后一刻才做出。还有一个比较惋惜的大牛队,在这题上卡了很久,最后只拿到一个铜牌)。 当时那种囧的心情实在是。。。。唉。。。那时候貌似一百多个队伍我们排在中间,排在我们前面的很多队伍都过了A,罗就开始思考A题的思路,乙丁威武的拿起 全场只过了不超过10个队伍的I题,在旁边疯狂积分求导(再次无限膜拜数论大神丁丁),而我和罗边讨论着H题,边改着代码,各种数据,各种测试,罗甚至建 了一个比较牛逼的图,我写到最小费用最大流后还是跑不出第三组数据,当时我一度怀疑是我程序写挫了,想了很久后我们队还是在100多个队伍中间,心想着必 定AC此题,于是上了2次厕所后回来模拟程序流程,发现程序代码是对的,只是我和罗建的图其实是错的。。。。悲剧。。到最后都没有搞出来。其实当时我们居 然没有发现题目里写着容量是不超过5的——!这题比赛完后浙江师范大学的一个研究生给我说了下这题的思路,他第一句就直接讲C<=5那时我和罗直接 晕死,做了那么久的H题,连题目都没读好,汗颜不已。。。他用了一个比较巧的构图,讲边分开,平方的话分成1 3 5 7 9的和。。。。听后囧的一塌糊涂。不过还好做出这题和不做出这题对于最后的结果不大。在我对H题基本没啥头绪的时候,丁丁拿过来了一个很短的公式说直接敲 了这个,罗敲完后运行结果居然和测试结果一样,当时是不完全体,直到丁丁又搞出一个公式后,我们当时的感觉就像是屠夫的盲勾,如果勾中了,我们就可以拿一 个铜牌了,破了西电近几年新队伍出去不拿牌的记录。不过很可惜提交后返回的结果是Wrong-Answer.我记得当时还是蛮囧的,罗在电脑上测着数据, 我让丁丁给我说了下这题的题意,罗测了很久后发现丁丁的程序貌似没有错误,就在这时,我发现题目中R和H的关系,发现我们非常郁闷的将程序里的R,H反了 个头,赶紧将R,H的关系调整过来,调试没问题后果断提交,返回一个YES!!!!!!!当时对于这个YES,我们三实在兴奋不已,以至于动静太大引来周 围比赛选手的各种侧目—— !!一种巨大的幸福感在那一刻降临,丁丁过了那题后,整个赛场里只有11个队伍过了那题,如此的神勇~~~那时感觉排名貌似只往前了一点,因为很多我们头 上的队伍都过了A题,有不少队伍过了H。。。对于H题,我还是非常的郁闷,居然没有读仔细题目,导致后来囧的毫无思路。如果看见了那个C<=5或许 有可能能AC吧。A题到最后还是没有写出来,我写了一个之前从没写过的删边的深搜,有些郁闷。后来罗在我的程序基础上写了个从底层往上的动规,可是还是没 有做出来,但是还是不影响最后结果。比赛完后,我们队过了4题,据说第一的AK了~~呵呵。不过还是蛮开心,貌似是很有可能破了西电近几年的不幸记录了。

     就在出楼梯口的时候,一个女孩子手里拿着8个气球过来和QINZ打招呼,看着她手里这么多气球,当时就明白应该就是天津大学的西电教主夫人~~如此威武, 我们三拿着4个气球的顿时退到了一边,下楼后罗对教主夫人的无敌可爱外貌赞美不断,罗各种YY的时候我更加思念起了在西安等我的青儿。走出比赛现场的时 候,突然看见哈尔滨的天空如此的蓝,想拍照发现数码相机在宾馆,不过心情大好。离开会场去阿里巴巴讲座的时候我们把XDU GreenWolf的牌子也给带走了。之后就是无聊的阿里巴巴讲座。讲座完了到房间的时候,QINZ告诉我们获得了铜牌,那时心里还是有种不真实的感觉, 要知道****,世界无敌的QINZ大牛在08年第一次可是打酱油去的啊~~而我们直接拿了铜牌。知道拿了铜牌后,心里突然安宁了很多,那么久那么久了, 被各种比赛各种题目虐着,总算凭借各种实力各种爆发加攒了很久的RP,得到了这块铜牌。
     晚上我们先去参加了下颁奖典礼,因为丁丁的超级爆发,我们队自然是他去领奖,我在下面边拍视频,边给青,给妈妈打电话。突然发现ACM的颁奖典礼居然搞得 和时尚秀一样,各种美女热舞走秀。。。丁丁下来后没多久我们就离开了会场,那些拿银牌金牌的大牛也就不看了,对于大牛,第一天在三楼就餐的时候看到一个体 型和QINZ相似的人过来CALL  QINZ
**   **  **(**内容你们懂的) **很愤怒,呵呵,此人离开后,QINZ告诉我们他就是核武。。。。。。什么,核武。。。福大核武,景润后人?福大核武,景润后人?。。。心里一阵激动, 见到大牛了~~~~~~\(- -)/~~~。。。可是心里的欣喜没持续多久,突然记起最近一直和QINZ在一起,一个比核武更牛的大牛。。心里一阵无奈,唉。。。不过总算是见到了我一 直光顾其博客的AKEYCOIN。。。。第二天看见他的时候偷拍了他。。颁奖晚会没有进行到给金牌和银牌队伍颁奖的时候我们就离开了,夜色下,我们三个在 微冷的空气中享受着获得铜牌的愉悦,期待YY着最好今年再去下成都比赛,一起去了八荒通神酒店,到了阿里巴巴的会议室,直接去和总裁面试了下。对于面试, 实在没啥好讲,我让面试我的人给我提了下我要去阿里巴巴的话今后更多的往哪发展,顺便问他研究生和本科生在阿里巴巴招人的时候的偏好,对于后者,面试者告 诉我,看实力,对于硕士和本科生没啥区别。在离开酒店的时候,我们在6楼,电梯门一开,里面出来三个人,也是来面试的,看着眼前那个姑娘,我们三个人顿时 将视线锁定在了她可爱的脸上,显然对于三个陌生人邪恶的注视那女子也是比较疑惑。正当那女孩子要离开的时候,罗最先发问问她是不是蚊子,问了两次,那个可 爱的女孩才反应过来,瞪着大大的眼睛说是,然后看了下我胸前比赛的牌子:西安电子科技大学。顿时明白过来,她的队友问她:怎么你们认识?她说恩。哈哈,我 们果断给教主夫人请安,然后求得合影两张~~在见过headacher的may后,终于亲眼见到了wudired的女友,心里激动万分,可是我发现罗更加 激动,这是他见到美女的通常反应,脸红的兴奋,也许是拿了铜牌的兴奋,离开酒店我顾不得长途电话费给西电现任ACM教主wudired打去了调戏电话~~ 夜风习习,就这样我们漫步在德华的校园,就这样回到了宾馆。洗澡,睡觉,没有很多的感觉,和青分享了下心里的温暖,沉沉睡去。

        今天早上我起来后DOTA  1V5又被虐了N次,同样QINZ大牛再次威武的暴走,虐了电脑N次。就这样没吃早饭,中饭,下午到了火车站后在肯德基吃了点后就开始在哈尔滨市中心逛。 实在佩服我们居然拎了那么多行李和水,逛来逛去,就这样,现在下铺三个看着动漫,我们坐着回郑州的火车一路继续咪咪忽忽的回去。

    到了郑州火车站后,我们都很郁闷为什么火车不晚点- -!!下车后去了麦当劳跟着乙丁大牛吃东西,跟着丁丁走,有东西吃,吃完后去了网吧打了一小时的DOTA后就在火车站等车。下了西安后,QINZ又神秘的 去约会了,罗和丁丁坐了五龙专线回学校,而我拎着笔记本,背着大包,去了边家村米旗店给青买了蛋糕。哈尔滨就这样子不经意间过去了。
9月29日到 达西安,生日快乐,我的青儿~

Category: 开始的开始 | Tags:

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com