我也有五月病

我意识到自己的懒了,上一篇的生活小记录竟然还是整整一个月前写的。

在这一个月内,发生了很多事情,我只能默默感叹生活里的剧情实在是比电视剧里的剧情狗血的多,也或许是我不怎么看电视剧的缘故吧。

我有时候会想,5月是不是每年中最繁忙的月份,也不知道是哪些因素给我带来的紧张和压迫感,以至于有时候突然觉得呼吸都变得很困难,像是有个人在后面掐住了我的脖子一样。

我反感现在生活的不规律,和我之前想的有一定的差别,虽有相似的部分,但剩余的不相似则是我讨厌最近生活的一个原因。

好吧好吧,我需要静下心来,想想该怎么怎么利用好时间。也不知从什么时候开始,我染上了发呆的毛病,有时候就傻傻的坐在哪里,眼睛盯着一样东西看,可我完全没把心放在那儿,等我回过神来的时候,就感觉像是穿越了很长时间来到这里一样。我记得高中的时候,某徐姓同桌曾经和我说过他的经历:有次他一个人在家,躺在床上,花了几个小时,就傻呆呆的看着房间的天花板,啥也没干。我想,再这么下去,我也要到这种境界了。

杭州炎热的天气好似没有一个尽头,眼看着夏天就要来了,或许可以说已经来了。我想,夏天唯一能让我高兴起来的东西想必只有空调和西瓜了,嗯,如果只能选一样,空调?不,我要西瓜!

我能想象到暑假的生活了,早上早早的去赶公交,然后花2个小时左右到城站那边的实习公司打酱油(弱弱的求杭州的地铁赶紧造啊!),然后晚上再带着疲惫坐回小和山,其实这生活也还不错,只是我想吐槽一下小和山到城站的距离,还有杭州这要命的路况。

自上周金华回来之后,我本以为那台被我折腾了快3年的本子还能再继续撑一段时间,其间不知经历了几次大修,换主板,换硬盘什么的都有过,哎,终究它还是没挺过去,无奈无奈,只能厚着脸皮跟父母要钱去买了新本子。其实我也是个算是凑合的人,能用的东西我基本不会去换新的东西来替代,一直凑合着用,怕浪费钱,毕竟离彻底的经济独立还有一定的距离,能省的地方还是尽量省一点。

最后推荐一篇小文章:You Have To Get Good Before You Get Better 

然后继续迎接前方未知的生活。

QT SDK4.8加载mysql驱动

应该有很多人和我一样,在这个蛋疼的问题上纠结了很久 = = 因为能搜到的信息都是老版本的信息(多是2009年左右的信息),都没什么用。

直接切入正题。

先说下【我的环境】win7 + QTSDK4.8 + mysql 5.5 + vs2010(编译器)

 

我的QT路径为:E:\QtSDK\Desktop\Qt\4.8.0\msvc2010

mysql路径为:E:\Sever_AMD\mysql\MySQL Server 5.5

阅读更多 »

ZOJ 3606 Lazy Salesgirl

【ZOJ 3606】http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4709

今年浙江省省赛的G题,比赛的最后时刻是我去上去敲的,赛后才明白有个地方写挫了,以至于到比赛结束还没调好= =真见鬼。

【题意】小女孩卖面包,有100000个顾客要来买(不会同一个时刻来两个顾客),现在有一个时间w,表示如果相邻两个顾客来的时间差严格大于w的话,小女孩在这个时间内会睡着,而新来的那个顾客不会买,只会把小女孩叫醒(既重新开始计算w),还有一点就是,第k个顾客买的面包数量为(k-1)%3+1,也就是1,2,3,1,2,3….这样的循环,现在让你求平均卖出价(卖得面包的总价/卖给的顾客数)最大的情况下的w最小 = = 描述有点绕,还是不太明白的建议看下原题目的描述..

【解法】

线段树的每个节点维护以下值:①cnt:线段内已经插入点的个数 ②sum[4]:sum[i]表示线段内第一个顾客买的面包数为i情况下该线段的总价

 

1.先对所有顾客按到来的时间排个序.

2.再按相邻顾客之间的时间差(第1个顾客和时间0相减)升序排序.

3.把那些相同的w的点插入到线段树中(更新到底)

4.统计下当前的w和平均价格,更新答案即可.

 

#define N 100002
#define M 4
#define lson (id<<1)
#define rson (id<<1|1)
struct Node{
	int l,r;
	int cnt;
	ll sum[M];
}seg[N<<2];

