[报告]NEERC Southern Subregional 2007解题报告

最近发现总结和回顾特别重要,因为每次练习赛的时候肯定都是做自己会做的题目,如果一直赶着做练习赛,结果就是会做的题目更加熟练而已,不会做的还是不会做。

再次广告一下,SGU的题目真是好呀真是好

====

NEERC Southern Subreginal 2007 对应SGU题号346-357

A Snooker

水题,模拟即可。

Join the Strings

将字符串排序,比较函数为x+y<y+x。

Twisting the Number

主要是关注1的个数。

比如a=101100。那么就是找101100,100111,100011各自的循环最小,然后取这些循环最小的最大值。不知道怎么证明,纯粹是打表+yy的。

很难说清除,具体可以看代码。

D Wolves and Sheep

按照极角排序后就转成一个线性问题了:在数轴上放置点,有一些区间不能放,问最少放多少个点使得每条线段(狼)上至少有一个点。

显然就是贪心,尽量往右边放。所以把羊按左端点排序合并处理出不能打枪的区间,然后把狼按右端点排序贪心打枪就行了。也可以两部分同时做(我就是同时做的)。

XOR-omania

构造。设有一组解{a[1], a[2], ..., a[N]},那么{a[1] xor P, a[2] xor P, ..., a[N] xor P}同样是满足方程组的一组解。

那么不妨设a[1]=0。关注下面一组方程:

a[1] xor a[x] = b[i]

a[1] xor a[y] = b[j]

a[x] xor a[y] = b[k]

注意到有b[i]^b[j] = b[k]。找出一个这样的三元组(i, j, k),就得到了a[x] = b[i], a[y] = b[j]。然后就可以得到剩下的所有数了。

F A Mission for a Scout

很变态的几何题,好像要三分什么的,至今不会做。

posted @ 2012-05-20 11:50  杂鱼  阅读(705)  评论(0编辑  收藏  举报