diff options
Diffstat (limited to 'sduacm2017')
-rw-r--r-- | sduacm2017/index.html | 50 | ||||
-rw-r--r-- | sduacm2017/junior/problems_j.pdf | bin | 0 -> 957171 bytes | |||
-rw-r--r-- | sduacm2017/junior/ranklist | 249 | ||||
-rw-r--r-- | sduacm2017/lec1/lec.pdf | bin | 0 -> 1393291 bytes | |||
-rw-r--r-- | sduacm2017/lec1/lec.tex | 440 | ||||
-rw-r--r-- | sduacm2017/lec1/zz.png | bin | 0 -> 3638 bytes | |||
-rw-r--r-- | sduacm2017/lec1/zz1.png | bin | 0 -> 9919 bytes | |||
-rw-r--r-- | sduacm2017/lec1/zz2.png | bin | 0 -> 864349 bytes | |||
-rw-r--r-- | sduacm2017/lec2/lec.pdf | bin | 0 -> 781277 bytes | |||
-rw-r--r-- | sduacm2017/lec2/lec.tex | 312 | ||||
-rw-r--r-- | sduacm2017/lec2/zz1.png | bin | 0 -> 9919 bytes | |||
-rw-r--r-- | sduacm2017/lec2/zz2.png | bin | 0 -> 353804 bytes | |||
-rw-r--r-- | sduacm2017/lec3/c1.png | bin | 0 -> 214300 bytes | |||
-rw-r--r-- | sduacm2017/lec3/c2.png | bin | 0 -> 296127 bytes | |||
-rw-r--r-- | sduacm2017/lec3/lec.pdf | bin | 0 -> 817559 bytes | |||
-rw-r--r-- | sduacm2017/lec3/lec.tex | 241 | ||||
-rw-r--r-- | sduacm2017/senior/problems_s.pdf | bin | 0 -> 1024819 bytes | |||
-rw-r--r-- | sduacm2017/senior/ranklist.html | 324 |
18 files changed, 1616 insertions, 0 deletions
diff --git a/sduacm2017/index.html b/sduacm2017/index.html new file mode 100644 index 0000000..0c41ad8 --- /dev/null +++ b/sduacm2017/index.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>11th SDU ACM/ICPC Contest</title> +<link rel="stylesheet" href="../common.css" type="text/css"></link> +</head> + +<body> +<table border="0" style="width:66%;margin:auto;"> + <tr> + <td class="CTitle" style="font-size:2em;"> + 11th SDU ACM/ICPC Contest @ SDU & chrisoft.org + </td> + </tr> + <tr class="TText"><td><br> + <h3>General Info</h3> + <a href="http://acm.sdu.edu.cn/blog/2017/02/28/About-11-th-SDU-ACMICPC-Contest/">Rules & Registeration info</a><br> + <a href="http://719daze.me/acmlab/17ACMSpringCompPlan.html"><s>more info</s></a>(insert "20" before "17")<br> + </td></tr> + <tr class="TText"><td><br> + <h3>Junior Division</h3> + <a href="junior/ranklist">Ranklist</a><br> + <a href="junior/problems_j.pdf">Problem set</a> + <p> + We are sorry about the erroneous statement of problem I. + </p> + <p> + The test data for problem G is weaker than what it should be. + All but one accepted solution submited during the countest should actually get TLE. + The rejudge, however, would not be reflected in the final result. + </p> + <p> + Again, we are terribly sorry for the confusion and inconvenience. + </p> + </td></tr> + <tr class="TText"><td><br> + <h3>Senior Division</h3> + <a href="senior/ranklist">Ranklist</a><br> + <a href="senior/problems_s.pdf">Problem set</a> + <p> + The statement of problem F has been updated. We are sorry for the inconvenience. + </p> + </td></tr> + <tr> + <td class="TText"><div align="center">Copyright Chrisoft 2017 <a href="../#about">About</a> Site Map</div></td> + </tr> +</table> +</body> +</html> diff --git a/sduacm2017/junior/problems_j.pdf b/sduacm2017/junior/problems_j.pdf Binary files differnew file mode 100644 index 0000000..961a342 --- /dev/null +++ b/sduacm2017/junior/problems_j.pdf diff --git a/sduacm2017/junior/ranklist b/sduacm2017/junior/ranklist new file mode 100644 index 0000000..7acd8ab --- /dev/null +++ b/sduacm2017/junior/ranklist @@ -0,0 +1,249 @@ +<HTML> +<HEAD> +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<TITLE>11th SDU ACM/ICPC Contest Junior Division</TITLE> +<style> +// based on +// $Id: standings.css 1983 2009-12-09 02:29:11Z boudreat $ +table { + border: 1px solid #ccc; + border-bottom: 0; + width: 52.7em; + margin-bottom: 2em; +} +body { + font-family: verdana, arial, tahoma, sans-serif; +} +table th { + text-align: center; + background: #247eca; + color: white; + padding: 0em; + border: outset 2px #eee8aa; +} +table td { + border-bottom: 1px solid #DDD; + padding: .0em .0em .0em .5em; +} +table tr td.rank { + background: transparent; + /*border: 2px outset #ffffff;*/ +} + +table tr.gold td.rank { + background: #f9d923 !important; +} +table tr.silver td.rank { + background: Silver !important; +} +table tr.bronze td.rank { + background: #c08e55 !important; +} +table tr.iron td.rank { + background: #6cf; +} +table td.name { + padding-left: 2em; +} +table th.name{ + padding-left: 3em; +} +table tr.even td { + background: #F7F7F7; +} +table tr td.r10 { + background: #e9d923; + border: 2px outset #DCDCDC; +} +table tr td.r9 { + background: #e1d963; + border: 2px outset #DCDCDC; +} +table tr td.r8 { + background: #DDD7AA; + border: 2px outset #DCDCDC; +} +table tr td.r7 { + background: #d2d2d2; + border: 2px outset #DCDCDC; +} +table tr td.r6 { + background: #DDCDBD; + border: 2px outset #DCDCDC; +} +table tr td.r5 { + background: #e6e6e6; + border: 2px outset #DCDCDC; +} +table tr td.r4 { + background: #eee; + border: 2px outset #f3f3f3; +} +table tr td.r3 { + background: #F7f7f7; + border: 2px outset #f7f7f7; +} +div.tail { + font-size: .8em; + color: #888; +//width: 65.875em; +width: 80%; + border: 1px solid #ccc; +margin-left: auto; +margin-right: auto; +} +span.right { + float: right; +} + +// troy additions +table tr.odd { + background-color: #0; color: black; +} +table tr.even { + background-color: #EEEEFF; color: black; +} +table tr td.yes { + background-color: #00ff00; color: black; + text-align: center; +} +table tr td.pending { + background-color: #ffff00; color: black; + text-align: center; +} +table tr td.no { + background-color: #ff0000; color: black; + text-align: center; +} +table tr td.center { + text-align: center; +} +table tr td.right { + text-align: right; +} + +</style> +<META HTTP-EQUIV="REFRESH" CONTENT="60;"> +<META HTTP-EQUIV="EXPIRES" CONTENT="0"> +<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> +<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> +</HEAD> +<BODY> +<font face="verdana, arial, helvetica" align="right"> +<center> +<h2>11th SDU ACM/ICPC Contest Junior Division</h2> +未签到的队伍未在此榜单中显示。 +<br> +<br> +</center> +</font> +<center> +<TABLE cellspacing="0"> +<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> <strong><u>A</u></strong> </th><th> <strong><u>B</u></strong> </th><th> <strong><u>C</u></strong> </th><th> <strong><u>D</u></strong> </th><th> <strong><u>E</u></strong> </th><th> <strong><u>F</u></strong> </th><th> <strong><u>G</u></strong> </th><th> <strong><u>H</u></strong> </th><th> <strong><u>I</u></strong> </th><th> <strong><u>J</u></strong> </th><th>Total att/solv</th> +</tr> +<tr class="even gold"> +<td class="rank">1</td><td>team5-我的青春acm物语果然有问题</td><td class="center">9</td><td class="right">878</td><td class="yes">1/64</td><td class="yes">1/196</td><td class="yes">1/32</td><td class="yes">3/120</td><td class="yes">1/35</td><td class="yes">2/52</td><td class="yes">1/225</td><td class="yes">2/84</td><td class="no">1/--</td><td class="yes">1/10</td><td>14/9</td> +</tr> +<tr class="odd gold"> +<td class="rank">2</td><td>team1-粉粉哒小裙子</td><td class="center">9</td><td class="right">1039</td><td class="yes">1/84</td><td class="yes">4/275</td><td class="yes">1/11</td><td class="yes">1/143</td><td class="yes">1/118</td><td class="yes">1/28</td><td class="yes">1/245</td><td class="yes">1/88</td><td class="center">0/--</td><td class="yes">1/7</td><td>12/9</td> +</tr> +<tr class="even gold"> +<td class="rank">3</td><td>team28-我说我帅你说队</td><td class="center">9</td><td class="right">1420</td><td class="yes">1/86</td><td class="yes">3/276</td><td class="yes">1/74</td><td class="yes">2/153</td><td class="yes">1/239</td><td class="yes">1/104</td><td class="yes">1/201</td><td class="yes">1/174</td><td class="center">0/--</td><td class="yes">1/53</td><td>12/9</td> +</tr> +<tr class="odd silver"> +<td class="rank">4</td><td>team2-我的貂蝉在哪里</td><td class="center">8</td><td class="right">762</td><td class="yes">1/94</td><td class="center">0/--</td><td class="yes">1/37</td><td class="yes">1/137</td><td class="yes">1/96</td><td class="yes">2/48</td><td class="yes">1/253</td><td class="yes">1/56</td><td class="center">0/--</td><td class="yes">1/21</td><td>9/8</td> +</tr> +<tr class="even silver"> +<td class="rank">5</td><td>team4-菜</td><td class="center">8</td><td class="right">1140</td><td class="yes">1/32</td><td class="no">6/--</td><td class="yes">1/38</td><td class="yes">3/272</td><td class="yes">1/201</td><td class="yes">5/103</td><td class="yes">2/247</td><td class="yes">1/122</td><td class="center">0/--</td><td class="yes">1/5</td><td>21/8</td> +</tr> +<tr class="odd silver"> +<td class="rank">6</td><td>team3-能做对一个题算我输</td><td class="center">7</td><td class="right">693</td><td class="yes">2/22</td><td class="center">0/--</td><td class="yes">1/36</td><td class="no">6/--</td><td class="yes">1/170</td><td class="yes">1/52</td><td class="yes">4/237</td><td class="yes">1/128</td><td class="center">0/--</td><td class="yes">2/8</td><td>18/7</td> +</tr> +<tr class="even silver"> +<td class="rank">7</td><td>team25-咱们狠鰜沀</td><td class="center">7</td><td class="right">957</td><td class="yes">1/80</td><td class="center">0/--</td><td class="yes">1/95</td><td class="yes">3/265</td><td class="yes">1/84</td><td class="yes">2/124</td><td class="center">0/--</td><td class="yes">2/192</td><td class="center">0/--</td><td class="yes">2/37</td><td>12/7</td> +</tr> +<tr class="odd bronze"> +<td class="rank">8</td><td>team9-WaterOneWater</td><td class="center">6</td><td class="right">630</td><td class="yes">1/34</td><td class="center">0/--</td><td class="yes">1/44</td><td class="no">2/--</td><td class="yes">1/252</td><td class="yes">3/89</td><td class="no">1/--</td><td class="yes">2/117</td><td class="center">0/--</td><td class="yes">1/54</td><td>12/6</td> +</tr> +<tr class="even bronze"> +<td class="rank">9</td><td>team19-正常队名-c</td><td class="center">6</td><td class="right">1040</td><td class="yes">1/265</td><td class="center">0/--</td><td class="yes">1/59</td><td class="no">2/--</td><td class="yes">1/227</td><td class="yes">4/125</td><td class="center">0/--</td><td class="yes">7/287</td><td class="center">0/--</td><td class="yes">1/17</td><td>17/6</td> +</tr> +<tr class="odd bronze"> +<td class="rank">10</td><td>team34-正常队名-a</td><td class="center">5</td><td class="right">674</td><td class="yes">2/116</td><td class="center">0/--</td><td class="yes">1/76</td><td class="no">5/--</td><td class="center">0/--</td><td class="yes">2/95</td><td class="center">0/--</td><td class="yes">4/237</td><td class="center">0/--</td><td class="yes">1/70</td><td>15/5</td> +</tr> +<tr class="even bronze"> +<td class="rank">11</td><td>team16-专业划水</td><td class="center">5</td><td class="right">964</td><td class="yes">7/253</td><td class="center">0/--</td><td class="yes">2/53</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/177</td><td class="center">0/--</td><td class="yes">1/282</td><td class="center">0/--</td><td class="yes">1/59</td><td>12/5</td> +</tr> +<tr class="odd"> +<td>12</td><td>team6^卖女孩的小火柴</td><td class="center">4</td><td class="right">0(677)</td><td class="yes">7/273</td><td class="center">0/--</td><td class="yes">3/60</td><td class="no">1/--</td><td class="center">0/--</td><td class="yes">1/169</td><td class="center">0/--</td><td class="no">1/--</td><td class="center">0/--</td><td class="yes">2/15</td><td>15/4</td> +</tr> +<tr class="even"> +<td>13</td><td>team29-只会喊666</td><td class="center">4</td><td class="right">394</td><td class="yes">1/106</td><td class="center">0/--</td><td class="yes">1/48</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">2/192</td><td class="center">0/--</td><td class="no">2/--</td><td class="center">0/--</td><td class="yes">1/28</td><td>7/4</td> +</tr> +<tr class="odd"> +<td>14</td><td>team31-贾神说的队</td><td class="center">4</td><td class="right">429</td><td class="yes">2/223</td><td class="center">0/--</td><td class="yes">1/50</td><td class="center">0/--</td><td class="no">1/--</td><td class="yes">1/85</td><td class="no">2/--</td><td class="no">4/--</td><td class="center">0/--</td><td class="yes">1/51</td><td>12/4</td> +</tr> +<tr class="even"> +<td>15</td><td>team7-想不出队名我也很绝望啊</td><td class="center">4</td><td class="right">442</td><td class="yes">1/236</td><td class="center">0/--</td><td class="no">1/--</td><td class="yes">1/85</td><td class="no">1/--</td><td class="yes">1/114</td><td class="no">3/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/7</td><td>9/4</td> +</tr> +<tr class="odd"> +<td>16</td><td>team24-不WA算我输</td><td class="center">4</td><td class="right">447</td><td class="yes">3/63</td><td class="center">0/--</td><td class="yes">1/53</td><td class="center">0/--</td><td class="no">2/--</td><td class="yes">1/277</td><td class="center">0/--</td><td class="no">1/--</td><td class="center">0/--</td><td class="yes">1/14</td><td>9/4</td> +</tr> +<tr class="even"> +<td>17</td><td>team35-dalao说的都</td><td class="center">4</td><td class="right">562</td><td class="yes">2/212</td><td class="center">0/--</td><td class="yes">1/60</td><td class="no">4/--</td><td class="center">0/--</td><td class="yes">1/231</td><td class="no">3/--</td><td class="no">2/--</td><td class="center">0/--</td><td class="yes">1/39</td><td>14/4</td> +</tr> +<tr class="odd"> +<td>18</td><td>team13-我说对不队</td><td class="center">4</td><td class="right">582</td><td class="yes">1/223</td><td class="center">0/--</td><td class="yes">3/157</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/192</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/10</td><td>6/4</td> +</tr> +<tr class="even"> +<td>19</td><td>team14-这锅我不背</td><td class="center">3</td><td class="right">276</td><td class="yes">2/166</td><td class="center">0/--</td><td class="yes">1/76</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">1/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/14</td><td>5/3</td> +</tr> +<tr class="odd"> +<td>20</td><td>team26^嗨氏老婆后援队</td><td class="center">2</td><td class="right">0(236)</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">1/--</td><td class="yes">2/197</td><td class="no">2/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/19</td><td>6/2</td> +</tr> +<tr class="even"> +<td>21</td><td>team10-取名真难队</td><td class="center">2</td><td class="right">198</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">4/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/165</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/33</td><td>6/2</td> +</tr> +<tr class="odd"> +<td>22</td><td>team17-怎么做都不队</td><td class="center">2</td><td class="right">292</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">3/--</td><td class="no">1/--</td><td class="yes">1/174</td><td class="no">1/--</td><td class="no">2/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/118</td><td>9/2</td> +</tr> +<tr class="even"> +<td>23</td><td>team18-炸蛙</td><td class="center">2</td><td class="right">343</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/273</td><td class="no">4/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">2/70</td><td>7/2</td> +</tr> +<tr class="odd"> +<td>24</td><td>team30^混水摸鱼队</td><td class="center">1</td><td class="right">0(97)</td><td class="no">4/--</td><td class="center">0/--</td><td class="no">6/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/97</td><td>11/1</td> +</tr> +<tr class="even"> +<td>25</td><td>team32-吃饺子队</td><td class="center">1</td><td class="right">13</td><td class="no">1/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">3/--</td><td class="center">0/--</td><td class="no">1/--</td><td class="center">0/--</td><td class="yes">1/13</td><td>6/1</td> +</tr> +<tr class="odd"> +<td>26</td><td>team27-皮皮虾我们走</td><td class="center">1</td><td class="right">19</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">6/--</td><td class="no">3/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/19</td><td>10/1</td> +</tr> +<tr class="even"> +<td>27</td><td>team15-六条腿</td><td class="center">1</td><td class="right">34</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">5/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">2/34</td><td>7/1</td> +</tr> +<tr class="odd"> +<td>28</td><td>team8-一轮游~</td><td class="center">1</td><td class="right">47</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">6/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/47</td><td>7/1</td> +</tr> +<tr class="even"> +<td>29</td><td>team12-我就来看看</td><td class="center">1</td><td class="right">167</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">3/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">5/87</td><td>8/1</td> +</tr> +<tr class="odd"> +<td>30</td><td>team33-三个水枪手</td><td class="center">1</td><td class="right">167</td><td class="no">13/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">3/127</td><td>16/1</td> +</tr> +<tr> +<td></td><td>Submitted/1st Yes/Total Yes</td><td></td><td></td><td class="center">56/22/19</td><td class="center">14/196/3</td><td class="center">48/11/18</td><td class="center">36/85/7</td><td class="center">16/35/11</td><td class="center">50/28/20</td><td class="center">28/201/6</td><td class="center">34/56/11</td><td class="center">1/--/0</td><td class="center">42/5/31</td><td>325/126</td> +</tr> +</TABLE> +</center> +<div class="tail"> +<span class="right"><A HREF="http://pc2.ecs.csus.edu/">PC^2 Homepage</A> +<br> + CSS by Tomas Cerny and Ray Holder +</span> +Created by <A HREF="http://pc2.ecs.csus.edu/">CSUS PC^2</A> version 9.3.3 20160914 build 3454<br> +Last updated +Sat Mar 25 17:18:57 CST 2017</div> +</BODY> +</HTML> diff --git a/sduacm2017/lec1/lec.pdf b/sduacm2017/lec1/lec.pdf Binary files differnew file mode 100644 index 0000000..1e79812 --- /dev/null +++ b/sduacm2017/lec1/lec.pdf diff --git a/sduacm2017/lec1/lec.tex b/sduacm2017/lec1/lec.tex new file mode 100644 index 0000000..af1f66d --- /dev/null +++ b/sduacm2017/lec1/lec.tex @@ -0,0 +1,440 @@ +\documentclass[aspectratio=169,hyperref={pdfencoding=auto,psdextra}]{beamer} +\usepackage[utf8]{inputenc} +\usepackage{CJKutf8} +\usepackage{ulem} +\usepackage{graphicx} +\usepackage{fancyvrb} +\usetheme{Malmoe} +\usecolortheme{default} +\begin{CJK*}{UTF8}{gbsn} +\title{「知道错了没」} +\subtitle{——如何让队友认错} +\author{Chris Xiong} +\date{2017-07-21} +\begin{document} + \frame{\titlepage} + \begin{frame} + \frametitle{「知道错了没」} + \framesubtitle{Outline} + \begin{itemize} + \item 采访 + \item dp: d(ui)p(ai) + \item dp: Knapsack problem + \item 如何让队友认错之如何殴打队友 + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{采访} + \framesubtitle{\sout{a.k.a. 教学质量检查}} + \begin{itemize} + \item 上次课讲的内容大家都听懂了吗?\pause + \item 什么?不懂?\pause + \item 那还记得上次讲的什么吗?\pause + \item A Water Problem \pause + \item 已知$$f(x+1) = + \begin{cases} + a & x=0 + \\ + b & x=1 + \\ + f(x)+f(x-1)+sin(\frac{\pi x}{2}) & otherwise + \end{cases}$$ + 对于给定的$a,b,n$,求$f(n)$。$n\leq 10^{18}$。 + \item 给大家5分钟的思考时间。 + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{采访} + \framesubtitle{怎么样,是不是不会啊?} + \begin{itemize} + \item 都怪宇宙智障。\\ + \includegraphics[scale=0.75]{zz.png}\pause + \item 提示:\pause周期!!\pause + \item 还不会的话就去找宇宙智障。\\ + \includegraphics[scale=0.75]{zz1.png} + \item (听说你想要表扬 厚颜无耻) + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{d(ui)p(ai)} + \begin{itemize} + \item WTF is duipai?\pause + \item Automated generation of test data and execution of several programs.\pause + \item And most importantly, compare their results.\pause + \item \sout{A nice way to waste time if you are stuck.} + \end{itemize} + \end{frame} + \begin{frame}[fragile] + \frametitle{A sample script for UNIX-like OS} + \begin{Verbatim} +#!/bin/bash +i=0 +while(true) +do + ./170312cgen > test.in + ./170312ca < test.in > aa.out + ./170312cb < test.in > bb.out + diff aa.out bb.out + if [ $? -ne 0 ] + then + break + fi + echo $i passed + let i++ +done + \end{Verbatim} +\end{frame} + \begin{frame}[fragile] + \frametitle{How to use it?} + \begin{itemize} + \item Modify the script to your needs. + \item Save it as a script, e.g.: "xxx.sh". + \item Give it the permission to execute. + Run \verb|chmod +x <your_script_name_here>| in a terminal. + \item Run it! + Type \verb|./<your_script_name_here>| in a terminal. + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{What does this script do?} + \begin{itemize} + \item Run the input generator. + \item Feed the generated input to the compared program A and gather results from it. + \item Do the same thing with program B. + \item Check the output. If they differ, terminate the script. Otherwise loop. + \end{itemize} + \end{frame} + \begin{frame}[fragile] + \frametitle{Explanation} + \begin{itemize} + \item + \begin{verbatim} + while(true) + do + done + break + \end{verbatim} + \item + \begin{verbatim} + > < + \end{verbatim} + redirection + \item + \begin{verbatim} + if + then + fi + $? + [, -ne + \end{verbatim} + \item Verification: \verb|diff| / custom program + \end{itemize} + \end{frame} + \begin{frame}[fragile] + \frametitle{Alternative approaches} + \begin{itemize} + \item Write a \verb|C/C++| program instead of a shell script? + \item \verb|system()| in \verb|stdlib.h| (\verb|cstdlib|) + \item return value of \verb|system()| + \item Windows batch file: + \begin{itemize} + \item \verb|IF %ERRORLEVEL% EQU 0(GOTO :loop)| + \end{itemize} + \item \sout{Powershell}? + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Writing input generators} + \begin{itemize} + \item Random? + \item Constructed special cases? + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Knapsack problem} + \framesubtitle{I suck at this} + \begin{itemize} + \item Unbounded knapsack problem + \item Bounded knapsack problem + \begin{itemize} + \item 0/1 knapsack problem + \end{itemize} + \item NP-complete! + \item A No-Dynamic-Programming-At-All variant + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Knapsack problem} + \framesubtitle{The No-DP-At-All variant} + Fractional knapsack problem (a.k.a. Continuous knapsack problem) + \begin{itemize} + \item A knapsack of capacity $W$. + \item $N$ items, each having its weight $w_i$ and value per unit weight $v_i$. + \item Select an amount $x_i$ of each item so that + the total weight doesn't exceed the capacity ( + $\displaystyle\sum_{i}^{}x_i\leq W$ + ) and maximizing the total value + $\displaystyle\sum_{i}^{}x_i \times v_i$, where $x_i \in \mathbb{R}, x_i \geq 0$. + \pause + \item Greedy. + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Knapsack problem} + \framesubtitle{0/1 knapsack problem} + \begin{itemize} + \item Still a knapsack of capacity $W$. + \item Still $N$ items, each having its weight $w_i$ + and value $v_i$. + \item For each item, determine whether to put it in + the knapsack so that the total weight doesn't + exceed the capacity and the total value is maximum. + \end{itemize} + \end{frame} + \begin{frame}[fragile] + \frametitle{Knapsack problem} + \framesubtitle{0/1 knapsack problem} + A brute-force solution: + \begin{Verbatim} +def dfs(i,remaining_capacity): + if(i==0): return 0; + if(remaining_capacity<0): + return -inf; + r1=dfs(i-1,remaining_capacity); + r2=dfs(i-1,remaining_capacity-w[i])+v[i]; + return max(r1,r2); + \end{Verbatim} + \begin{itemize} + \item Call dfs(N,W) for answer. + \item Each non-trivial invocation of dfs branch into two paths. + \item Time complexity: $O(2^N)$. + \item A minor optimization: replace the second condition + statement with +\verb|if(remaining_capacity<w[i]): return dfs(i-1,remaining_capacity);| + \end{itemize} +\end{frame} + \begin{frame}[fragile] + \frametitle{Knapsack problem} + \framesubtitle{0/1 knapsack problem} + A effective optimization: memoization. + \begin{Verbatim} +f=[[-1 for i in range(N)] for j in range(W)] +def dfs(i,remaining_capacity): + if(i==0): return 0; + if(remaining_capacity<w[i]): + return dfs(i-1,remaining_capacity); + if(f[i][remaining_capacity]!=-1): + return f[i][remaining_capacity]; + f[i][remaining_capacity]=max( + dfs(i-1,remaining_capacity), + dfs(i-1,remaining_capacity-w[i])+v[i]); + return f[i][remaining_capacity]; + \end{Verbatim} +\end{frame} + \begin{frame} + \frametitle{Knapsack problem} + \framesubtitle{0/1 knapsack problem} + \begin{itemize} + \item For each parameter tuple of dfs, the function may only branch once. + \item Time complexity: $O(NW)$.\\ + \tiny It's a pseudo-polynomial algorithm, so the knapsack problem is still NP-complete. + \normalsize + \pause + \item Why does this work? + \pause + \item Once the result for a specific parameter tuple has been calculated, will it change any further? + \item Non-aftereffect property. + \pause + \item Recursion? Phooey! That will be a lot of context switches! + \pause + \item Time for some black magic! + \end{itemize} + \end{frame} + \begin{frame}[fragile] + \frametitle{Knapsack problem} + \framesubtitle{0/1 knapsack problem} + The iteration version. + \begin{Verbatim} +f=[[0 for i in xrange(N)] for j in xrange(W)] +for i in xrange(1,N): + for j in xrange(0,W): + f[i][j]=max(f[i-1][j], + f[i-1][j-w[i]]+v[i] if j>=w[i] else 0); + \end{Verbatim} +\end{frame} + \begin{frame} + \frametitle{Knapsack problem} + \framesubtitle{0/1 knapsack problem} + \begin{itemize} + \item Recall that in the memoization version, in order to calculate results for $f[i,remaining\_capacity]$ + we must already have at least two results for $f[i-1,x]$. + \item Why don't we calculate all $f[i-1,x]$ before calculating $f[i,x]$? + \pause + \item Got the maximum value now! Want the list of selected items? + \pause + \item Traceback. + \end{itemize} + \end{frame} + \begin{frame}[fragile] + \frametitle{Knapsack problem} + \framesubtitle{0/1 knapsack problem} + \begin{itemize} + \item When we are at $i=x$ of the outer loop, all values in $f[y],y<x-1$ are no longer used. + \item If we don't need to traceback, can we save a bit of memory? + \pause + \item Yes! Just throw them away! + \begin{Verbatim} +f=[0 for i in xrange(W)] +for i in xrange(1,N): + for j in xrange(W,w[i],-1): + f[j]=max(f[j],f[j-w[i]]+v[i]); + \end{Verbatim} + \end{itemize} +\end{frame} + \begin{frame} + \frametitle{Knapsack problem} + \framesubtitle{0/1 knapsack problem} + \begin{itemize} + \item How does this work?\\ + \pause + ($g[i][j]$ denotes the original $f[i][j]$ from the two dimensional iterative solution.) + \item When we are at $j=y$ of the inner loop, $f[0..y]$ are values from $g[i-1]$ and + $f[y+1..W]$ contains values from $g[i]$. + \item Why reverse the inner loop? + \pause + \item Because we still need the values with smaller $remaining\_capacity$ from the last iteration! + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Knapsack problem} + \framesubtitle{Unbounded knapsack problem} + \begin{itemize} + \item Same as the 0/1 knapsack problem, but each item has unlimited copies. + \pause + \item Converting to 0/1 knapsack problem? + \pause + \item Imitating Binary. We can obtaining any multiplicity of items from a combination of 1x, 2x, 4x, 8x, ... of that item. + \pause + \item Any other solutions? + \end{itemize} + \end{frame} + \begin{frame}[fragile] + \frametitle{Knapsack problem} + \framesubtitle{Unbounded knapsack problem} + Another solution: + \begin{Verbatim} +f=[0 for i in xrange(W)] +for i in xrange(1,N): + for j in xrange(w[i],W): + f[j]=max(f[j],f[j-w[i]]+v[i]); + \end{Verbatim} + Wait... Isn't this our final solution for the 0/1 knapsack problem? +\end{frame} + \begin{frame} + \frametitle{Knapsack problem} + \framesubtitle{Unbounded knapsack problem} + \begin{itemize} + \item Not exactly! Note that the inner loop now iterate from $w[i]$ to $W$. + \item Why? + \pause + \item Let's revisit the reason to iterate in reverse order in 0/1 knapsack problem: + \item We still need the values with smaller $remaining\_capacity$ from the last iteration. + \pause + \item Why do we need \textit{those values}, instead of the shiney new values we just obtained? + \pause + \item Because these values do not take the current item into consideration, effectively ensuring + that every item can be used at most once. + \item But now we have unlimited copies of each item! + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Knapsack problem} + \framesubtitle{Bounded knapsack problem} + \begin{itemize} + \item Same as the 0/1 knapsack problem, but each item has $C_i$ copies. + \item POJ 1276 + \pause + \item Still solve by converting to a 0/1 knapsack problem. + \pause + \item How to limit the maximum number of copies? + \pause + \item By modifying the largest group so that if all groups are selected, + the sum of multiplicity equals to $C_i$. + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Knapsack problem} + \framesubtitle{Bounded knapsack problem} + Another "stupid" solution that can also be applied to the unbounded knapsack problem: + \begin{itemize} + \item For each item, we have $C_i+1$ choices. + \item We just iterate through these choices to update $f[][]$. + \item This solution runs for $O(W\Sigma C_i)$. + \item However it can be further optimized to $O(NW)$ using some advanced DP optimization technics. + \pause + \item We are not covering that here today. + \item More about knapsack problems:\\ + \url{https://github.com/tianyicui/pack} + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{如何殴打队友} + \begin{center} + \Huge{以下内容仅供娱乐} + \end{center} + \end{frame} + \begin{frame} + \frametitle{如何殴打队友} + \framesubtitle{——何时应当考虑殴打队友?} + \begin{itemize} + \item 当队友占3个小时键盘什么都没写出来时 + \item 当队友开一题WA一题时 + \item 当队友开始表演口技时 + \item 当队友热身赛开可乐洒了一地时 + \item 当队友看到树就想重心分解时 + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{如何殴打队友} + \framesubtitle{——正题} + \begin{itemize} + \item 像现在这么殴打(宣传光辉事迹) + \item 比赛时不准碰键盘 + \item 表演口技时录音 + \item WA一题灌一瓶可乐,不准洒 + (大家可以算一下光这张图就要喝多少瓶)\\ + \includegraphics[scale=0.25]{zz2.png}\\ + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{如何殴打队友} + \framesubtitle{——殴打队友时需要注意的地方} + \begin{itemize} + \item 注意殴打的度——虽然原则上是越重越好,但是如果你的队友是个卜力星人,殴打太重会导致其发射大量宇宙射线,导致「伤敌800,自损1000」的尴尬情形。 + \item 殴打方式要适当。比如其在表演口技不应该使用灌可乐的手法,因为容易洒一地。 + \item 适可而止。如果感觉队友能A题了就让其施展一发(没A就接着灌)。 + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{如何殴打队友} + \framesubtitle{Bonus: 利用宇宙射线} + 如果你发现你的队友会发射宇宙射线,那么它可能是可以被利用的。可利用的宇宙射线的发射者是会认错的。这里有一个正面例子和一个反面例子: + \begin{itemize} + \item 黄焖蓉 :发射射线导致临近的队伍接连两次CE。 + \item 宇宙智障:发射射线导致队友高数全部忘光。 + \end{itemize} + 如你所见,第一类射线是可以加以利用的;而第二类射线则是「射别人一个也射不中,射自己人一射一个准」的。大家要尽量做好对第二类射线的防护工作。关于这个问题我们下次再说(如果还有下次机会的话)。 + \end{frame} + \begin{frame} + \frametitle{如何殴打队友} + \framesubtitle{So... what's the point?} + \begin{itemize} + \item 合理利用时间 + \item 卡题时的处理方式 + \item 队内的合作 + \item 其他队伍的影响 + \end{itemize} + \end{frame} +\end{CJK*} +\end{document} + diff --git a/sduacm2017/lec1/zz.png b/sduacm2017/lec1/zz.png Binary files differnew file mode 100644 index 0000000..6caa4c2 --- /dev/null +++ b/sduacm2017/lec1/zz.png diff --git a/sduacm2017/lec1/zz1.png b/sduacm2017/lec1/zz1.png Binary files differnew file mode 100644 index 0000000..8e5bcf8 --- /dev/null +++ b/sduacm2017/lec1/zz1.png diff --git a/sduacm2017/lec1/zz2.png b/sduacm2017/lec1/zz2.png Binary files differnew file mode 100644 index 0000000..08da2dc --- /dev/null +++ b/sduacm2017/lec1/zz2.png diff --git a/sduacm2017/lec2/lec.pdf b/sduacm2017/lec2/lec.pdf Binary files differnew file mode 100644 index 0000000..7c69fbf --- /dev/null +++ b/sduacm2017/lec2/lec.pdf diff --git a/sduacm2017/lec2/lec.tex b/sduacm2017/lec2/lec.tex new file mode 100644 index 0000000..ae972b0 --- /dev/null +++ b/sduacm2017/lec2/lec.tex @@ -0,0 +1,312 @@ +\documentclass[aspectratio=169,hyperref={pdfencoding=auto,psdextra}]{beamer} +\usepackage[utf8]{inputenc} +\usepackage{CJKutf8} +\usepackage{ulem} +\usepackage{graphicx} +\usepackage{fancyvrb} +\usepackage{amsmath} +\usepackage{multicol} +\usetheme{Malmoe} +\usecolortheme{default} +\begin{CJK*}{UTF8}{gbsn} +\title{「有了他我们无法活」} +\subtitle{——炮打司令部} +\author{Chris Xiong} +\date{2017-07-28} +\begin{document} + \frame{\titlepage} + \begin{frame} + \frametitle{「有了他我们无法活」} + \framesubtitle{Outline} + \begin{itemize} + \item 采访 + \item Faster I/O + \item C++11 / 14 + \item Common pitfalls + \item Bitmask + \item Bitmask+dp + \item 如何让队友认错之如何表扬队友 + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{采访} + \framesubtitle{\sout{a.k.a. 教学质量检查}} + \begin{itemize} + \item 上次课讲的内容大家都听懂了吗?\pause + \item 什么?不懂?\pause + \item 那还记得上次讲的什么吗?\pause + \item 对不起,这次没有A Water Problem + \end{itemize} + \end{frame} + \begin{frame}[fragile] + \frametitle{Faster I/O} + Why? + \begin{itemize} + \item No need to parse the format string + \item Makes better use of the I/O buffer + \end{itemize} + \pause + How? + \begin{itemize} + \item \verb|.sync_with_stdio(false)| + \item \verb|getchar()| + \item \verb|fread()| + \end{itemize} +\end{frame} + \begin{frame}[fragile] + \frametitle{Faster I/O} + \framesubtitle{Faster input - getchar()} + \begin{Verbatim} + int readint() + { + int ret=0; + char ch=getchar(); + while(ch<'0'||ch>'9') + ch=getchar(); + do + { + ret=ret*10+ch-'0'; + ch=getchar(); + }while(ch>='0'&&ch<='9'); + return ret; + } + \end{Verbatim} +\end{frame} + \begin{frame}[fragile] + \frametitle{Faster I/O} + \framesubtitle{Even faster input - fread()} + \begin{Verbatim} + char s[SOME_LARGE_VALUE]; + size_t ptr,len; + len=fread(s,1,SOME_LARGE_VALUE,stdin); + int readint() + { + //replace getchar() with s[ptr++] + ... + } + \end{Verbatim} + \pause + Reading real numbers? +\end{frame} + \begin{frame}[fragile] + \frametitle{Faster I/O} + \framesubtitle{Faster output} + \begin{itemize} + \item Print digit by digit + \item Save to buffer then \verb|fwrite()| to \verb|stdout|. + \end{itemize} +\end{frame} + \begin{frame}[fragile] + \frametitle{C++11 / 14 - Useful features that reduces coding efforts} + \framesubtitle{C++11} + \begin{itemize} + \item Uniform initialization + \begin{Verbatim} + struct S{int a;double b;char c;}; + S s{1,2.0,'3'};//s.a==1; s.b==2.0; s.c=='3'; + \end{Verbatim} + \item Type inference + \begin{Verbatim} + std::set<int> s; + auto a=1; + auto it=s.begin(); + \end{Verbatim} + \item Range-based for loop + \begin{Verbatim} + std::vector<int> v; + for(auto &i:v)... + \end{Verbatim} + \end{itemize} +\end{frame} + \begin{frame}[fragile] + \frametitle{C++11 / 14 - Useful features that reduces coding efforts} + \framesubtitle{C++11 cont'd} + \begin{itemize} + \item Lambda functions + \begin{Verbatim} +std::sort(p+1,p+nv,[o=p[0]](const v3d& a,const v3d& b)->bool + { + double cross=(a.x-o.x)*(b.y-o.y)-(b.x-o.x)*(a.y-o.y); + if(sgn(cross))return sgn(cross)>0; + double la=hypot(a.x-o.x,a.y-o.y); + double lb=hypot(b.x-o.x,b.y-o.y); + return la<lb; + } +); + \end{Verbatim} + \item Right angle bracket + \begin{Verbatim} + std::vector<std::pair<int,int>> v; + \end{Verbatim} + \item \verb|long long int|\\ + Yeah, it was not standard until C++11 (C99). + \end{itemize} +\end{frame} + \begin{frame}[fragile] + \frametitle{C++11 / 14 - Useful features that reduces coding efforts} + \framesubtitle{C++11 STL} + \begin{itemize} + \item Hash tables\\ + \verb|std::unordered_map, std::unordered_set| + \item \verb|std::tuple| + \item Regular expressions + \item Threading + \item Random number generators + \end{itemize} +\end{frame} + \begin{frame}[fragile] + \frametitle{C++11 / 14 - Useful features that reduces coding efforts} + \framesubtitle{C++14} + C++14 is a small extension to C++11. + \begin{itemize} + \item Improved \verb|auto| + \begin{Verbatim} + auto factorial(int x){ + if(x==1)return 1; + return x*factorial(x-1); + } + \end{Verbatim} + \item Improved lambda functions + \begin{Verbatim} + auto lambda=[](auto x,auto y){return x+y;}; + \end{Verbatim} + \item Lambda capture expressions + \end{itemize} +\end{frame} + \begin{frame}[fragile] + \frametitle{Common pitfalls} + \begin{itemize} + \item Huge global variable causes linkage error. + \begin{Verbatim} +int a[1LL<<12][1LL<<48],b[1LL<<12][1LL<<48],c[1LL<<12][1LL<<48]; +int main(){c[0][0]=1;} + \end{Verbatim} + Compilation result: + \begin{Verbatim} +g++ -Wall -std=c++14 -g -o "test" "test.cpp" -lm (in directory: +/home/chrisoft/code) +/tmp/ccOkFQ7A.o: In function `main': +/home/chrisoft/code/test.cpp:2:(.text+0x6): +relocation truncated to fit: R_X86_64_PC32 against symbol +`c' defined in .bss section in /tmp/ccOkFQ7A.o +collect2: error: ld returned 1 exit status +Compilation failed. + + \end{Verbatim} + \item relocation of \verb|.bss| section exceeding platform limitations. + \end{itemize} +\end{frame} + \begin{frame}[fragile] + \frametitle{Common pitfalls} + \begin{itemize} + \item Stack size is very small compared to heap + \begin{Verbatim} +int main(){int a[100000000];...} + \end{Verbatim} + \item Results in stack overflow. + \item Math library + \item \verb|memset()| TLE + \end{itemize} +\end{frame} + \begin{frame} + \frametitle{Bitmask} + \begin{itemize} + \item A set in its binary form + \item Codeforces 550B\pause + \item Codeforces 579A + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Bitmask+dp} + \begin{itemize} + \item Concept of a \textbf{state}\pause + \item Value function\pause + \item Initial state + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Bitmask+dp} + \begin{itemize} + \item TSP(Travelling Salesman Problem) + \item Given a list of cities and the distances between each pair of cities, + what is the shortest possible route that visits each city exactly once and + returns to the origin city?\pause + \item f[s][i]: s: set of visited cites, i: current city + \item functional equation: + $ + f[s][i]= + \displaystyle \min_{k:N}f[s-{i}][k]+dist[k][i] (k\notin s) + $ + \item Initial state: f[U][0]=0;\pause + \item Variant\pause + \item Loop direction + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Bitmask+dp} + \begin{itemize} + \item TSP: POJ 3311 + \item Counting: POJ 3254 + \item f[i][s]: row i with set s occupied + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{如何让队友认错之如何表扬队友} + \framesubtitle{队友需要表扬才能更有生产力} + \includegraphics[scale=0.75]{zz1.png} + \end{frame} + \begin{frame} + \frametitle{如何让队友认错之如何表扬队友} + \framesubtitle{光辉事迹} + \begin{itemize} + \item 比赛中要其他队伍帮忙写对拍 + \item 比赛中睡3小时觉 + \item 全权负责实验室事务 + \item 发说说 + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{宇宙智障的说说} + + \begin{multicols}{2} + 就终于考完试了\_(:зゝ∠)\_\\ + 然而暑假这种?不存在的(滑稽\\ + 还是献给辣鸡的(划掉)acm好了\\ + 学期结束,事儿反而就又突然多了起来\\ + 假装已有计划的专题训练\\ + 各种姿势被虐的多校联合\\ + 以及暑期集训的萌新教学\\ + 与开始正式接手的实验室各种大小事务的锅\\ + 相信,一定会是个忙碌的七八月份吧\\ + 希望,也同会是个充满收获的七八月\\ + 就也会更期待着\\ + 在八月初的短假里\\ + 与小姐姐愉快的玩耍呢\\ + 总之,一定会是个不平凡的假期\\ + 再以及,小姐姐寄的明信片也终于到了:)\\ + \end{multicols} + \end{frame} + + \begin{frame} + \frametitle{宇宙智障的说说} + \includegraphics[scale=0.5]{zz2.png} + \end{frame} + \begin{frame} + \frametitle{为何要表扬队友} + \begin{itemize} + \item 让恬不知耻的队友知道错(似乎对宇宙智障无效) + \item 叫醒队友 + \item \sout{鼓励}队友\sout{WA更多题} + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{放假事宜} + \begin{itemize} + \item 宇宙智障已经畏罪潜逃 + \item 宇宙智障8月7日将被扭送 + \item 大家一定不用比宇宙智障回来的早 + \end{itemize} + \end{frame} +\end{CJK*} +\end{document} + diff --git a/sduacm2017/lec2/zz1.png b/sduacm2017/lec2/zz1.png Binary files differnew file mode 100644 index 0000000..8e5bcf8 --- /dev/null +++ b/sduacm2017/lec2/zz1.png diff --git a/sduacm2017/lec2/zz2.png b/sduacm2017/lec2/zz2.png Binary files differnew file mode 100644 index 0000000..ce8d970 --- /dev/null +++ b/sduacm2017/lec2/zz2.png diff --git a/sduacm2017/lec3/c1.png b/sduacm2017/lec3/c1.png Binary files differnew file mode 100644 index 0000000..0e6b37c --- /dev/null +++ b/sduacm2017/lec3/c1.png diff --git a/sduacm2017/lec3/c2.png b/sduacm2017/lec3/c2.png Binary files differnew file mode 100644 index 0000000..93c15f3 --- /dev/null +++ b/sduacm2017/lec3/c2.png diff --git a/sduacm2017/lec3/lec.pdf b/sduacm2017/lec3/lec.pdf Binary files differnew file mode 100644 index 0000000..8eb6176 --- /dev/null +++ b/sduacm2017/lec3/lec.pdf diff --git a/sduacm2017/lec3/lec.tex b/sduacm2017/lec3/lec.tex new file mode 100644 index 0000000..990c6e5 --- /dev/null +++ b/sduacm2017/lec3/lec.tex @@ -0,0 +1,241 @@ +\documentclass[aspectratio=169,hyperref={pdfencoding=auto,psdextra}]{beamer} +\usepackage[utf8]{inputenc} +\usepackage{CJKutf8} +\usepackage{ulem} +\usepackage{graphicx} +\usepackage{fancyvrb} +\usepackage{amsmath} +\usepackage{multicol} +\usetheme{Malmoe} +\usecolortheme{default} +\begin{CJK*}{UTF8}{gbsn} +\title{「初中数学都不会」} +\subtitle{——Computational Geometrics} +\author{Chris Xiong} +\date{2017-08-18} +\begin{document} + \frame{\titlepage} + \begin{frame} + \frametitle{「初中数学都不会」} + \framesubtitle{Outline} + \begin{itemize} + \item Basics + \begin{itemize} + \item Vectors + \item Distances + \item Area + \item Intersections + \item Transformations + \end{itemize} + \item Convex hull + \item Extra fun + \item Templates + \item 殴打宇宙智障 + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Basics} + \framesubtitle{Vectors} + \begin{itemize} + \item Computational Gemoetrics in ICPC=\\ + \hspace{1cm}40\% Junior high school maths+\\ + \hspace{1cm}30\% Senior high school maths+\\ + \hspace{1cm}20\% Brainstorming+\\ + \hspace{1cm}10\% College maths + \item $\mathbf{u}$, $\mathbf{v}$, $\vec{u}$, $\vec{v}$ + \item $\vec{u}+\vec{v}$,$\vec{u}-\vec{v}$,$s\vec{u}$,$\vec{u}\cdot\vec{v}$,$\vec{u}\times\vec{v}$ + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Basics} + \framesubtitle{Distances} + \begin{itemize} + \item point 2 point + \item point 2 line + \pause + \item polygon 2 polygon??? + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Basics} + \framesubtitle{Area} + \begin{itemize} + \item Circle??? + \item Triangle? + \begin{itemize} + \item \sout{$ah/2$} + \item Heron's formula + \item Cross product + \end{itemize} + \item Polygon??? + \begin{itemize} + \item Slicing + \end{itemize} + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Basics} + \framesubtitle{Intersections} + \begin{itemize} + \item point \& line + \item point \& segment + \item line \& line + \item line \& segment + \item segment \& segment + \item circle \& line + \item circle \& circle + \pause + \item \sout{convex} polygon \& point \pause + \begin{itemize} + \item \sout{randomizing} (polyhedron) + \item ray casting + \item winding number + \end{itemize} + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Basics} + \framesubtitle{Transformations} + \begin{itemize} + \item Scaling + \item Rotation + \item ${\displaystyle {\begin{bmatrix}s_x&0\\0&s_y\end{bmatrix}}}$ + \item ${\displaystyle {{\begin{bmatrix}\cos \theta &\sin \theta \\-\sin \theta &\cos \theta \end{bmatrix}}}}$ + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Convex hull} + \framesubtitle{WTF???} + \begin{itemize} + \item Smallest convex polygon (set) that contains a set of points. + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Convex hull} + \framesubtitle{Algorithms} + \begin{itemize} + \item Brute force: gift wrapping + \item Graham scan + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Convex hull} + \framesubtitle{Gift wrapping} + \begin{itemize} + \item The left most point must be in the resulting set + \item Starting from that point, select the next point such that + all points are \textbf{to the right} of the newly formed line. + \item Time complexity: $O(nh)$ + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Convex hull} + \framesubtitle{Graham scan} + \begin{itemize} + \item Find an extreme point and sort the remaining point according + to polar angle. + \item Start with a stack with two items, the extreme point and the + first point in the sorted list. + \item ($P_0$ denotes the top element of the stack, $P_1$ denotes the + element under $P_0$) For each point left in the list ($T$), pop the + stack until $\overrightarrow{P_1P_0}$ and $\overrightarrow{P_0T}$ forms + \textbf{a left turn}. Then push $T$ onto the stack. + \item Time complexity: $O(n log n)$ (with sorting) + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Convex hull} + \framesubtitle{Example: NEERC 08 A} + \end{frame} + \begin{frame} + \frametitle{Extra fun} + \framesubtitle{Example: PetrSU SC 04 C} + Arc-arc intersection + \includegraphics[scale=0.5]{c1.png} + \end{frame} + \begin{frame} + \frametitle{Extra fun} + \framesubtitle{Example: PetrSU SC 04 C} + \includegraphics[scale=0.36]{c2.png} + \end{frame} + \begin{frame} + \frametitle{Extra fun} + \framesubtitle{Example: MultiUniversity Traning 20170815 H} + \end{frame} + \begin{frame} + \frametitle{Extra fun} + \framesubtitle{Example: Asia GuangzhouRC 14 H} + \end{frame} + \begin{frame} + \frametitle{Extra fun} + \framesubtitle{Example: "Angry birds"} + One of the few problems of computational geometrics in ICPC + that involves college maths. + \end{frame} + \begin{frame} + \frametitle{Extra fun} + \framesubtitle{CG. Combined with other algorithms} + \end{frame} + \begin{frame} + \frametitle{Extra fun} + \framesubtitle{Rotating calipers} + Solves: + \begin{itemize} + \item Max/min width of convex polygon + \item Max/min distance between two convex polygons + \item Antipodal points/Farthest pairs + \item Union/intersection of convex polygons + \item Min area/perimeter obb + \item etc. + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Templates} + \framesubtitle{Critical for Computational Geometrics (maybe)} + \begin{itemize} + \item Basic operations + \item Basic intersections + \item Circle-line intersection + \item Circle-triangle intersection + \item Circle-circle intersection + \item 3D vector operations + \item Half-plane intersection + \item Cloest/Farthest Pair + \item etc. + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{殴打宇宙智障} + \framesubtitle{光辉事迹+1} + \begin{itemize} + \item 建完图后把图清空然后跑网络流\pause + \item 熟悉你的模板\pause + \item 多校睡觉\pause + \item 队伍组成 + \item 代码手?\pause + \item 违反中央八项规定\pause + \item 口技 + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{殴打宇宙智障} + \framesubtitle{后事} + \begin{itemize} + \item 21日最后一次讲课 + \item 8月31日计科退宿舍 + \item 如有不同以宇宙智障为准 + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{殴打宇宙智障} + \framesubtitle{没来得及讲的东西} + \begin{itemize} + \item 概率(解方程/dp)、高斯消元 + \item 网络流 + \item 好像没什么了? + \item Good luck to ya. + \end{itemize} + \end{frame} +\end{CJK*} +\end{document} + diff --git a/sduacm2017/senior/problems_s.pdf b/sduacm2017/senior/problems_s.pdf Binary files differnew file mode 100644 index 0000000..f7839b5 --- /dev/null +++ b/sduacm2017/senior/problems_s.pdf diff --git a/sduacm2017/senior/ranklist.html b/sduacm2017/senior/ranklist.html new file mode 100644 index 0000000..7230ff5 --- /dev/null +++ b/sduacm2017/senior/ranklist.html @@ -0,0 +1,324 @@ +<HTML> +<HEAD> +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<TITLE>11th SDU ACM/ICPC Contest Senior Division </TITLE> +<style> +// based on +// $Id: standings.css 1983 2009-12-09 02:29:11Z boudreat $ +table { + border: 1px solid #ccc; + border-bottom: 0; + width: 52.7em; + margin-bottom: 2em; +} +body { + font-family: verdana, arial, tahoma, sans-serif; +} +table th { + text-align: center; + background: #247eca; + color: white; + padding: 0em; + border: outset 2px #eee8aa; +} +table td { + border-bottom: 1px solid #DDD; + padding: .0em .0em .0em .5em; +} +table tr td.rank { + background: transparent; + /*border: 2px outset #ffffff;*/ +} +table tr.gold td.rank { + background: #f9d923; +} +table tr.silver td.rank { + background: Silver; +} +table tr.bronze td.rank { + background: #c08e55; +} +table tr.iron td.rank { + background: #6cf; +} +table td.name { + padding-left: 2em; +} +table th.name{ + padding-left: 3em; +} +table tr.even td { + background: #F7F7F7; +} +table tr td.r10 { + background: #e9d923; + border: 2px outset #DCDCDC; +} +table tr td.r9 { + background: #e1d963; + border: 2px outset #DCDCDC; +} +table tr td.r8 { + background: #DDD7AA; + border: 2px outset #DCDCDC; +} +table tr td.r7 { + background: #d2d2d2; + border: 2px outset #DCDCDC; +} +table tr td.r6 { + background: #DDCDBD; + border: 2px outset #DCDCDC; +} +table tr td.r5 { + background: #e6e6e6; + border: 2px outset #DCDCDC; +} +table tr td.r4 { + background: #eee; + border: 2px outset #f3f3f3; +} +table tr td.r3 { + background: #F7f7f7; + border: 2px outset #f7f7f7; +} +div.tail { + font-size: .8em; + color: #888; +//width: 65.875em; +width: 80%; + border: 1px solid #ccc; +margin-left: auto; +margin-right: auto; +} +span.right { + float: right; +} + +// troy additions +table tr.odd { + background-color: #0; color: black; +} +table tr.even { + background-color: #EEEEFF; color: black; +} +table tr td.yes { + background-color: #00ff00; color: black; + text-align: center; +} +table tr td.pending { + background-color: #ffff00; color: black; + text-align: center; +} +table tr td.no { + background-color: #ff0000; color: black; + text-align: center; +} +table tr td.center { + text-align: center; +} +table tr td.right { + text-align: right; +} + +</style> +<META HTTP-EQUIV="REFRESH" CONTENT="60;"> +<META HTTP-EQUIV="EXPIRES" CONTENT="0"> +<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> +<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> +</HEAD> +<BODY> +<font face="verdana, arial, helvetica" align="right"> +<center> +<h2>11th SDU ACM/ICPC Contest Senior Division </h2> +<h3></h3> +<br> +</center> +</font> +<center> +<TABLE cellspacing="0"> +<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> <strong><u>A</u></strong> </th><th> <strong><u>B</u></strong> </th><th> <strong><u>C</u></strong> </th><th> <strong><u>D</u></strong> </th><th> <strong><u>E</u></strong> </th><th> <strong><u>F</u></strong> </th><th> <strong><u>G</u></strong> </th><th> <strong><u>H</u></strong> </th><th> <strong><u>I</u></strong> </th><th> <strong><u>J</u></strong> </th><th>Total att/solv</th> +</tr> +<tr> +<td></td><td></td><td></td><td></td><td> +<center>A</center> +</td><td> +<center>B</center> +</td><td> +<center>C</center> +</td><td> +<center>D</center> +</td><td> +<center>E</center> +</td><td> +<center>F</center> +</td><td> +<center>G</center> +</td><td> +<center>H</center> +</td><td> +<center>I</center> +</td><td> +<center>J</center> +</td> +</tr> +<tr class="even iron"> +<td class="rank">*</td><td>team1 - 粉粉哒小裙子*</td><td class="center">7</td><td class="right">723</td><td class="yes">3/92</td><td class="no">1/--</td><td class="yes">1/146</td><td class="yes">1/116</td><td class="yes">2/36</td><td class="no">1/--</td><td class="no">4/--</td><td class="yes">1/12</td><td class="yes">3/204</td><td class="yes">1/17</td><td>18/7</td> +</tr> +<tr class="odd gold"> +<td class="rank">1</td><td>team28 - Deadline!</td><td class="center">7</td><td class="right">818</td><td class="yes">3/97</td><td class="center">0/--</td><td class="yes">1/123</td><td class="yes">1/185</td><td class="yes">1/60</td><td class="center">0/--</td><td class="no">3/--</td><td class="yes">1/11</td><td class="yes">2/227</td><td class="yes">2/35</td><td>14/7</td> +</tr> +<tr class="even gold"> +<td class="rank">2</td><td>team16 - 不要脸了还</td><td class="center">7</td><td class="right">910</td><td class="yes">3/164</td><td class="center">0/--</td><td class="yes">1/154</td><td class="yes">1/175</td><td class="yes">2/67</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/10</td><td class="yes">1/248</td><td class="yes">1/32</td><td>10/7</td> +</tr> +<tr class="odd silver"> +<td class="rank">3</td><td>team39 - 水水题</td><td class="center">6</td><td class="right">515</td><td class="yes">3/43</td><td class="no">1/--</td><td class="yes">1/92</td><td class="yes">1/150</td><td class="yes">3/72</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/3</td><td class="no">3/--</td><td class="yes">4/15</td><td>17/6</td> +</tr> +<tr class="even silver"> +<td class="rank">4</td><td>team24 - 正常队名</td><td class="center">6</td><td class="right">588</td><td class="yes">2/25</td><td class="center">0/--</td><td class="yes">3/194</td><td class="yes">3/179</td><td class="yes">2/58</td><td class="no">3/--</td><td class="center">0/--</td><td class="yes">1/20</td><td class="center">0/--</td><td class="yes">1/32</td><td>15/6</td> +</tr> +<tr class="odd silver"> +<td class="rank">5</td><td>team15 - creating</td><td class="center">6</td><td class="right">622</td><td class="yes">6/46</td><td class="center">0/--</td><td class="yes">4/156</td><td class="yes">2/170</td><td class="yes">2/55</td><td class="no">6/--</td><td class="no">3/--</td><td class="yes">1/15</td><td class="center">0/--</td><td class="yes">2/40</td><td>26/6</td> +</tr> +<tr class="even iron"> +<td class="rank">*</td><td>team6 - 我说我帅你说队*</td><td class="center">6</td><td class="right">704</td><td class="yes">3/213</td><td class="center">0/--</td><td class="yes">1/90</td><td class="yes">3/219</td><td class="yes">1/32</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">2/13</td><td class="no">3/--</td><td class="yes">1/37</td><td>14/6</td> +</tr> +<tr class="odd silver"> +<td class="rank">6</td><td>team13 - 很难受</td><td class="center">6</td><td class="right">775</td><td class="yes">2/79</td><td class="no">1/--</td><td class="yes">4/107</td><td class="yes">2/250</td><td class="yes">3/201</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/8</td><td class="center">0/--</td><td class="yes">1/50</td><td>14/6</td> +</tr> +<tr class="even silver"> +<td class="rank">7</td><td>team45 - ShaBiLLX</td><td class="center">6</td><td class="right">812</td><td class="yes">1/98</td><td class="no">3/--</td><td class="yes">2/144</td><td class="yes">3/275</td><td class="yes">4/158</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/20</td><td class="center">0/--</td><td class="yes">1/17</td><td>15/6</td> +</tr> +<tr class="odd bronze"> +<td class="rank">8</td><td>team33 - 在座的都是大佬</td><td class="center">6</td><td class="right">935</td><td class="yes">7/119</td><td class="center">0/--</td><td class="yes">1/184</td><td class="yes">1/275</td><td class="yes">3/133</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/31</td><td class="no">3/--</td><td class="yes">3/53</td><td>19/6</td> +</tr> +<tr class="even bronze"> +<td class="rank">9</td><td>team38 - 你得是匹狼</td><td class="center">6</td><td class="right">940</td><td class="yes">8/267</td><td class="center">0/--</td><td class="yes">1/116</td><td class="yes">2/246</td><td class="yes">1/66</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/15</td><td class="center">0/--</td><td class="yes">2/50</td><td>15/6</td> +</tr> +<tr class="odd bronze"> +<td class="rank">10</td><td>team22 - wa</td><td class="center">6</td><td class="right">1008</td><td class="yes">3/153</td><td class="center">0/--</td><td class="yes">1/236</td><td class="yes">4/275</td><td class="yes">3/114</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">2/15</td><td class="center">0/--</td><td class="yes">3/55</td><td>16/6</td> +</tr> +<tr class="even bronze"> +<td class="rank">11</td><td>team40 - 宫保鸡丁队</td><td class="center">6</td><td class="right">1034</td><td class="yes">1/195</td><td class="center">0/--</td><td class="yes">4/148</td><td class="yes">3/249</td><td class="yes">2/165</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/26</td><td class="center">0/--</td><td class="yes">3/151</td><td>14/6</td> +</tr> +<tr class="odd bronze"> +<td class="rank">12</td><td>team31 - 你随便取个吧</td><td class="center">6</td><td class="right">1061</td><td class="yes">2/156</td><td class="center">0/--</td><td class="yes">14/206</td><td class="yes">1/296</td><td class="yes">4/61</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/15</td><td class="center">0/--</td><td class="yes">3/27</td><td>25/6</td> +</tr> +<tr class="even bronze"> +<td class="rank">13</td><td>team44 - 小白菜</td><td class="center">6</td><td class="right">1233</td><td class="yes">27/282</td><td class="no">5/--</td><td class="yes">1/141</td><td class="yes">1/179</td><td class="yes">1/64</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/14</td><td class="no">5/--</td><td class="yes">6/13</td><td>47/6</td> +</tr> +<tr class="odd bronze"> +<td class="rank">14</td><td>team9 - helloworld</td><td class="center">6</td><td class="right">1345</td><td class="yes">11/220</td><td class="no">3/--</td><td class="yes">11/175</td><td class="yes">2/270</td><td class="yes">5/87</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">2/20</td><td class="no">1/--</td><td class="yes">1/173</td><td>36/6</td> +</tr> +<tr class="even bronze"> +<td class="rank">15</td><td>team2 - 一起抱大腿</td><td class="center">5</td><td class="right">287</td><td class="yes">3/58</td><td class="center">0/--</td><td class="yes">1/124</td><td class="no">6/--</td><td class="yes">1/10</td><td class="no">4/--</td><td class="center">0/--</td><td class="yes">1/3</td><td class="no">4/--</td><td class="yes">2/32</td><td>22/5</td> +</tr> +<tr class="odd iron"> +<td class="rank">*</td><td>team4 - 咱们狠鰜沀*</td><td class="center">5</td><td class="right">344</td><td class="no">8/--</td><td class="no">1/--</td><td class="yes">1/145</td><td class="yes">1/76</td><td class="yes">3/46</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/20</td><td class="center">0/--</td><td class="yes">2/17</td><td>17/5</td> +</tr> +<tr class="even bronze"> +<td class="rank">16</td><td>team42 - meat</td><td class="center">5</td><td class="right">482</td><td class="yes">1/184</td><td class="center">0/--</td><td class="yes">3/112</td><td class="center">0/--</td><td class="yes">1/66</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/15</td><td class="center">0/--</td><td class="yes">3/45</td><td>9/5</td> +</tr> +<tr class="odd iron"> +<td class="rank">17</td><td>team25 - 15份的树莓派</td><td class="center">5</td><td class="right">657</td><td class="yes">1/173</td><td class="center">0/--</td><td class="yes">1/177</td><td class="center">0/--</td><td class="yes">1/94</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/18</td><td class="center">0/--</td><td class="yes">3/155</td><td>7/5</td> +</tr> +<tr class="even iron"> +<td class="rank">18</td><td>team14 - [此处是很厉害的队名]</td><td class="center">5</td><td class="right">888</td><td class="no">28/--</td><td class="center">0/--</td><td class="yes">8/150</td><td class="yes">5/287</td><td class="yes">3/103</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">2/49</td><td class="center">0/--</td><td class="yes">2/59</td><td>48/5</td> +</tr> +<tr class="odd iron"> +<td class="rank">19</td><td>team30 - 此刻尽丝滑</td><td class="center">5</td><td class="right">894</td><td class="yes">11/272</td><td class="center">0/--</td><td class="yes">5/212</td><td class="center">0/--</td><td class="yes">2/120</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">3/38</td><td class="center">0/--</td><td class="yes">4/92</td><td>25/5</td> +</tr> +<tr class="even iron"> +<td class="rank">20</td><td>team41 - ACM</td><td class="center">5</td><td class="right">936</td><td class="yes">14/229</td><td class="center">0/--</td><td class="yes">10/244</td><td class="no">1/--</td><td class="yes">2/123</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">2/45</td><td class="center">0/--</td><td class="yes">1/35</td><td>30/5</td> +</tr> +<tr class="odd"> +<td>21</td><td>team23 - 122@^</td><td class="center">4</td><td class="right">0(704)</td><td class="no">6/--</td><td class="center">0/--</td><td class="yes">2/242</td><td class="center">0/--</td><td class="yes">6/125</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">5/15</td><td class="center">0/--</td><td class="yes">2/102</td><td>21/4</td> +</tr> +<tr class="even"> +<td>21</td><td>team50 - 开开心心写代码^</td><td class="center">4</td><td class="right">0(793)</td><td class="center">0/--</td><td class="no">3/--</td><td class="no">7/--</td><td class="yes">1/276</td><td class="yes">3/172</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">5/43</td><td class="center">0/--</td><td class="yes">3/142</td><td>22/4</td> +</tr> +<tr class="odd"> +<td>21</td><td>team18 - 123^</td><td class="center">4</td><td class="right">0(1049)</td><td class="yes">8/261</td><td class="center">0/--</td><td class="yes">5/165</td><td class="center">0/--</td><td class="yes">3/276</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">4/47</td><td class="center">0/--</td><td class="no">14/--</td><td>34/4</td> +</tr> +<tr class="even"> +<td>24</td><td>team19 - 这个队名很正常</td><td class="center">4</td><td class="right">409</td><td class="yes">6/200</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/66</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/26</td><td class="center">0/--</td><td class="yes">1/57</td><td>9/4</td> +</tr> +<tr class="odd"> +<td>25</td><td>team49 - 干蒸烧卖糯米鸡</td><td class="center">4</td><td class="right">425</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/139</td><td class="center">0/--</td><td class="yes">2/87</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/18</td><td class="no">2/--</td><td class="yes">2/161</td><td>8/4</td> +</tr> +<tr class="even"> +<td>26</td><td>team48 - 小队</td><td class="center">4</td><td class="right">492</td><td class="yes">2/160</td><td class="center">0/--</td><td class="no">10/--</td><td class="center">0/--</td><td class="yes">4/168</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/22</td><td class="center">0/--</td><td class="yes">2/62</td><td>19/4</td> +</tr> +<tr class="odd"> +<td>27</td><td>team26 - 算计啊</td><td class="center">4</td><td class="right">493</td><td class="no">4/--</td><td class="center">0/--</td><td class="yes">1/162</td><td class="center">0/--</td><td class="yes">5/186</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/21</td><td class="center">0/--</td><td class="yes">1/44</td><td>12/4</td> +</tr> +<tr class="even"> +<td>28</td><td>team36 - 胡德平呀胡德平</td><td class="center">4</td><td class="right">597</td><td class="no">3/--</td><td class="center">0/--</td><td class="yes">1/149</td><td class="no">1/--</td><td class="yes">2/85</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">3/40</td><td class="center">0/--</td><td class="yes">5/183</td><td>15/4</td> +</tr> +<tr class="odd"> +<td>29</td><td>team32 - 得奖?不存在的!</td><td class="center">4</td><td class="right">668</td><td class="no">7/--</td><td class="center">0/--</td><td class="yes">5/225</td><td class="center">0/--</td><td class="yes">4/114</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/22</td><td class="center">0/--</td><td class="yes">2/147</td><td>19/4</td> +</tr> +<tr class="even"> +<td>*</td><td>team3 - 不WA算我输*</td><td class="center">4</td><td class="right">836</td><td class="yes">10/290</td><td class="center">0/--</td><td class="yes">9/239</td><td class="no">9/--</td><td class="no">3/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/15</td><td class="center">0/--</td><td class="yes">3/12</td><td>35/4</td> +</tr> +<tr class="odd"> +<td>30</td><td>team20 - ZING</td><td class="center">4</td><td class="right">948</td><td class="yes">4/251</td><td class="no">2/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">12/281</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/24</td><td class="center">0/--</td><td class="yes">4/52</td><td>23/4</td> +</tr> +<tr class="even"> +<td>31</td><td>team47 - 水一水</td><td class="center">4</td><td class="right">1034</td><td class="yes">8/286</td><td class="center">0/--</td><td class="no">9/--</td><td class="center">0/--</td><td class="yes">2/176</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/15</td><td class="center">0/--</td><td class="yes">8/277</td><td>28/4</td> +</tr> +<tr class="odd"> +<td>32</td><td>team8 - 梅锋真没疯</td><td class="center">3</td><td class="right">268</td><td class="no">5/--</td><td class="center">0/--</td><td class="yes">1/129</td><td class="center">0/--</td><td class="yes">2/76</td><td class="no">1/--</td><td class="center">0/--</td><td class="yes">1/43</td><td class="center">0/--</td><td class="no">5/--</td><td>15/3</td> +</tr> +<tr class="even"> +<td>33</td><td>team29 - 啤酒瓶</td><td class="center">3</td><td class="right">291</td><td class="no">5/--</td><td class="no">2/--</td><td class="no">6/--</td><td class="no">1/--</td><td class="yes">2/35</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">2/5</td><td class="center">0/--</td><td class="yes">3/171</td><td>21/3</td> +</tr> +<tr class="odd"> +<td>34</td><td>team5 - 午时已到</td><td class="center">3</td><td class="right">336</td><td class="no">10/--</td><td class="center">0/--</td><td class="no">9/--</td><td class="center">0/--</td><td class="yes">1/28</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/8</td><td class="center">0/--</td><td class="yes">5/240</td><td>26/3</td> +</tr> +<tr class="even"> +<td>35</td><td>team34 - 一颗赛艇</td><td class="center">3</td><td class="right">456</td><td class="no">2/--</td><td class="no">2/--</td><td class="yes">7/195</td><td class="center">0/--</td><td class="yes">2/42</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/79</td><td class="center">0/--</td><td class="no">10/--</td><td>24/3</td> +</tr> +<tr class="odd"> +<td>36</td><td>team21 - 咸鱼非余</td><td class="center">3</td><td class="right">462</td><td class="no">8/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">5/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/7</td><td class="yes">3/187</td><td class="yes">1/248</td><td>18/3</td> +</tr> +<tr class="even"> +<td>37</td><td>team46 - 伊利纯牛奶</td><td class="center">3</td><td class="right">498</td><td class="yes">12/214</td><td class="no">2/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">5/--</td><td class="center">0/--</td><td class="yes">3/116</td><td class="center">0/--</td><td class="yes">1/128</td><td>23/3</td> +</tr> +<tr class="odd"> +<td>38</td><td>team12 - 小腿想成为大腿^</td><td class="center">2</td><td class="right">0(359)</td><td class="no">4/--</td><td class="no">2/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">3/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/119</td><td class="center">0/--</td><td class="yes">6/240</td><td>16/2</td> +</tr> +<tr class="even"> +<td>39</td><td>team35 - 风水扬沙果粒无敌必胜超级厉害队^</td><td class="center">2</td><td class="right">0(512)</td><td class="no">7/--</td><td class="center">0/--</td><td class="yes">10/261</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">3/31</td><td class="center">0/--</td><td class="center">0/--</td><td>20/2</td> +</tr> +<tr class="odd"> +<td>40</td><td>team43 - triple_six</td><td class="center">2</td><td class="right">139</td><td class="no">8/--</td><td class="center">0/--</td><td class="no">11/--</td><td class="center">0/--</td><td class="yes">4/63</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/16</td><td class="center">0/--</td><td class="no">9/--</td><td>33/2</td> +</tr> +<tr class="even"> +<td>41</td><td>team10 - 明月照大江</td><td class="center">2</td><td class="right">167</td><td class="yes">2/92</td><td class="no">7/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">7/--</td><td class="yes">1/55</td><td class="center">0/--</td><td class="no">17/--</td><td>34/2</td> +</tr> +<tr class="odd"> +<td>42</td><td>team27 - 代码怎么写都队^</td><td class="center">1</td><td class="right">0(43)</td><td class="no">5/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="no">7/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">1/43</td><td class="center">0/--</td><td class="no">5/--</td><td>18/1</td> +</tr> +<tr class="even"> +<td>43</td><td>team17 - 在废人的领域也同样无敌</td><td class="center">1</td><td class="right">181</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">2/161</td><td class="center">0/--</td><td class="no">16/--</td><td>18/1</td> +</tr> +<tr class="odd"> +<td>44</td><td>team11 - String Name</td><td class="center">1</td><td class="right">182</td><td class="no">18/--</td><td class="no">4/--</td><td class="no">7/--</td><td class="center">0/--</td><td class="no">10/--</td><td class="center">0/--</td><td class="center">0/--</td><td class="yes">5/102</td><td class="center">0/--</td><td class="center">0/--</td><td>44/1</td> +</tr> +<tr> +<td></td><td>Submitted/1st Yes/Total Yes</td><td></td><td></td><td class="center">295/25/29</td><td class="center">39/--/0</td><td class="center">181/90/33</td><td class="center">56/76/19</td><td class="center">135/10/39</td><td class="center">20/--/0</td><td class="center">17/--/0</td><td class="center">78/3/48</td><td class="center">30/187/4</td><td class="center">177/12/39</td><td>1028/211</td> +</tr> +</TABLE> +</center> +<div class="tail"> +<span class="right"><A HREF="http://pc2.ecs.csus.edu/">PC^2 Homepage</A> +<br> + CSS by Tomas Cerny and Ray Holder +</span> +Created by <A HREF="http://pc2.ecs.csus.edu/">CSUS PC^2</A> version 9.3.3 20160914 build 3454<br> +Last updated +Sat Apr 08 17:40:05 CST 2017</div> +</BODY> +</HTML> |