做了这道题目,我才发现一道题即便可行,但是正确性也不一定。多数由于题目数据太弱。
poj 1014 Dividing
题目大意:有6堆石头,权重分别为1 2 3 4 5 6,要求输入 每堆个数 ,求是否可以平分石头使得两堆价值相同。
网上对这道题的做法就两种,其中有错误的版本,却也可以AC。起初这让我等菜鸟感慨代码的简洁,但无法得出正确性的证明
接下来就对两种方法的错误性进行证明。...
分类:
其他好文 时间:
2014-08-09 11:48:47
阅读次数:
245
http://vjudge.net/problem/viewProblem.action?id=21557题目大意:每进行一次颜色改变都可以把一段区间内的黑石头变成白石头,白石头变成黑石头,最后问区间内黑石头连续的最大长度这里我们可以用rev[]作为lazy标记,每次进行改变,rev[]^1因为有黑...
分类:
其他好文 时间:
2014-08-08 09:33:45
阅读次数:
352
import java.util.Scanner;public class Game { public static void main(String[] args){ int r; r = (int) (Math.random()*2 + 1); S...
分类:
其他好文 时间:
2014-08-07 18:10:10
阅读次数:
159
UVA 1378 - A Funny Stone Game
题目链接
题意:给定n堆石头,然后每次能选i, j, k,3堆(i
思路:组合游戏,需要转化,把石子一字排开,最后肯定都归到n堆上,n堆是不能取的,所以假设每个石子代表一堆,从左往右分别是n - 1, n - 2, n - 3 ... 2, 1, 0,然后每次取一个加两个,就相当于取掉一堆,多上两堆,这样就转化为了Ni...
分类:
其他好文 时间:
2014-08-06 11:52:41
阅读次数:
316
UVA 11249 - Game
题目链接
题意:两堆石头,a和b,每次能取一堆任意数量,或者两堆同时取,但是绝对值差不能超过k,最后不能取的人输,问先手是否能赢
思路:先假设(a, b)石子,a是少的一堆,首先很容易看出(1, k + 2)是必败的,设下一个是(2, x)那么如果这个状态能到(1, k + 2)那么就是必胜,要找出(2, x)必败状态,就必然是上个状态多的一堆石...
分类:
其他好文 时间:
2014-08-06 01:58:00
阅读次数:
371
题意:给n个石头,分成一些部分(最多n部分,随便分),问分完后每部分的数量的乘积有多少种情况。分析:可以看出,其实每个乘积都可以分解为素数的乘积,比如乘积为4,虽然可以分解为4*1,但是更可以分解为2*2*1,所以就可以枚举素因子来分解,dfs即可。代码:#include #include #inc...
分类:
其他好文 时间:
2014-08-05 21:56:00
阅读次数:
252
HDU 4004 The Frog's Games(基本算法-贪心,搜索-二分)
题目大意:
长为L的河流,中间有n个石头,告诉你石头的位置,青蛙的跳跃能力至少为多少中途跳m次能跳过去?
解题思路:
二分+贪心的题目,因为青蛙的跳跃能力越强需要的次数就越少,因此青蛙的跳跃能力有单调性,所以二分枚举青蛙的跳跃能力,在判断这个能力下是否能够跳过去,这个用贪心解决,每次在这个能力下尽可能跳到远的石头上,最后看m次是否跳到了对岸。...
分类:
其他好文 时间:
2014-08-03 23:19:06
阅读次数:
314
题目:uva10404 - Bachet's Game(博弈,递推)
题目大意:stan和ollie两个小伙伴在玩石头的游戏:给出N个石头,然后给出Mge数。要求每次都是stan先开始,每次拿走m (是M个数中的其中一个)个石头。谁拿走石头后桌上没有剩下石头就赢了。
解题思路:博弈。对于j和石头,stan想要赢的话那么就要分奇数次将j石头拿走。...
分类:
其他好文 时间:
2014-08-03 20:38:05
阅读次数:
234
背景 Background农民John有很多牛,他想交易其中一头被Don称为TheKnight的牛。这头牛有一个独一无二的超能力,在农场里像Knight一样地跳(就是我们熟悉的象棋中马的走法)。虽然这头神奇的牛不能跳到树上和石头上,但是它可以在牧场上随意跳,我们把牧场用一个x,y的坐标图来表示。描述...
分类:
其他好文 时间:
2014-08-03 20:31:05
阅读次数:
297
链接:http://poj.org/problem?id=2253
题意:一个青蛙在一块石头上,看到了另一个青蛙在另一块石头上,它想跳过去找它,如果距离太远它就需要借助别的石头当跳板,两块石头之间的青蛙距离被定义成两块石头之间所有路径中最大跳跃距离的最小值,求两个青蛙之间的青蛙距离。
poj2263和它类似,链接:http://poj.org/problem?id=2263
解题报告...
分类:
其他好文 时间:
2014-08-01 16:03:11
阅读次数:
287