校运会@2010
喜欢这样蓝蓝的天,
喜欢这样无尽的跑道,
喜欢一大群朋友聚在一起,一起欢笑,
喜欢这样的五班.
有两个关键点:
将整个平面图看作一个图,然后再将栏杆标记为不能走就ok了
两次bfs来做flood fill?不用的,将两个起点直接放到队列里就可以了(不就是两次bfs么= =||),不过这样做可以减少很多代码量
下面是令我傻了3天的地方:
procedure flood_fill; var i:integer; temp:node; begin while front<tail do begin front:=front+1; for i:=1 to 4 do begin temp:=queue[front]; inc(temp[1],d[i,1]); inc(temp[2],d[i,2]); if (fence[temp[1],temp[2]])and(not visited[temp[1],temp[2]]) then begin inc(tail); queue[tail]:=temp; count[tail]:=count[front]+1; visited[temp[1],temp[2]]:=true; end; end; end; end;procedure flood_fill; var i:integer; temp:node; begin while front<=tail do begin front:=front+1; for i:=1 to 4 do begin temp:=queue[front]; inc(temp[1],d[i,1]); inc(temp[2],d[i,2]); if (fence[temp[1],temp[2]])and(not visited[temp[1],temp[2]]) then begin inc(tail); queue[tail]:=temp; count[tail]:=count[front]+1; visited[temp[1],temp[2]]:=true; end; end; end; end;
仔细观察这两个代码的不同点......
对了,就是跳出while的条件不同,因为我将front置为0,然后在每次提取队首时再inc(front),这样和置为1看似没什么不同,但是却出现了很大的问题:
后一段代码会爆掉的...
就因为这里调了我两天.orz,细节很重要!看来有必要去复习下模版了.
顺带鄙视下一些水人......现在真是越来越水了.
离复赛还有21天
| 46 | 李理华 | 男 | 江门市第一中学 | C | 78 |
| 28 | 何柏超 | 男 | 江门市第一中学 | PASCAL | 69 |
| 63 | 莫嘉明 | 男 | 新会第一中学 | C | 66 |
| 20 | 陈汶铎 | 男 | 台山一中 | PASCAL | 56 |
| 59 | 关洪斌 | 男 | 新会第一中学 | C | 50.5 |
| 56 | 冯贤乐 | 男 | 新会第一中学 | C | 50 |
| 62 | 龙泉 | 男 | 新会第一中学 | C | 49.5 |
| 43 | 王一同 | 男 | 开侨中学 | C++ | 48.5 |
| 2 | 颜裕丰 | 男 | 台山一中 | PASCAL | 46.5 |
| 51 | 徐伟钊 | 男 | 新会第一中学 | C | 46 |
| 60 | 薛钊鸿 | 男 | 新会第一中学 | C | 46 |
希望复赛有好成绩!
谢谢薛老师,黄老师,梁老师
还有谢谢5班的同学,谢谢花花,谢谢四人小组
最后特别感谢下赵同学强人,哈哈
这里简单总结说说最近几个星期的生活情况,orz
0.上星期初赛了
1.初赛成绩64.5(待确定),省分数线是42
2.开始准备复赛了
3.生物差点挂科,语文差点挂科,化学居然有70+(娟姐的0.7难度系数,算是合格,哈哈)
4.向粽子表白,被无视
5.努力复习文化科
6.准备校运会......的键子项目,被Miss Q忽略
7.教师节爱心方程被隔壁班拿去当班服图案
8.宿舍准备弄挑战书
9."我不希望未来某个日子见到我喜欢的人时候......"这句话火了,已经被拍录像留念
10.USACO做到2.3
11.模拟赛一再被东篱把酒黄昏后虐
12.回到gnome
13.1 把qq好友都删除了
13.2 赵同学主动加回我,原因是: 列表里不见了我
14. 讨厌回家程度*2
15. 认识了一些省外的朋友
16. 准备期中考试
17. 开始单词化日记
18. 开始有很多想法
19. 开始讨厌srl上的语文课
20. 在学口琴,被业余的老师命令要考试
这是总结么......
最近真的遇到很多牛人啊,努力吧~真的要实践那句被录像的话,不过能不能遇到喜欢的人呢?很难说,最近已经过得够呛的了,不想再去想有关爱情的事.
睡觉去,感谢台风带来一个平静的双休.
嗯,好久没写过题解了啊...
首先我们定义:
接着来一个证明:
证明如下:
然后我们可以将一棵二叉树分为3部分:根,左儿子,右儿子,
设共有n个结点,根有1个,左儿子有i个,则右儿子有n-i-1个,
则可以得到这棵有n个结点,k层深的二叉树有f[i,k-1]*f[n-i-1,k-1]个结点,(乘法原理)
再配合加法原理可以得知:
接着得到边界条件:
最后答案就是
为什么要这么减?看看f的定义是什么?
http://fayaa.com/code/view/14560/
真是一道好题目额~DP状态太多太神奇了......基本在2.3的题目都是靠看题解来想状态,很难做到独立构思一个完整的出来.
还有26天复赛了.