您的位置:首页 > 其它

BZOJ-几道比较有趣的题目

2015-03-09 23:53 239 查看

题目一

描述

BZOJ 1008: [HNOI2008]越狱

监狱有连续编号为1…N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱




分析

如果直接求的话十分复杂, 而且貌似还要考虑容斥?

这个问题的关键就是转化一下, 求不能发生越狱的状态数, 这个比较好求, 再用总的状态数剪掉即可.





代码

https://code.csdn.net/snippets/615408

题目二

描述

BZOJ 2463: [中山市选2009]谁能赢呢?

小明和小红经常玩一个博弈游戏。给定一个n×n的棋盘,一个石头被放在棋盘的左上角。他们轮流移动石头。每一回合,选手只能把石头向上,下,左,右四个方向移动一格,并且要求移动到的格子之前不能被访问过。谁不能移动石头了就算输。假如小明先移动石头,而且两个选手都以最优策略走步,问最后谁能赢?




分析

一开始不明白为什么只是简单的和奇偶性有关系. 找了一些题解发现解释的最清楚的应该是用放骨牌的方法.

任何时候, 小明走一步, 小红走一步, 加起来走了两个格子, 就相当于放了一张2*1的骨牌. 交替的走就相当于交替放置骨牌. 如果n是偶数, 那么一定可以将棋盘铺满骨牌. 先走的就输了. 同理n是奇数的话, 一定有一个空格放不上骨牌, 后走的就输了.





代码

https://code.csdn.net/snippets/615410

题目三

描述

BZOJ 1800: [Ahoi2009]fly 飞行棋

给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列。 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形。




分析

找对角线, 这条对角线一定是圆的直径. 如果有x条对角线的话, 两两组合成矩形, 总个数就是x*(x-1)/2.

如何求一个点有没有对角线相连

到这个点的弧长是圆周长的一半的话连线就是对角线.





代码

https://code.csdn.net/snippets/615411

想说的话

也许很多人都认为这些题目太水了吧.

我只想说虽然代码都很短, 思路不复杂, 但想到正解尤其是写起来简单的方法并没有那么容易. 至少要想一想.

只要能给自己一些启发的题目, 都不是水题.

想起班里的一位大神, 即使看起来再简单的题目也会告诉你 : 有难的地方





@感谢提供者 : wxjlzbcd
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: