<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>鬼の领地 &#187; NOIP</title>
	<atom:link href="http://blog.upsuper.org/tag/noip/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.upsuper.org</link>
	<description>the place where there are some ghost appearing...</description>
	<lastBuildDate>Wed, 19 Oct 2011 13:21:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>NOIP2008，OI 之路的终点</title>
		<link>http://blog.upsuper.org/noip2008-the-end-of-my-oi-road/</link>
		<comments>http://blog.upsuper.org/noip2008-the-end-of-my-oi-road/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 09:27:28 +0000</pubDate>
		<dc:creator>upsuper</dc:creator>
				<category><![CDATA[琐事杂谈]]></category>
		<category><![CDATA[NOIP]]></category>

		<guid isPermaLink="false">http://blog.upsuper.org/?p=609</guid>
		<description><![CDATA[这是我第二次，也是最后一次参加 NOIP 了。应该说，NOIP2007 的经历虽然是失败的，但是却是一次宝贵的考场经验。应该是得益于 NOIP2007 和 NOIP2008 前的几次模拟赛上的粗心，这次的题目虽然简单，仍然一再检查确保正确，最后很高兴的拿了省一。 这次的第一题着实是水题，先写了个小程序打素数表，然后统计一下字母什么的就好了。 第二题其实我是不知道该怎么做的，想搜索？写一个搜索速度好慢，21都搜了3s左右。DP？又想不出怎么转移。所以这题反而是第三题写完才转回来写的。虽然不知道这题该用什么算法，不过看到数据规模——≤24？？搜索+打表，解决问题……为了防止出超规模数据，我还顺便搜了个25的结果。出来后听别人说，直接1000*1000的枚举，非常快……我当时可是10000*10000的啊…… 第三题，简单 DP。因为在 Vijos 上写过那题三取方格数，因此这题就是轻松解决。不过这题亦是我唯一检查出错误的题。检查的时候发现漏了一个条件，就是每个数只能取一次，而不是取两次只算一次。这个差点就败了……幸好啊…… 第四题，我想贪心……想了很久，不知道反例为何，就写了。据说全福建不超过5个人在考场上想出第四题贪心的反例。不过我觉得当时写下搜索应该就可以40分了……纯贪只有30分。这题亦是最曲折波澜的…… 记得最早的一次测评，我是310分，前三题 AC，第四题10分，据说是输出0的分数。后来知道，原来是我在行末输出了题目中禁止的多余空格，本来能贪出的点被判掉了。不过当时310分以上的才四十余，对于今年50个名额，省一应该是没问题了。但是，当听说其他很多人最后一题是因为最后缺少换行而被判0分，我知道我似乎危险了。晚上8点多，北京把第四题的数据和测评方式更新并发到福建后进行了第二次测评，结果是我也被升到330，行尾空格被忽略。但这终不是北京复评的成绩，而且我的问题是题目中有明确说明的，因此仍然担心是否会再被判下来。最终的结果证明，数据和测评方式没有再变，我的成绩也最终定格在330，省一到手了。 这次高三和我一同拿到省一的，还有 xb 和 qrc，此外 doggy 也拿到了，一并祝贺吧。还有 javran，感谢你当年把我引入这条 OI 之路，祝你能高考顺利吧。还有对我悉心教导的 HunkShaw、cy、SerailHydra、ScaleRhyme、LQHL、LXX 等人，谢谢你们！没有你们也没有我今天的成绩。 庆祝一下省一吧，下面还有很多事情呢。]]></description>
			<content:encoded><![CDATA[<p>这是我第二次，也是最后一次参加 NOIP 了。应该说，NOIP2007 的经历虽然是失败的，但是却是一次宝贵的考场经验。应该是得益于 NOIP2007 和 NOIP2008 前的几次模拟赛上的粗心，这次的题目虽然简单，仍然一再检查确保正确，最后很高兴的拿了省一。</p>
<p>这次的第一题着实是水题，先写了个小程序打素数表，然后统计一下字母什么的就好了。</p>
<p>第二题其实我是不知道该怎么做的，想搜索？写一个搜索速度好慢，21都搜了3s左右。DP？又想不出怎么转移。所以这题反而是第三题写完才转回来写的。虽然不知道这题该用什么算法，不过看到数据规模——≤24？？搜索+打表，解决问题……为了防止出超规模数据，我还顺便搜了个25的结果。出来后听别人说，直接1000*1000的枚举，非常快……我当时可是10000*10000的啊……</p>
<p>第三题，简单 DP。因为在 Vijos 上写过那题三取方格数，因此这题就是轻松解决。不过这题亦是我唯一检查出错误的题。检查的时候发现漏了一个条件，就是每个数只能取一次，而不是取两次只算一次。这个差点就败了……幸好啊……</p>
<p>第四题，我想贪心……想了很久，不知道反例为何，就写了。据说全福建不超过5个人在考场上想出第四题贪心的反例。不过我觉得当时写下搜索应该就可以40分了……纯贪只有30分。这题亦是最曲折波澜的……</p>
<p>记得最早的一次测评，我是310分，前三题 AC，第四题10分，据说是输出0的分数。后来知道，原来是我在行末输出了题目中禁止的多余空格，本来能贪出的点被判掉了。不过当时310分以上的才四十余，对于今年50个名额，省一应该是没问题了。但是，当听说其他很多人最后一题是因为最后缺少换行而被判0分，我知道我似乎危险了。晚上8点多，北京把第四题的数据和测评方式更新并发到福建后进行了第二次测评，结果是我也被升到330，行尾空格被忽略。但这终不是北京复评的成绩，而且我的问题是题目中有明确说明的，因此仍然担心是否会再被判下来。最终的结果证明，数据和测评方式没有再变，我的成绩也最终定格在330，省一到手了。</p>
<p>这次高三和我一同拿到省一的，还有 xb 和 qrc，此外 doggy 也拿到了，一并祝贺吧。还有 javran，感谢你当年把我引入这条 OI 之路，祝你能高考顺利吧。还有对我悉心教导的 HunkShaw、cy、SerailHydra、ScaleRhyme、LQHL、LXX 等人，谢谢你们！没有你们也没有我今天的成绩。</p>
<p>庆祝一下省一吧，下面还有很多事情呢。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.upsuper.org/noip2008-the-end-of-my-oi-road/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>自我感觉良好的高精度</title>
		<link>http://blog.upsuper.org/self-satisfied-high-precision/</link>
		<comments>http://blog.upsuper.org/self-satisfied-high-precision/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 04:48:02 +0000</pubDate>
		<dc:creator>upsuper</dc:creator>
				<category><![CDATA[琐事杂谈]]></category>
		<category><![CDATA[NOIP]]></category>
		<category><![CDATA[高精度]]></category>

		<guid isPermaLink="false">http://blog.upsuper.org/?p=129</guid>
		<description><![CDATA[一道题目，要用高精度。我觉得这次写的高精度是我写得最清晰的一次了，所以贴出来纪念一下。 这道题目是这样的： 找关系(relation) 【问题描述】 任意给定两个数a,b，众所周知，它们之间有两种大小比较关系，如下： a = b a < b b < a 由于“=”的左右两边是对称的，所以a = b与b = a一共只算一种关系，并且a < b与b > a一共也只算一种关系。 那么按照如上规则：给定3个数a,b,c，它们之间大小比较关系就有13种，具体如下： a = b = c a = b < c c < a = b a < b = c b = c < a a = c < b b [...]]]></description>
			<content:encoded><![CDATA[<p>一道题目，要用高精度。我觉得这次写的高精度是我写得最清晰的一次了，所以贴出来纪念一下。<br />
<span id="more-129"></span><br />
这道题目是这样的：</p>
<blockquote><p>
<strong>找关系(relation)</strong></p>
<p>【问题描述】</p>
<p>任意给定两个数a,b，众所周知，它们之间有两种大小比较关系，如下：</p>
<pre>
a = b       a < b       b < a
</pre>
<p>由于“=”的左右两边是对称的，所以a = b与b = a一共只算一种关系，并且a < b与b > a一共也只算一种关系。<br />
那么按照如上规则：给定3个数a,b,c，它们之间大小比较关系就有13种，具体如下：</p>
<pre>
a = b = c       a = b < c       c < a = b       a < b = c
b = c < a       a = c < b       b < a = c       a < b < c
a < c < b       b < a < c       b < c < a       c < a < b
c < b < a
</pre>
<p>问题来了：请你设计一个程序算出对于给的N（意为有N个数，N<=300），求出这N个数大小比较关系有多少种。  </p>
<p>【输入文件】</p>
<p>有多组数据，数据组数<=10，每行一个N数据最后以-1结尾</p>
<p>【输出文件】</p>
<p>有多少组数据分多少行</p>
<p>按输入的顺序每行输出每个N对应的大小关系种数</p>
<table>
<tr>
<td>【样例输入】</td>
<td>【样例输出】</td>
</tr>
<tr>
<td>2<br />3<br />-1</td>
<td>3<br />13</td>
</tr>
</table>
</blockquote>
<p>数据下载：<a href="http://down.upsuper.org/data_relation.rar">data_relation.rar</a> （11.1 KB)</p>
<p>我的程序：</p>

<div class="wp_codebox"><table><tr id="p1292"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
</pre></td><td class="code" id="p129code2"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;stdio.h&gt;</span>
<span style="color: #339900;">#include &lt;memory.h&gt;</span>
&nbsp;
<span style="color: #339900;">#define BIGBIT 1000000</span>
<span style="color: #339900;">#define MAX(a, b) ((a)&gt;(b)?(a):(b))</span>
&nbsp;
<span style="color: #0000ff;">struct</span> bignum
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">int</span> len<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> num<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">150</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> n<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">301</span><span style="color: #008000;">&#93;</span>, maxn<span style="color: #008080;">;</span>
bignum f<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">300</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> fp, fn, ft<span style="color: #008080;">;</span>
bignum tans<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">300</span><span style="color: #008000;">&#93;</span>, ans<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">20</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
&nbsp;
bignum<span style="color: #000040;">&amp;</span> add<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> bignum <span style="color: #000040;">&amp;</span>a, <span style="color: #0000ff;">const</span> bignum <span style="color: #000040;">&amp;</span>b, bignum <span style="color: #000040;">&amp;</span>result<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000dd;">memset</span><span style="color: #008000;">&#40;</span>result.<span style="color: #007788;">num</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>result.<span style="color: #007788;">num</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> a.<span style="color: #007788;">len</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
		result.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> a.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> b.<span style="color: #007788;">len</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
		result.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span><span style="color: #000080;">=</span> b.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
&nbsp;
	result.<span style="color: #007788;">len</span> <span style="color: #000080;">=</span> MAX<span style="color: #008000;">&#40;</span>a.<span style="color: #007788;">len</span>, b.<span style="color: #007788;">len</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> result.<span style="color: #007788;">len</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>result.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&gt;=</span> BIGBIT<span style="color: #008000;">&#41;</span>
			result.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span><span style="color: #000080;">=</span> result.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">/</span> BIGBIT,
			result.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">%</span><span style="color: #000080;">=</span> BIGBIT<span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>result.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>result.<span style="color: #007788;">len</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
		<span style="color: #000040;">++</span>result.<span style="color: #007788;">len</span><span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">return</span> result<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> mul<span style="color: #008000;">&#40;</span>bignum <span style="color: #000040;">&amp;</span>dest, <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> src<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> dest.<span style="color: #007788;">len</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
		dest.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span><span style="color: #000080;">=</span> src<span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> dest.<span style="color: #007788;">len</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>dest.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&gt;=</span> BIGBIT<span style="color: #008000;">&#41;</span>
			dest.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span><span style="color: #000080;">=</span> dest.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">/</span> BIGBIT,
			dest.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">%</span><span style="color: #000080;">=</span> BIGBIT<span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>dest.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>dest.<span style="color: #007788;">len</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
		<span style="color: #000040;">++</span>dest.<span style="color: #007788;">len</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> set<span style="color: #008000;">&#40;</span>bignum <span style="color: #000040;">&amp;</span>dest, <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> src<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>src <span style="color: #000080;">&gt;=</span> BIGBIT<span style="color: #008000;">&#41;</span>
		dest.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> src <span style="color: #000040;">%</span> BIGBIT,
		dest.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> src <span style="color: #000040;">/</span> BIGBIT,
		dest.<span style="color: #007788;">len</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>src <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
		dest.<span style="color: #007788;">len</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">else</span>
		dest.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> src,
		dest.<span style="color: #007788;">len</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> set<span style="color: #008000;">&#40;</span>bignum <span style="color: #000040;">&amp;</span>dest, <span style="color: #0000ff;">const</span> bignum <span style="color: #000040;">&amp;</span>src<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	dest.<span style="color: #007788;">len</span> <span style="color: #000080;">=</span> src.<span style="color: #007788;">len</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> src.<span style="color: #007788;">len</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
		dest.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> src.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> print<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> bignum <span style="color: #000040;">&amp;</span>src<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d&quot;</span>, src.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>src.<span style="color: #007788;">len</span> <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> src.<span style="color: #007788;">len</span> <span style="color: #000040;">-</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&gt;=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> <span style="color: #000040;">--</span>i<span style="color: #008000;">&#41;</span>
		<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%06d&quot;</span>, src.<span style="color: #007788;">num</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000dd;">freopen</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;relation.in&quot;</span>, <span style="color: #FF0000;">&quot;r&quot;</span>, <span style="color: #0000ff;">stdin</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000dd;">freopen</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;relation.out&quot;</span>, <span style="color: #FF0000;">&quot;w&quot;</span>, <span style="color: #0000ff;">stdout</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
	maxn <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> <span style="color: #0000dd;">15</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">int</span> tn<span style="color: #008080;">;</span>
		<span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d&quot;</span>, <span style="color: #000040;">&amp;</span>tn<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>tn <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
		<span style="color: #008000;">&#123;</span> n<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> i <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> <span style="color: #0000ff;">break</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span>
		n<span style="color: #008000;">&#91;</span>tn<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> i<span style="color: #008080;">;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>tn <span style="color: #000080;">&gt;</span> maxn<span style="color: #008000;">&#41;</span> maxn <span style="color: #000080;">=</span> tn<span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
&nbsp;
	fp <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span>, fn <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
	set<span style="color: #008000;">&#40;</span>f<span style="color: #008000;">&#91;</span>fp<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, <span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> set<span style="color: #008000;">&#40;</span>f<span style="color: #008000;">&#91;</span>fp<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">3</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> maxn<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> j <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> j <span style="color: #000080;">&lt;</span> i<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>j<span style="color: #008000;">&#41;</span>
			mul<span style="color: #008000;">&#40;</span>add<span style="color: #008000;">&#40;</span>f<span style="color: #008000;">&#91;</span>fp<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span>, f<span style="color: #008000;">&#91;</span>fp<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>j <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, f<span style="color: #008000;">&#91;</span>fn<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>, i <span style="color: #000040;">-</span> j<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
		<span style="color: #008000;">&#123;</span>
			set<span style="color: #008000;">&#40;</span>tans<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span>, f<span style="color: #008000;">&#91;</span>fn<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> j <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> j <span style="color: #000080;">&lt;</span> i<span style="color: #008080;">;</span> <span style="color: #000040;">++</span>j<span style="color: #008000;">&#41;</span>
				add<span style="color: #008000;">&#40;</span>tans<span style="color: #008000;">&#91;</span>j <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span>, f<span style="color: #008000;">&#91;</span>fn<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span>, tans<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			set<span style="color: #008000;">&#40;</span>ans<span style="color: #008000;">&#91;</span>n<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#93;</span>, tans<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #008000;">&#125;</span>
		ft <span style="color: #000080;">=</span> fp, fp <span style="color: #000080;">=</span> fn, fn <span style="color: #000080;">=</span> ft<span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
&nbsp;
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> n<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
		print<span style="color: #008000;">&#40;</span>ans<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>结果：</p>
<table>
<tr>
<td>
1：0.07s<br />
2：0.17s<br />
3：0.12s<br />
4：0.04s<br />
5：0.07s
</td>
<td>
6：0.06s<br />
7：0.21s<br />
8：0.07s<br />
9：0.12s<br />
10：0.28s
</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.upsuper.org/self-satisfied-high-precision/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>一段被瑞星判为病毒的代码</title>
		<link>http://blog.upsuper.org/code-sentenced-to-virus-by-rising/</link>
		<comments>http://blog.upsuper.org/code-sentenced-to-virus-by-rising/#comments</comments>
		<pubDate>Sat, 31 May 2008 04:14:57 +0000</pubDate>
		<dc:creator>upsuper</dc:creator>
				<category><![CDATA[琐事杂谈]]></category>
		<category><![CDATA[NOIP]]></category>
		<category><![CDATA[杀毒]]></category>

		<guid isPermaLink="false">http://blog.upsuper.org/?p=101</guid>
		<description><![CDATA[这段代码其实是昨晚的测试中一道题的代码。这段代码虽不能AC，但是我贴出来，是因为用它编译得东西瑞星会报病毒…… 附带一些信息： 编译器：g++ 3.4.2 瑞星版本：20.46.42 “病毒”名称：Trojan.PSW.Win32.GameOnline.cn 我现在越来越在想换卡巴斯基了……一年也不要多少钱…… 下面是那段代码： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 [...]]]></description>
			<content:encoded><![CDATA[<p>这段代码其实是昨晚的测试中一道题的代码。这段代码虽不能AC，但是我贴出来，是因为用它编译得东西瑞星会报病毒……</p>
<p>附带一些信息：</p>
<ul>
<li>编译器：g++ 3.4.2</li>
<li>瑞星版本：20.46.42</li>
<li>“病毒”名称：Trojan.PSW.Win32.GameOnline.cn</li>
</ul>
<p>我现在越来越在想换卡巴斯基了……一年也不要多少钱……</p>
<p><span id="more-101"></span></p>
<p>下面是那段代码：</p>

<div class="wp_codebox"><table><tr id="p1016"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
</pre></td><td class="code" id="p101code6"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;stdio.h&gt;</span>
<span style="color: #339900;">#include &lt;memory.h&gt;</span>
&nbsp;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">bool</span> IS_PRIMES<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span>
	<span style="color: #ff0000; font-style: italic;">/*      0  1  2  3  4  5  6  7  8  9*/</span>
	<span style="color: #ff0000; font-style: italic;">/* 0 */</span> <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span>,
	<span style="color: #ff0000; font-style: italic;">/* 1 */</span> <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">1</span>,
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> FAC<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span>	<span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">2</span>, <span style="color: #0000dd;">6</span>, <span style="color: #0000dd;">24</span>, <span style="color: #0000dd;">120</span>, <span style="color: #0000dd;">720</span>, <span style="color: #0000dd;">5040</span>, <span style="color: #0000dd;">40320</span> <span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> POW<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span>	<span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">10</span>, <span style="color: #0000dd;">100</span>, <span style="color: #0000dd;">1000</span>, <span style="color: #0000dd;">10000</span>, <span style="color: #0000dd;">100000</span>, <span style="color: #0000dd;">1000000</span>, <span style="color: #0000dd;">10000000</span> <span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">bool</span> s<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">10</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">bool</span> f<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">42000</span> <span style="color: #ff0000; font-style: italic;">/*370000*/</span> <span style="color: #ff0000; font-style: italic;">/*16100000*/</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> q<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">42000</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">10</span><span style="color: #008000;">&#93;</span>, qd<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">42000</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> l, r<span style="color: #008080;">;</span>
<span style="color: #0000ff;">int</span> ans<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> ktcv<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> <span style="color: #000040;">*</span>x<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">int</span> u <span style="color: #000080;">=</span> <span style="color: #0000dd;">11111111</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> o <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">7</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">int</span> p <span style="color: #000080;">=</span> POW<span style="color: #008000;">&#91;</span>x<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
		u <span style="color: #000040;">-</span><span style="color: #000080;">=</span> p<span style="color: #008080;">;</span>
		<span style="color: #0000ff;">int</span> k <span style="color: #000080;">=</span> u <span style="color: #000040;">%</span> p <span style="color: #000040;">%</span> <span style="color: #0000dd;">9</span><span style="color: #008080;">;</span>
		o <span style="color: #000040;">+</span><span style="color: #000080;">=</span> k <span style="color: #000040;">*</span> FAC<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">7</span> <span style="color: #000040;">-</span> i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">return</span> o<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">bool</span> check<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> <span style="color: #000040;">*</span>x<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>x<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
		<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>x<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span> <span style="color: #000040;">!</span><span style="color: #000080;">=</span> x<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
			<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> push<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> <span style="color: #000040;">*</span>x, <span style="color: #0000ff;">int</span> d<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">int</span> h <span style="color: #000080;">=</span> ktcv<span style="color: #008000;">&#40;</span>x<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>f<span style="color: #008000;">&#91;</span>h<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
		<span style="color: #0000ff;">return</span> <span style="color: #008080;">;</span>
	f<span style="color: #008000;">&#91;</span>h<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span>
	<span style="color: #0000dd;">memcpy</span><span style="color: #008000;">&#40;</span>q<span style="color: #008000;">&#91;</span>r<span style="color: #008000;">&#93;</span>, x, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>q<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	qd<span style="color: #008000;">&#91;</span>r<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> d<span style="color: #008080;">;</span>
	r<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">inline</span> <span style="color: #0000ff;">int</span> <span style="color: #0000dd;">abs</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> n<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span> <span style="color: #0000ff;">return</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #008080;">?</span> n <span style="color: #008080;">:</span> <span style="color: #000040;">-</span>n<span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000dd;">freopen</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;digits.in&quot;</span>, <span style="color: #FF0000;">&quot;r&quot;</span>, <span style="color: #0000ff;">stdin</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000dd;">freopen</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;digits.out&quot;</span>, <span style="color: #FF0000;">&quot;w&quot;</span>, <span style="color: #0000ff;">stdout</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">int</span> number <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">do</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">int</span> tn<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">10</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
		l <span style="color: #000080;">=</span> r <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
		<span style="color: #0000dd;">memset</span><span style="color: #008000;">&#40;</span>f, <span style="color: #0000ff;">false</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>f<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
		<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
		<span style="color: #008000;">&#123;</span>
			<span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d&quot;</span>, <span style="color: #000040;">&amp;</span>tn<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>tn<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
				<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
			s<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">abs</span><span style="color: #008000;">&#40;</span>tn<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>tn<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&gt;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
			tn<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">abs</span><span style="color: #008000;">&#40;</span>tn<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #008000;">&#125;</span>
		ans <span style="color: #000080;">=</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
		number<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
		push<span style="color: #008000;">&#40;</span>tn, <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
		<span style="color: #0000ff;">do</span>
		<span style="color: #008000;">&#123;</span>
			<span style="color: #0000ff;">int</span> d <span style="color: #000080;">=</span> qd<span style="color: #008000;">&#91;</span>l<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
			<span style="color: #0000dd;">memcpy</span><span style="color: #008000;">&#40;</span>tn, q<span style="color: #008000;">&#91;</span>l<span style="color: #008000;">&#93;</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>tn<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
			<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>check<span style="color: #008000;">&#40;</span>tn<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
			<span style="color: #008000;">&#123;</span>
				ans <span style="color: #000080;">=</span> d<span style="color: #008080;">;</span>
				<span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
			<span style="color: #008000;">&#125;</span>
			d<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
&nbsp;
			<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
			<span style="color: #008000;">&#123;</span>
				<span style="color: #0000ff;">int</span> ti <span style="color: #000080;">=</span> tn<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
				<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>s<span style="color: #008000;">&#91;</span>ti<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
					<span style="color: #0000ff;">continue</span><span style="color: #008080;">;</span>
				<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> j <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> j <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span> j<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
				<span style="color: #008000;">&#123;</span>
					<span style="color: #0000ff;">int</span> tj <span style="color: #000080;">=</span> tn<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
					<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>s<span style="color: #008000;">&#91;</span>tj<span style="color: #008000;">&#93;</span> <span style="color: #000040;">&amp;&amp;</span> IS_PRIMES<span style="color: #008000;">&#91;</span>ti <span style="color: #000040;">+</span> tj<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
					<span style="color: #008000;">&#123;</span>
						<span style="color: #0000ff;">int</span> sn<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">10</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
						<span style="color: #0000ff;">int</span> bi <span style="color: #000080;">=</span> i, bj <span style="color: #000080;">=</span> j, tij<span style="color: #008080;">;</span>
						<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">&gt;</span> j<span style="color: #008000;">&#41;</span>
							tij <span style="color: #000080;">=</span> i, i <span style="color: #000080;">=</span> j, j <span style="color: #000080;">=</span> tij,
							tij <span style="color: #000080;">=</span> ti, ti <span style="color: #000080;">=</span> tj, tj <span style="color: #000080;">=</span> tij<span style="color: #008080;">;</span>
&nbsp;
						<span style="color: #666666;">// i -&gt; ij</span>
						<span style="color: #0000dd;">memcpy</span><span style="color: #008000;">&#40;</span>sn, tn, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>sn<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
						<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> k <span style="color: #000080;">=</span> i<span style="color: #008080;">;</span> k <span style="color: #000080;">&lt;</span> j<span style="color: #008080;">;</span> k<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
							sn<span style="color: #008000;">&#91;</span>k<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> sn<span style="color: #008000;">&#91;</span>k <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
						sn<span style="color: #008000;">&#91;</span>j <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> ti<span style="color: #008080;">;</span>
						push<span style="color: #008000;">&#40;</span>sn, d<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
						<span style="color: #666666;">// i -&gt; ji</span>
						sn<span style="color: #008000;">&#91;</span>j <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> tj<span style="color: #008080;">;</span>
						sn<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> ti<span style="color: #008080;">;</span>
						push<span style="color: #008000;">&#40;</span>sn, d<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
						<span style="color: #666666;">// ji &lt;- j</span>
						<span style="color: #0000dd;">memcpy</span><span style="color: #008000;">&#40;</span>sn, tn, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>sn<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
						<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> k <span style="color: #000080;">=</span> j<span style="color: #008080;">;</span> k <span style="color: #000080;">&gt;</span> i<span style="color: #008080;">;</span> k<span style="color: #000040;">--</span><span style="color: #008000;">&#41;</span>
							sn<span style="color: #008000;">&#91;</span>k<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> sn<span style="color: #008000;">&#91;</span>k <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
						sn<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> tj<span style="color: #008080;">;</span>
						push<span style="color: #008000;">&#40;</span>sn, d<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
						<span style="color: #666666;">// ij &lt;- j</span>
						sn<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> ti<span style="color: #008080;">;</span>
						sn<span style="color: #008000;">&#91;</span>i <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> tj<span style="color: #008080;">;</span>
						push<span style="color: #008000;">&#40;</span>sn, d<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
						i <span style="color: #000080;">=</span> bi, j <span style="color: #000080;">=</span> bj<span style="color: #008080;">;</span>
						ti <span style="color: #000080;">=</span> tn<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>, tj <span style="color: #000080;">=</span> tn<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
					<span style="color: #008000;">&#125;</span>
				<span style="color: #008000;">&#125;</span>
			<span style="color: #008000;">&#125;</span>
			l<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
		<span style="color: #008000;">&#125;</span>
		<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>l <span style="color: #000080;">&lt;</span> r<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
		<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Case %d: %d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, number, ans<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
	<span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">true</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>这个程序是比较不严重地TLE，最慢的一个点为1.80s。我可以证明茅山的Hash是错的，不过我找不到一个足够快的Hash。如果谁有办法告诉我啊……</p>
<p>附这道题目：</p>
<h3>跳舞的数字(digits)</h3>
<h4>问题描述</h4>
<p>数字喜欢跳舞。一天，1, 2, 3, 4, 5, 6, 7 和 8 站在一行开始一个舞会。每个时刻，一个男性数字可邀请一个女性数字和他跳舞，或一个女性数字可邀请一个男性数字和她跳舞，只要他们的和是素数。</p>
<p>在每次跳舞前，只有一个数字走到他想一起跳舞的人旁边，紧邻他的左边或右边。简单的，我们表示一个男性数字x为x，表示一个女性数字x为-x。假设数字一开始有以下顺序{1, 2, 4, 5, 6, -7, -3, 8}。</p>
<p>如果-3想和4跳舞，她必须走到4的左边，顺序变成{1, 2, -3, 4, 5, 6, -7, 8}；或他的右边，顺序变成{1, 2, 4, -3, 5, 6, -7, 8}。注意到-3不能和5跳舞，因为他们的和3+5=8 不是素数；2不能和5跳舞因为他们都是男性。</p>
<p>给出数字的起始顺序，找到最少的跳舞次数，使他们成为升序（绝对值）。</p>
<h4>输入文件</h4>
<p>输入最多20组数据。每组数据包含8个数字在一行。他们的绝对值组成1到8的排列。最后一组数据后接着一个数字0，它不需要被处理。</p>
<h4>输出文件</h4>
<p>对于每组数据，输出组数和最少的跳舞次数。如果无法排成升序输出-1。</p>
<h4>样例输入</h4>

<div class="wp_codebox"><table><tr id="p1017"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p101code7"><pre class="text" style="font-family:monospace;">1 2 4 5 6 -7 -3 8
1 2 3 4 5 6 7 8
1 2 3 5 -4 6 7 8
1 2 3 5 4 6 7 8
2 -8 -4 5 6 7 3 -1
0</pre></td></tr></table></div>

<h4>样例输出</h4>

<div class="wp_codebox"><table><tr id="p1018"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p101code8"><pre class="text" style="font-family:monospace;">Case 1: 1
Case 2: 0
Case 3: 1
Case 4: -1
Case 5: 3</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.upsuper.org/code-sentenced-to-virus-by-rising/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>太久没写程序了，重拾OI</title>
		<link>http://blog.upsuper.org/no-written-programs-for-too-long-regain-oi/</link>
		<comments>http://blog.upsuper.org/no-written-programs-for-too-long-regain-oi/#comments</comments>
		<pubDate>Thu, 29 May 2008 13:46:20 +0000</pubDate>
		<dc:creator>upsuper</dc:creator>
				<category><![CDATA[琐事杂谈]]></category>
		<category><![CDATA[NOIP]]></category>

		<guid isPermaLink="false">http://blog.upsuper.org/?p=99</guid>
		<description><![CDATA[已经好久没写程序了，上周为了Mondialogo的事情提前回去了，所以没有参加测试。今天做一下，做了一节晚自习，都是搜索题，一道题都没过，郁闷…… 决定要重拾OI了，Mondialogo的事情终于结束了，又要开始认真写程序了！ 希望明天的测试能有好成绩]]></description>
			<content:encoded><![CDATA[<p>已经好久没写程序了，上周为了Mondialogo的事情提前回去了，所以没有参加测试。今天做一下，做了一节晚自习，都是搜索题，一道题都没过，郁闷……</p>
<p>决定要重拾OI了，Mondialogo的事情终于结束了，又要开始认真写程序了！</p>
<p>希望明天的测试能有好成绩</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.upsuper.org/no-written-programs-for-too-long-regain-oi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008 Upsuper生日邀请赛</title>
		<link>http://blog.upsuper.org/2008-upsuper-birthday-invitational/</link>
		<comments>http://blog.upsuper.org/2008-upsuper-birthday-invitational/#comments</comments>
		<pubDate>Sat, 09 Feb 2008 13:51:12 +0000</pubDate>
		<dc:creator>upsuper</dc:creator>
				<category><![CDATA[我的计划]]></category>
		<category><![CDATA[NOIP]]></category>
		<category><![CDATA[生日]]></category>

		<guid isPermaLink="false">http://blog.upsuper.org/?p=40</guid>
		<description><![CDATA[今年的生日举办的邀请赛各信息在这里归统一下。 题目：20080209.pdf (344.99KB) 解题报告： 20080209_solution.pdf (278.79KB) 测试数据：20080209_data.rar (357.12KB) 推荐时长：3 小时 题目难度：NOIP 级]]></description>
			<content:encoded><![CDATA[<p>今年的生日举办的邀请赛各信息在这里归统一下。</p>
<p>题目：<a href="http://down.upsuper.org/20080209.pdf ">20080209.pdf</a> (344.99KB)</p>
<p>解题报告： <a href="http://down.upsuper.org/20080209_solution.pdf ">20080209_solution.pdf</a> (278.79KB)</p>
<p>测试数据：<a href="http://down.upsuper.org/20080209_data.rar">20080209_data.rar</a> (357.12KB)</p>
<p>推荐时长：3 小时</p>
<p>题目难度：NOIP 级</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.upsuper.org/2008-upsuper-birthday-invitational/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>大败NOIP2007</title>
		<link>http://blog.upsuper.org/rout-in-noip2007/</link>
		<comments>http://blog.upsuper.org/rout-in-noip2007/#comments</comments>
		<pubDate>Sun, 18 Nov 2007 03:23:14 +0000</pubDate>
		<dc:creator>upsuper</dc:creator>
				<category><![CDATA[琐事杂谈]]></category>
		<category><![CDATA[NOIP]]></category>

		<guid isPermaLink="false">http://blog.upsuper.org/?p=22</guid>
		<description><![CDATA[我在昨天考完的NOIP2007上大败…… 昨天的题目的确很简单，前两题都是送分题，第三题也只是简单DP，方程我都想出来了；第四题看到图就不想想了。 第一题如我所愿满分，第二题莫名其妙的90，申请复评发现有个点输出莫名其妙，不懂怎么回事。 第三题出来就知道败了，没写高精，我没发现要写。。。所以我出来就说，如果今年没拿省一就是第三题的问题了，结果就真的是这样……第三题用long long才拿30分，经实验，是由于long long极囧的右移，今早用同样的DP方程写了个带高精的，现在数据还没拿到测不了。 想到昨天写完前三题还有1个多小时，没写高精，大溃败…… 最后一题就是骗5拿了10分咯…… 如果第三题写了高精就+70分，那不是随便省一了……]]></description>
			<content:encoded><![CDATA[<p>我在昨天考完的NOIP2007上大败……</p>
<p>昨天的题目的确很简单，前两题都是送分题，第三题也只是简单DP，方程我都想出来了；第四题看到图就不想想了。</p>
<p>第一题如我所愿满分，第二题莫名其妙的90，申请复评发现有个点输出莫名其妙，不懂怎么回事。</p>
<p>第三题出来就知道败了，没写高精，我没发现要写。。。所以我出来就说，如果今年没拿省一就是第三题的问题了，结果就真的是这样……第三题用long long才拿30分，经实验，是由于long long极囧的右移，今早用同样的DP方程写了个带高精的，现在数据还没拿到测不了。</p>
<p>想到昨天写完前三题还有1个多小时，没写高精，大溃败……</p>
<p>最后一题就是骗5拿了10分咯……</p>
<p>如果第三题写了高精就+70分，那不是随便省一了……</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.upsuper.org/rout-in-noip2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