void build(int id,int l,int r){
	seg[id].l=l;
	seg[id].r=r;
	seg[id].cnt=0;
	for(int i=0;i<M;i++)
		seg[id].sum[i]=0;
	if(l==r)
		return;
	int mid=(l+r)>>1;
	build(lson,l,mid);
	build(rson,mid+1,r);
}

void push_up(int id){
	seg[id].cnt=seg[lson].cnt+seg[rson].cnt;
	int num=seg[lson].cnt;
	num%=3;
	for(int i=1;i<M;i++){
		int j=i+num;
		j=(j-1)%3+1;
		seg[id].sum[i]=seg[lson].sum[i]+seg[rson].sum[j];
	}
}

void update(int id,int pos,ll w){
	if(seg[id].l==pos && seg[id].r==pos){
		seg[id].cnt++;
		for(int i=0;i<M;i++)
			seg[id].sum[i]=w*i;
		return;
	}
	int mid=(seg[id].l+seg[id].r)>>1;
	if(pos<=mid)
		update(lson,pos,w);
	else
		update(rson,pos,w);
	push_up(id);
}

int n;
struct Person{
	int p,t;
	friend bool operator<(const Person& a,const Person& b){
		return a.t<b.t;
	}
}person[N];

struct Cost{
	int oldid;
	int w;
	friend bool operator<(const Cost& a,const Cost& b){
		return a.w<b.w;
	}
}cost[N];

int main() {
#ifndef	ONLINE_JUDGE
	freopen("in.txt", "r", stdin);
	freopen("out.txt", "w", stdout);
#endif

	int cas,pcas=1;
	scanf("%d",&cas);
	while (scanf("%d",&n) != EOF){
		person[0].p=person[0].t=0;
		for(int i=1;i<=n;i++)
			scanf("%d",&person[i].p);
		for(int i=1;i<=n;i++)
			scanf("%d",&person[i].t);
		sort(person,person+n+1);
		for(int i=1;i<=n;i++){
			cost[i].oldid=i;
			cost[i].w=person[i].t-person[i-1].t;
		}
		sort(cost+1,cost+1+n);

		//segment tree
		double ans1=inf,ans2=0;
		int l=1,r,total=0;
		build(1,1,n);

		while(l<=n){
			r=l;
			while(r<=n && cost[r].w==cost[l].w){
				int id=cost[r].oldid;
				update(1,id,person[id].p);
				total++;
				r++;
			}

			double tmp1=cost[l].w;
			double tmp2=(double)seg[1].sum[1]/total;

			if(tmp2>ans2){
				ans2=tmp2;
				ans1=tmp1;
			}
			else if(tmp2==ans2)
				ans1=min(ans1,tmp1);
			l=r;
		}
		printf("%.6lf %.6lf\n",ans1,ans2);
	}
	return 0;
}

省赛及其之后

对于省赛,对于这块金牌,我感觉这是我们三个人组队以来配合的比较好的一次,过第7题的时候我甚至激动的叫了起来,虽然最后我上去敲的时候留下了一个大遗憾。最后的ranklist,队名:lancet

这是叶神的最后一场比赛,组队已经超过半年了,一起打了亚洲赛和省赛,感情很深,希望他退役后在其他领域有更加神的表现。

以上就是简短的省赛印象。

 

之后的话,还是有很多事情要做的,要去把泰坦尼克看了,这几天的话把简历弄好,试着去投几家【一副很想实习的样子 =。=】

感悟的话就不多写了,做好的眼下的每一件事!加油!

 

3月份的尾巴,是白羊座

Slow it down, make it stop.

Or else my heart is going to pop.

那些最近发生的事情:

1.自上周去了KTV之后,咳嗽断断续续,后来去医务室看了下,被诊断为“上呼吸道感染”,吃了2天的药,现在好多了,目测又可以去KTV了。我们寝室这伙人,开学7周了,已经去了4次KTV了,这个频繁度还是很高的。没办法,团购的价格真的好便宜,上周去的那家,8小时28块钱,还送啤酒爆米花,可惜设备一般般,不过这个价格实在是诱人。

 

2.这周把驾校的理论考课程上完了,为什么世界上会有这么水的东西?每次都是去刷卡,去网吧稍微玩一会儿,然后马上刷卡回来了,去上课的大学生基本都是小和山高教区的人,以至于213这种公交车根本挤不上去。每次一刷卡结束,门口哗啦啦的出现一大波黄鱼车,空气里充斥着“小和山,石马,5块1个!”的喊叫声。

 

3.上周打完了最后一场校赛,对自己的表现还是有点失望的,悲催的是比赛时间和党校结业考试冲突了,所以做了一个半小时之后飞奔去考试了,回来之后脑子直接混乱了,敲代码的时候手心全都是汗,真不喜欢那种感觉。

