2012-C03-team1

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

= Contest Ranklist =
{{{
#!html
<table border="0">
<tbody><tr>
<th><strong><u>Rank</u></strong></th><th><strong><u>Name</u></strong></th><th><strong><u>Solved</u></strong></th><th><strong><u>Time</u></strong></th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>A</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>B</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>C</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>D</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>E</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>F</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>G</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>H</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>I</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>J</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>K</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>L</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>Total att/solv</th>
</tr>
<tr>
<td></td><td></td><td></td><td></td>
</tr>
<tr>
<td>1</td><td>team1</td><td>10</td><td>1158</td><td>1/109</td><td>2/20</td><td>3/205</td><td>1/144</td><td>1/196</td><td>1/129</td><td>2/158</td><td>1/57</td><td>0/--</td><td>1/36</td><td>0/--</td><td>1/24</td><td>14/10</td>
</tr>
<tr>
<td>2</td><td>team5</td><td>10</td><td>1235</td><td>1/100</td><td>1/13</td><td>1/228</td><td>1/97</td><td>1/145</td><td>3/169</td><td>3/294</td><td>1/48</td><td>0/--</td><td>1/25</td><td>0/--</td><td>1/36</td><td>14/10</td>
</tr>
<tr>
<td>3</td><td>team2</td><td>8</td><td>1010</td><td>2/175</td><td>2/40</td><td>2/--</td><td>1/197</td><td>3/--</td><td>4/129</td><td>1/203</td><td>1/34</td><td>0/--</td><td>1/121</td><td>0/--</td><td>1/11</td><td>18/8</td>
</tr>
<tr>
<td>4</td><td>team3</td><td>8</td><td>1011</td><td>1/207</td><td>1/11</td><td>1/--</td><td>1/178</td><td>3/195</td><td>1/85</td><td>5/--</td><td>1/72</td><td>0/--</td><td>1/76</td><td>0/--</td><td>5/67</td><td>20/8</td>
</tr>
<tr>
<td>5</td><td>NuclearFusion</td><td>8</td><td>1185</td><td>1/229</td><td>2/42</td><td>0/--</td><td>1/224</td><td>1/282</td><td>1/70</td><td>0/--</td><td>2/129</td><td>0/--</td><td>2/137</td><td>0/--</td><td>1/12</td><td>11/8</td>
</tr>
<tr>
<td>6</td><td>team6</td><td>7</td><td>930</td><td>2/191</td><td>1/35</td><td>0/--</td><td>1/228</td><td>1/--</td><td>1/78</td><td>0/--</td><td>1/73</td><td>0/--</td><td>4/233</td><td>0/--</td><td>1/12</td><td>12/7</td>
</tr>
<tr>
<th><strong><u>Rank</u></strong></th><th><strong><u>Name</u></strong></th><th><strong><u>Solved</u></strong></th><th><strong><u>Time</u></strong></th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>A</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>B</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>C</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>D</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>E</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>F</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>G</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>H</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>I</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>J</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>K</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>&nbsp;&nbsp;&nbsp;&nbsp;<strong><u>L</u></strong>&nbsp;&nbsp;&nbsp;&nbsp;</th><th>Total att/solv</th>
</tr>
<tr>
<td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td>Submitted/1st Yes/Total Yes</td><td></td><td></td><td>8/100/6</td><td>9/11/6</td><td>7/205/2</td><td>6/97/6</td><td>10/145/4</td><td>11/70/6</td><td>11/158/3</td><td>7/34/6</td><td>0/--/0</td><td>10/25/6</td><td>0/--/0</td><td>10/11/6</td><td>89/51</td>
</tr>
</tbody></table>
}}}

