摘要: 有一个长度为n的整数序列,两个游戏者A和B轮流取数,A先取。每次玩家只能从左端或者右端取任意数量的数,但不能两边都取。所有数都被取走视为游戏结束,然后统计每个人取走的数之和,作为各自的得分。两个人采取的策略都是让自己得分尽可能高,并且两个人都很机智,求A得分-B得分后的结果。 输入格式 输入包含多组 阅读全文
posted @ 2019-05-10 17:25 Achen_sy 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 给你两条路径,对于每条路径上的点各不相同,请你求出两条路径最长公共部分的长度。 Input 第一行是数据组数t 每组数据的第一行包含三个数,n,p,q。其中路径上的点的大小不会超过n^2. 第二行包含p+1个数,表示第一条路径 第三行包含q+1个数,表示第二条路径。 Output 输出最长路径长度。 阅读全文
posted @ 2019-05-10 17:21 Achen_sy 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 让我们来玩一个移除石子的游戏。 最初,n个石头按照顺时针的顺序围成一个圈,它们的编号是1,...,n.现在你将会得到两个数字k和m。之后,移除石子m,然后数k个石子移除一个,重复这个操作直到只剩下一个石子为止,求这个最后剩下的石子的编号。(与约瑟夫问题类似) 输入格式: 包含多组数据,以每行3个数的 阅读全文
posted @ 2019-05-10 17:14 Achen_sy 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 有一根长度为L(L<1000)的棍子,还有n(n<50)个切割点的位置(按照从小到大排 列)。你的任务是在这些切割点的位置处把棍子切成n+1部分,使得总切割费用最小。每次 切割的费用等于被切割的木棍长度。 例如,L=10,切割点为2, 4, 7。如果按照2, 4, 7的顺序, 费用为10+8+6=2 阅读全文
posted @ 2019-05-10 17:10 Achen_sy 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 促销活动把一个或多个商品组合起来降价销售,例如: 三朵花的价格是 5z 而不是 6z, 两个花瓶和一朵花的价格是 10z 而不是 12z。 编写一个程序,计算顾客购买一定商品的花费,尽量利用优惠使花费最少。尽管有时候添加其他商品可以获得更少的花费,但是你不能这么做。 对于上面的商品信息,购买三朵花和 阅读全文
posted @ 2019-05-10 14:36 Achen_sy 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 输入两个长度分别是n和m(n,m<=5000)的颜色序列,要求按顺序合并成同一个序列,即每次可以把一个序列开头的颜色放到新序列的尾部。 例如,两个颜色序列GBBY和YRRGB,至少有两种合并结果:GBYBRYRGB和YRRGGBBYB。对于每种颜色来说其跨度L(c)等于最大位置和最小位置之差。例如, 阅读全文
posted @ 2019-05-10 14:32 Achen_sy 阅读(234) 评论(0) 推荐(0) 编辑