简单的回顾一下3次校赛:

2010年:那个学期刚刚接触ACM,只会做一些简单的水题,算法什么的根本不知为何物。比赛的时候就速度水了2道能水的,然后发呆至结束。我只能说幸运的是,还混了个三等奖,当时心里就下了个决心,明年杀回来。

2011年:印象不是很深,但记得很清楚的一点的是,比赛的时候特别紧张,可能是广子哥坐我前面的缘故吧,也可能是其他原因。我只能说幸运还真是来的时候,968ms/1000ms过了那道一辈子都不会忘记的标记bfs,当时完全没想到搜,而是用优化的背包过的!看到Accepted的时候心都要跳出来了,我想这就是这个游戏的魅力所在吧。最后,依靠这个运气,拿了个一等奖。

2012年:相比于刚刚接触这个游戏的我,现在的我明显成熟了许多,能控制好自己的情绪,不会轻易的丧失信心,会冷静的思考,虽然混到了一等奖,但很清楚自己要做的,还有很多。

下个月14号就是省赛啦,这段时间要加紧训练了,争取把那份荣誉再拿回来,不再取什么文艺的队名了,不再取什么2B的队名了,队名取得好,那就是成功了一半!

 

4.安排好了4月份的观影计划,Titanic->Battleship->黄金大劫案,目测3场总票价在200元左右,所以我每天在三餐上要省个至少4块多,嗯,为了看电影,豁出去了,有意向的就报名组团啦!

 

5.纠结于简历的事情(其实我是想参加一次那个简历大赛啦,4月13号就到期了,得赶紧了! = =),不过写简历真的是件麻烦的事情啊,过几天准备和人交流交流。

 

6.天气再坏,心情再差,每天别忘记给自己一个笑脸,难熬的日子终究会过去。

ZOJ 3582 Back to the Past

【ZOJ 3582】http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3582

【题意】有两排灯,每排50个,每天每个灯都有p的概率变亮,变亮之后就不考虑此灯,当每排都有>=m个灯亮时问题结束,求达到这个条件的天数的期望.

【想法】

dp[i][j]表示两排分别亮了i盏和j盏灯的情况下,到问题结束的期望天数.

假设现在这天第一排亮了a盏 ,第二排亮了b盏

那么这个概率为

所以

然后,把等式右边的dp[i][j]移到左边,记忆化搜索即可.

阅读更多 »

短期唠叨

我都不知道该以什么开头了,前段时间连绵不绝的雨天弄得自己没什么精神,好像大多时间都在发呆,想些什么都不知道,有时还翘了课,窝在寝室看电影。

这周还是应该收收心了,把落下的QT和JavaEE的部分内容给补上。

QT虽然看起来有点累,不过我时刻提醒自己,既然已经开始了,就应该好好的坚持下去。

 

简单的写下自己近期的计划和感慨:

阅读更多 »

在变换的生命里,岁月,原是最大的小偷。

 

明天就开学了。

这个学期应该算说是超级空闲的,不上课的时间很多,1到8周的情况就是周2到周5白天都没课,好吧,可以自己学点东西了。当然了,ACM这条路还是会继续走下去的,兴趣这个东西,来劲了就不太容易放弃了。

想想自己不会的不懂的还有很多,所以说,这个学期好好利用的话,对于自己的成长还是有很大的帮助的。

 

今天下午,小奇打电话给我,问我是不是要考研,考的话顺便帮我去占个位子。对于考研的问题,我其实也想了蛮久的,之前想法也很多。最后的想法还是不考研了,原因的话,我有点怕失败,怕累,就这样,而且很早就想去找份工作,体会自己赚钱的辛酸和甜蜜。这点@一灰也应该想的和我一样的吧。

 

