- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SGU解题表格
IOI2004中国国家集训队第一轮训练
泛做报告表格
SGU
http://acm.sgu.ru/
请大家尽量仔细的填写下列表格。基本要求是自己越推荐的题目应该写得越多。如果觉得没什么意思就只写算法大意(一两行即可)和时空性能。推荐的题目不用太多,否则就没有比较意义了。加红的是我比较推荐的题目,可以先看,不过由于我自己看得并不是很仔细,想得也不深入,可能会有错误的推荐或者漏掉好题,只是起到一个参考作用。
请注意:如果题目没什么新意一定不要在推荐程度里加五星。凡是有加五星的都代表有一定的闪光点。需要剪切★的,这里提供一堆:)★★★★★★★★★★★★★★★★★★
编号 题目名称 题目和简要算法描述 时空性能 推荐程度 备注 106 The equation 先求出方程ax+by=c的任意一组解x1,y1
然后所有解可以表示为
x+I*b/(a,b),y-I*b/(a,b),求出I的范围即可知共有多少组解。
需要判断一些特殊情况,比如a=0,b=0等等。 O(logn)
O(1) 107 987654321 problem 首先,如果一个数平方的末n位数字只与该数字的本身的末n位数字有关,则本题当n9时,只要算出n=9时的答案,再不断地乘以10即可。
N=9时候的答案可以枚举求得,当然可以一位一位的推,即由n=2的解推出n=3的解,因为解的数量非常的少,所以这样做的速度很快(但无法准确地估算时间复杂度)。 O(1)
O(1) 108 Self-numbers 从1开始,把a+sum(a)标记为selfnumber即可。
可以使用循环数组降低空间复杂度 O(N)
O(logN) 109 Magic of David Copperfield II 构造,分别讨论n为奇数和n为偶数的情况。
当n为奇数:
以n=5为例,
1
2
1
2
1
2
2
1
1
2
2
1
2
1
2
1
首先排除1,再2排除2,剩下的就是n=3的情况了。
当n为偶数:
偶数情况复杂一点,先考虑 2的情况
2
2
1
再以4为例,
2
1
2
1
3
4
4
3
1
2
1
2
剩下的为n-2的情况。
显然,ki不会超过300
Max=299 O(N^2)
O(1) 114 Telecasting Station 首先可以证明,最佳方案一定建立在某个city中。因为如果不在,可以向左或向右调整,总有一个方向是更优的。
从一个city移到它的右边且最靠近它的city,代价为左边city的权值和*len-右边的权值和*len,当左边的权值和比右边小的时候,我们应当向右移动,而当左边权值和大于右边权值和的时候,移动停止。这时选中的city就是station的所在地。 O(N)
O(N) 121 Bridges Painting 首先,通过dfs,建立一棵搜索树(为了方便以后的处理,根的度不为2)。
当然,如果所有的点的度都为2,那么染色方案就已经固定了。
给搜索树中的点染色,相邻的两个点不染相同的颜色。
最后,考虑回根的边(这里的情况有点复杂,需要全面考虑)
那么,问题有解的充要条件就是原图中不存在一个n个点,n条边的连通分量,且n为偶数。 O(N+M)
O(N+M) 122 The book 构造。
显然,随便找一个点可以得到长度为1的链。
假设已经求出了一个长度为m的链,
p1-p2-p3-….pm
如果在剩下的点中,有一点可以连向p1,则找到了一条长度为m+1的链。
如果pm可以连向剩下点中的某一点,则同样到找了一条长度为m+1的链。
如果?p1,pm均无法找到可以连的点,根据抽屉原理,一定存在一个q(1=qm),使得pm可以连向pq且p1可以连向pm+1,那么,原来的链就变成一个环,只要在环上任意引一条边连向剩下点的边即可得到一个长度为m+1的链。
O(N^2)
O(N^2) 125 Shtirlits 我们仅考虑n=3的情况
有以下几种方法
可以枚举相邻两点的大小关系,得到一种可行的大小关系后,再进行拓扑排序,将排序后的点依次标权即可。
可以枚举以下的几个点
1
2
3
4
这时,角落上的以及中间的点取值基本可以确定。不过取值存在着相等和小于两种情况,因此,还需要枚举一下。
对于n大一点的情况,暂时还没想到有效算法。 O(1)
O(1) 对于n比较大的情况,目前没有多项式算法 126 Boxes 设两个盒子各有a个球和b个球,则经过一次移动后,第一个盒子有(2*a)%(a+b)个球,第二个盒子有(2*b)%(a+b)个球。那么,问题实际上为2^k*a=0 (mod (a+b)),则如果
(a+b)/gcd(a+b,a)是2个整数倍问题有解,否则问题有解。并且可以证明解不超过log(a+b)+1
文档评论(0)