February 14, 2008

[Ural 1003]Parity

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

这题做了很久才最终AC, NOIP前就写过, 但当时没能通过自己写的样例. 后来很久没有做题, 直到最近才把这题做掉. 但做的过程中很郁闷, 所以来写个简单的解题报告.(Ural 1003)

题目意思很好理解, 没有什么歧义, 思路也很容易想到. 首先, 用N(i)表示1..i的01序列中, 1的个数, 那么”a b even”表示N(a-1)和N(b)同奇偶, “a b odd”表示N(a-1)和N(b)不同奇偶. 那么很自然的会想到用并查集, 但怎么用就有学问了. 而且题中序列的长度太长, 且远大于询问次数, 要用到hash或者离散化(我一开始居然用离散化.. 硬是把O(n)的算法弄到了O(nlogn).. 晕..).

最初朴素的想法是将同奇偶的归到一个集合中, 并且在每个集合的根处记录下与这个集合奇偶性相反的集合标号. yuhch大牛也是这样做的, 但我在编程实现的过程中遇到了不少麻烦. 想找yuhch要来他的程序看看, 但他说他N年前AC的, 程序早就不在了.. 改换思路, 在使用并查集的时候记录每个节点和它的父亲的奇偶性是否相同. 并且用到了xor运算的一些性质: xor的逆运算还是xor, 而xor运算的真值表有正好和整数奇偶性相同. 于是可以很好地降低编程复杂度.

你可以点击这里下载我已AC的源程序.

[Ural 1003]Parity Read More »

一个人的情人节

本文在署名-非商业性使用-相同方式共享 3.0版权协议下发布, 转载请注明出自aifreedom.com

4年来一直是一个人过情人节, 呃.. 如果电脑不算人的话.

Matrix67的WS计划, 龙腾的About LOVE, 还有个兄弟说明天晚上要我出去陪他(注意是”他”)散步(原因是没鼓起勇气找LP去散步), 多么有趣的情人节!

而我还是一个人过吧, 习惯了一个人走在深夜里的网络上, 不是没人陪我, 是她太忙了. 回首才发现, 4年的时间, 好长. 一路上, 有过多少坎坷, 我也记不清了. 但最后能有个不错结果就好.

愿我那位兄弟明天能如愿和LP一起享受浪漫的烛光晚餐; 愿Billy和Baiger不用再冒着危险发送跨越1146公里850公里(之前的1146公里应该说的是乘火车或者汽车的距离吧, 我在谷歌地图(注意我这里的称呼)上测得的850公里)的短信; 愿我所有的好朋友都别再徘徊; 愿我自己早一天不用再一个人过节. Ai bless all.

从Matrix67那看到的情人节数独图片让我想到去找更多这样有趣的数独. 下面是我找到的一些, 分享给大家.

Sudoku1

Sudoku2

前面是两张图片的, 分别来自http://brownsharpie.courtneygibbons.org/?p=183http://www.setbb.com/phpbb/viewtopic.php?mforum=sudoku&p=5321. (有人说第一张图的数独有12解, 我的结果是第一张无解.. 第二张图是只有一解的.)

Sudoku of the day这个网站为情人节专门设计的8个数独问题, 网站专题的页面是http://www.sudokuoftheday.com/special/valentine.php.

你可以点击这里从本地下载到这个pdf文档. 文件存储于我的个人服务器上, 请不要盗链, 谢谢!

一个人的情人节 Read More »