今天看到了小媛同学的计划(http://www.xysay.com/archives/122),感觉开学前给自己下一个计划的单子是很好的想法,到学期末的时候,你知道自己这个学期干了点什么,又有哪些你没干或者没完成。而我的计划列表,可能太繁杂了,应该好好整理一下,这里就不列出来了。

 

由于长时间饱受垃圾耳机的折磨,前几天下了狠心入手了ATH-CKM55。长篇大论的评价也就不写了,简单的说,这耳机真是不错,我很满意,解析度很好,中高音也不错,对于我这个欧美控来说,真是个不2的选择。现在还在慢慢的煲中,听歌真是一种享受。

 

标题和配图来自于《岁月神偷》,昨天被它感动到了,拍的太煽情了吧。很喜欢“在变换的生命里,岁月,原是最大的小偷。”这句话。

谁能折腾的过岁月?还不如趁年小,好好的做自己想做的事情。岁月偷不走的,是美好的回忆。

 

新学期加油。

 

Hdu 2513 DP

【Hdu 2513】http://acm.hdu.edu.cn/showproblem.php?pid=2513
【题意】给你20*20的格子(一个蛋糕),有些格子上有樱桃,让你把蛋糕切成若干块,每块是矩形或者正方形,每块蛋糕上有且只有一个樱桃,求总的切的长度最小。
【想法】我的想法就是用一个状态dp[i][j][x][y]表示切(i,j)到(i+x-1,j+y-1)这个矩形的最小值。然后分情况讨论这个矩形。
1.矩形内没有樱桃
2.矩形内只有一个樱桃
3.矩形是1xN或者Nx1的规模
4.其他情况

其实有几种情况可以合起来讨论的。
第4中情况只要枚举切行和切列的情况就可以了,我觉得要注意的地方就是切行和切列的时候要保证2块蛋糕上分别至少有1个樱桃,这样切才是合法的。

最后很容易错的地方就是x,y这两重循环要写在最外面。

 

int n,m;
bool cake[N][N];
int dp[N][N][N][N];//dp[i][j][a][b]=> min (i,j)->(i+a-1,j+b-1)

int mycount(int x1,int y1,int x2,int y2){
	int cnt=0;
	for(int i=x1;i<=x2;i++){
		for(int j=y1;j<=y2;j++){
			if(cake[i][j])
				cnt++;
		}
	}

	return cnt;
}

inline void zy(int &a,int b){
	if(b<a)
		a=b;
}

int main()
{
#ifndef ONLINE_JUDGE
	freopen("in.txt","r",stdin);
	freopen("out.txt","w",stdout);
#endif

	int cas,pcas=1;
	int x,y,ii,jj;

	while(scanf("%d%d%d",&n,&m,&cas)!=EOF){
		memset(cake,false,sizeof(cake));
		memset(dp,127,sizeof(dp));

		for(int i=0;i<cas;i++){
			scanf("%d%d",&x,&y);
			cake[x][y]=true;
		}

		for(int x=1;x<=n;x++){
			for(int y=1;y<=m;y++){
				for(int i=1;i+x-1<=n;i++){
					for(int j=1;j+y-1<=m;j++){

						ii=i+x-1;
						jj=j+y-1;
						int cnt=mycount(i,j,ii,jj);

						if(i==ii && j==jj)
							dp[i][j][x][y]=0;
						else if(cnt==0)
							dp[i][j][x][y]=0;
						else if(cnt==1)
							dp[i][j][x][y]=0;
						else if(i==ii || j==jj)
							dp[i][j][x][y]=cnt-1;
						else{

							//切行
							for(int row=i;row<ii;row++){
								if(mycount(i,j,row,jj)>=1 && mycount(row+1,j,ii,jj)>=1){

									zy(dp[i][j][x][y],
										dp[i][j][row-i+1][y]+dp[row+1][j][ii-(row+1)+1][y]+y);
								}
							}
							//切列
							for(int column=j;column<jj;column++)
								if(mycount(i,j,ii,column)>=1 && mycount(i,column+1,ii,jj)>=1){

									zy(dp[i][j][x][y],
										dp[i][j][x][column-j+1]+dp[i][column+1][x][jj-(column+1)+1]+x);
								}
						}
					}
				}
			}
		}
		printf("Case %d: %d\n",pcas++,dp[1][1][n][m]);
	}
	return 0;
}

听说明年的今天已经是新纪元的第X天了

好久没有写生活的文章了,不能再这么懒下去了。

1.这学期在圣诞前夕落下了帷幕,由于16周周五没有课,所以比一些人算是早一天结束了学期。个人觉得这个学期过的有点小难受。原因也有好多。

首先,比较偏文的课,点名了说,软件工程,感觉上课听了啥下课就立马就忘光了,学期过半之后糊糊涂涂的跟着别人在做那个软工的大作业,虽然学到了点什么,但比起老师上课的,感觉还是差了好多,下周开始好好复习了;然后就是期末的各种大型实验了,Delphi,OS,Linux:Delphi我是花了大概3天弄好的,虽然弄的不是很完善,但大致样子是出来了,验收的时候还是有点小紧张的,生怕老师问到不完善的那几个部分,结果验收过程还算顺利,老师只问了一个很简单的问题;OS的大型实验,我偷懒了,选了比较简单的那个做,也就是分析inode.c的功能和作用,写个报告就好,验收的时候排队等了好久,验收之前比Delphi验收还紧张,结果也还算顺利,就这么水过了。那么,接下来到考试的这段时间,就好好复习软工和OS了,顺带做一点Linux大型实验。

阅读更多 »