{{{
今天做题顺序上出了很大问题,很快刷完水题B L J H后,
按编程难度和代码量,优先写的应该是F和G(事实上花费时间分别是20min和14min),
结果我们选择了先敲I题(赛后才过)然后A题(花费40min)
因此8题水题结束时我们罚时很高,而罚时主要是因为出题慢造成的。

幸好延续我们队的良好配合能力优势,
zYc及时地看出了E题做法,和MJ讨论后直接裸拍过了,
在MJ拍E题时,我也看出了MJ的C题DP少考虑的转移情况,9分钟改完后过了。
后来的100分钟真是怨念。。。明明是不难的DP题,我们真的没想出做法来,这是真的想不出。。。
接下来有请MJ,刷完TC的所有DP题。。。

PS:G题真的是14min过的,除去输入输出,处理代码就10行,for循环就5行。请看底部附录。。。
——prowindy

}}}
{{{
这场我自己的状态不是很好...之前做过一题shi哥的题目和I题很像,事实上dp的方式也确实差不多,就是多了一点东西。但是最后怎么也想不出来。
其实有点类似的dp我是见过的。大致就是从答案的形式,再取其中的参数进行dp。第一次见就是在GDOI的赛场上,当时就很神勇地切掉了-.-,算是OI正式赛中自己现场过掉的题里面最少人过的题。
大概昨天晚上没睡好吧,-_-,今天做题的时候有点昏昏沉沉的。
队伍的配合方面,还是挺对的。坚持多开策略。卡掉的题一时半会没思路的就果断去做其它题。等把有思路的题都完成得七七八八了,再跑回来拍卡掉的题。比如今天的C。
当然,这种多开策略是建立在有可做题以及手速的基础上的,而可做题的多少,其实还是跟个人能力紧密相关。
我们队基本上都比较全能,我觉得这样子很好,有人卡题的时候,不会出现某些题只有那个人能够想的情况。
个人感觉分开负责的范畴并不是特别好,这样很容易出现一个人卡题,别的人帮不上忙的惨剧。
在自己平常刷题的时候,一定要注意全面一点,不要说这种题不是我负责的就不去做,不去学。

——CWJ


全面这点很有道理,现在队里的情况就是,预计比赛现场有3个队以上过的题,都是我们三个人都能做的,
也就是,基本不会卡应该出的题。
而剩下的决胜题,比如真用到了kd_tree还是带花树还是某种博弈的算法,队里的确只有个别人能搞,
这时也没法要求三个人为了避免这种情况而在平时一起把这些都掌握,
平时的个人学习,我们还是该商量一下逐块强攻,毕竟精力有限,精胜于全。

对表现的感觉就是:对队友很有信心,基本什么题都能联合搞定,接下来还要加油!

——prowindy
}}}

{{{
一开始敲了最简单的B题,有一个地方<=敲错成<了,幸好先打印了,及时发现了,开局时UVA是挂的如果等返回结果再改罚时会大不少吧

我觉得读题还是要仔细,A题题目略长还有很多矩形图,以为不可做就先pass了,但其实时很简单的模拟.

所以我觉得,还是要多看几题后再决定做哪题,有些题一看就知道怎么做,但是代码量大不容易Debug的题要往后放,把先做容易的题...

最后100分钟还剩I和K,MJ和Prowindy想I,我想K,K题的判定和构造方法想想简单,但是要变成代码很困难T_T,于是就放弃了。

比赛时配合感觉比较顺利,基本上除了C题没怎么卡。

——zYc
}}}



{{{
附录:
        sort(node,node+N,cmp);
        int ans = 0,L,R;
        for (i=0;i<N;){
            L = node[i].r,R = node[i].d;
            for (j=i+1;j<N;j++){
                A = node[j].r-j+i, B = node[j].d-j+i;
                L = max(L,A), R = min(R,B);
                if (L>R) break;
            }
            ans++, i = j;
        }
}}}

Contest Ranklist

RankNameSolvedTime    A        B        C        D        E        F        G        H        I        J        K        L    Total att/solv
1team11011581/1092/203/2051/1441/1961/1292/1581/570/--1/360/--1/2414/10
2team51012351/1001/131/2281/971/1453/1693/2941/480/--1/250/--1/3614/10
3team2810102/1752/402/--1/1973/--4/1291/2031/340/--1/1210/--1/1118/8
4team3810111/2071/111/--1/1783/1951/855/--1/720/--1/760/--5/6720/8
5NuclearFusion811851/2292/420/--1/2241/2821/700/--2/1290/--2/1370/--1/1211/8
6team679302/1911/350/--1/2281/--1/780/--1/730/--4/2330/--1/1212/7
RankNameSolvedTime    A        B        C        D        E        F        G        H        I        J        K        L    Total att/solv
Submitted/1st Yes/Total Yes8/100/69/11/67/205/26/97/610/145/411/70/611/158/37/34/60/--/010/25/60/--/010/11/689/51
今天做题顺序上出了很大问题,很快刷完水题B L J H后,
按编程难度和代码量,优先写的应该是F和G(事实上花费时间分别是20min和14min),
结果我们选择了先敲I题(赛后才过)然后A题(花费40min)
因此8题水题结束时我们罚时很高,而罚时主要是因为出题慢造成的。
幸好延续我们队的良好配合能力优势,
zYc及时地看出了E题做法,和MJ讨论后直接裸拍过了,
在MJ拍E题时,我也看出了MJ的C题DP少考虑的转移情况,9分钟改完后过了。
后来的100分钟真是怨念。。。明明是不难的DP题,我们真的没想出做法来,这是真的想不出。。。
接下来有请MJ,刷完TC的所有DP题。。。
PS:G题真的是14min过的,除去输入输出,处理代码就10行,for循环就5行。请看底部附录。。。
——prowindy
这场我自己的状态不是很好...之前做过一题shi哥的题目和I题很像,事实上dp的方式也确实差不多,就是多了一点东西。但是最后怎么也想不出来。
其实有点类似的dp我是见过的。大致就是从答案的形式,再取其中的参数进行dp。第一次见就是在GDOI的赛场上,当时就很神勇地切掉了-.-,算是OI正式赛中自己现场过掉的题里面最少人过的题。
大概昨天晚上没睡好吧,-_-,今天做题的时候有点昏昏沉沉的。
队伍的配合方面,还是挺对的。坚持多开策略。卡掉的题一时半会没思路的就果断去做其它题。等把有思路的题都完成得七七八八了,再跑回来拍卡掉的题。比如今天的C。
当然,这种多开策略是建立在有可做题以及手速的基础上的,而可做题的多少,其实还是跟个人能力紧密相关。
我们队基本上都比较全能,我觉得这样子很好,有人卡题的时候,不会出现某些题只有那个人能够想的情况。
个人感觉分开负责的范畴并不是特别好,这样很容易出现一个人卡题,别的人帮不上忙的惨剧。
在自己平常刷题的时候,一定要注意全面一点,不要说这种题不是我负责的就不去做,不去学。
——CWJ
全面这点很有道理,现在队里的情况就是,预计比赛现场有3个队以上过的题,都是我们三个人都能做的,
也就是,基本不会卡应该出的题。
而剩下的决胜题,比如真用到了kd_tree还是带花树还是某种博弈的算法,队里的确只有个别人能搞,
这时也没法要求三个人为了避免这种情况而在平时一起把这些都掌握,
平时的个人学习,我们还是该商量一下逐块强攻,毕竟精力有限,精胜于全。
对表现的感觉就是:对队友很有信心,基本什么题都能联合搞定,接下来还要加油!
——prowindy
一开始敲了最简单的B题,有一个地方<=敲错成<了,幸好先打印了,及时发现了,开局时UVA是挂的如果等返回结果再改罚时会大不少吧
我觉得读题还是要仔细,A题题目略长还有很多矩形图,以为不可做就先pass了,但其实时很简单的模拟.
所以我觉得,还是要多看几题后再决定做哪题,有些题一看就知道怎么做,但是代码量大不容易Debug的题要往后放,把先做容易的题...
最后100分钟还剩I和K,MJ和Prowindy想I,我想K,K题的判定和构造方法想想简单,但是要变成代码很困难T_T,于是就放弃了。
比赛时配合感觉比较顺利,基本上除了C题没怎么卡。
——zYc
附录:
        sort(node,node+N,cmp);
        int ans = 0,L,R;
        for (i=0;i<N;){
            L = node[i].r,R = node[i].d;
            for (j=i+1;j<N;j++){
                A = node[j].r-j+i, B = node[j].d-j+i;
                L = max(L,A), R = min(R,B);
                if (L>R) break;
            }
            ans++, i = j;
        }
附加文件