summaryrefslogtreecommitdiff
path: root/sduacm2017
diff options
context:
space:
mode:
Diffstat (limited to 'sduacm2017')
-rw-r--r--sduacm2017/index.html50
-rw-r--r--sduacm2017/junior/problems_j.pdfbin0 -> 957171 bytes
-rw-r--r--sduacm2017/junior/ranklist249
-rw-r--r--sduacm2017/lec1/lec.pdfbin0 -> 1393291 bytes
-rw-r--r--sduacm2017/lec1/lec.tex440
-rw-r--r--sduacm2017/lec1/zz.pngbin0 -> 3638 bytes
-rw-r--r--sduacm2017/lec1/zz1.pngbin0 -> 9919 bytes
-rw-r--r--sduacm2017/lec1/zz2.pngbin0 -> 864349 bytes
-rw-r--r--sduacm2017/lec2/lec.pdfbin0 -> 781277 bytes
-rw-r--r--sduacm2017/lec2/lec.tex312
-rw-r--r--sduacm2017/lec2/zz1.pngbin0 -> 9919 bytes
-rw-r--r--sduacm2017/lec2/zz2.pngbin0 -> 353804 bytes
-rw-r--r--sduacm2017/lec3/c1.pngbin0 -> 214300 bytes
-rw-r--r--sduacm2017/lec3/c2.pngbin0 -> 296127 bytes
-rw-r--r--sduacm2017/lec3/lec.pdfbin0 -> 817559 bytes
-rw-r--r--sduacm2017/lec3/lec.tex241
-rw-r--r--sduacm2017/senior/problems_s.pdfbin0 -> 1024819 bytes
-rw-r--r--sduacm2017/senior/ranklist.html324
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 &amp; 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 &amp; 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&nbsp;&nbsp;<a href="../#about">About</a>&nbsp;&nbsp;Site Map</div></td>
+ </tr>
+</table>
+</body>
+</html>
diff --git a/sduacm2017/junior/problems_j.pdf b/sduacm2017/junior/problems_j.pdf
new file mode 100644
index 0000000..961a342
--- /dev/null
+++ b/sduacm2017/junior/problems_j.pdf
Binary files differ
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>&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>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
new file mode 100644
index 0000000..1e79812
--- /dev/null
+++ b/sduacm2017/lec1/lec.pdf
Binary files differ
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
new file mode 100644
index 0000000..6caa4c2
--- /dev/null
+++ b/sduacm2017/lec1/zz.png
Binary files differ
diff --git a/sduacm2017/lec1/zz1.png b/sduacm2017/lec1/zz1.png
new file mode 100644
index 0000000..8e5bcf8
--- /dev/null
+++ b/sduacm2017/lec1/zz1.png
Binary files differ
diff --git a/sduacm2017/lec1/zz2.png b/sduacm2017/lec1/zz2.png
new file mode 100644
index 0000000..08da2dc
--- /dev/null
+++ b/sduacm2017/lec1/zz2.png
Binary files differ
diff --git a/sduacm2017/lec2/lec.pdf b/sduacm2017/lec2/lec.pdf
new file mode 100644
index 0000000..7c69fbf
--- /dev/null
+++ b/sduacm2017/lec2/lec.pdf
Binary files differ
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
new file mode 100644
index 0000000..8e5bcf8
--- /dev/null
+++ b/sduacm2017/lec2/zz1.png
Binary files differ
diff --git a/sduacm2017/lec2/zz2.png b/sduacm2017/lec2/zz2.png
new file mode 100644
index 0000000..ce8d970
--- /dev/null
+++ b/sduacm2017/lec2/zz2.png
Binary files differ
diff --git a/sduacm2017/lec3/c1.png b/sduacm2017/lec3/c1.png
new file mode 100644
index 0000000..0e6b37c
--- /dev/null
+++ b/sduacm2017/lec3/c1.png
Binary files differ
diff --git a/sduacm2017/lec3/c2.png b/sduacm2017/lec3/c2.png
new file mode 100644
index 0000000..93c15f3
--- /dev/null
+++ b/sduacm2017/lec3/c2.png
Binary files differ
diff --git a/sduacm2017/lec3/lec.pdf b/sduacm2017/lec3/lec.pdf
new file mode 100644
index 0000000..8eb6176
--- /dev/null
+++ b/sduacm2017/lec3/lec.pdf
Binary files differ
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
new file mode 100644
index 0000000..f7839b5
--- /dev/null
+++ b/sduacm2017/senior/problems_s.pdf
Binary files differ
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>&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>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>