#石子

算法笔记_083:蓝桥杯练习 合并石子(Java)

/目录1问题描述2解决方案问题描述  在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数。求把所有石子合并成一堆的最小花费。输入格式  输入第一行包含一个整数n,表示石子的堆数。  接下来一行,包含n个整数,按顺序给出每堆石子的大小。输出格式  ...

石子合并,GarsiaWachs算法优化

   思路:可以发现朴素的区间dp已经不足以解决这个问题了。对于石子合并问题,有一个最好的算法,那就是GarsiaWachs算法。时间复杂度为O(n^2)。设序列是stone[maxn],从左往右,找到一个最小的且满足stone[k-1]<=stone[k+1]的k,找到后合并sto...

石子合并

  这道题是不可以用贪心的:因为每次要求合并相邻的两堆,不能保证每次合并的都是最多的,或是最少的断环为链:将长度为n的链复制一份接在后面,环的情况就是长度为2n的链中任意连续的长度为n的链。注意平行四边形只能用于min,这道题要求的max是不能用平行四边形优化的 朴素AC_Code:1#i...
代码星球 ·2020-12-27

石子归并

    【思路】 我们dp[i][j]来表示合并第i堆到第j堆石子的最小代价。 那么状态转移方程为 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+w[i][j]);其中,w[i][j]表示把两部分合并起来的代价,...
代码星球 ·2020-12-27

P1880 [NOI1995]石子合并

在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.输入格式:数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输...
代码星球 ·2020-12-27

洛谷 Roy&October之取石子

Roy和October两人在玩一个取石子的游戏。游戏规则是这样的:共有n个石子,两人每次都只能取pk个(p为质数,k为自然数,且pk小于等于当前剩余石子数),谁取走最后一个石子,谁就赢了。现在October先取,问她有没有必胜策略。若她有必胜策略,输出一行"Octoberwins!";否则输出一行"Roywins!"。...

取石子(七)

 描述Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和Hrdv分别从其中取石子,谁先取完者胜,每次可以从中取一个或者相邻两个,Hrdv先取,输出胜利着的名字。 输入输入包括多组测试数据。每组测试数据一个n,数据保证int范围内。输出输出胜利者的名字。样例输入23样例输出Hrdv...
代码星球 ·2020-06-21

hdu 2516 取石子游戏 (Fibonacci博弈)

TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):8159    AcceptedSubmission...

hdu 1527 取石子游戏 (威佐夫博弈)

TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):9725    AcceptedSubmission...

nyoj 833-取石子(七) (摆成一圈,取相邻)

内存限制:64MB时间限制:1000ms特判:No通过数:16提交数:32难度:1Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和Hrdv分别从其中取石子,谁先取完者胜,每次可以从中取一个或者相邻两个,Hrdv先取,输出胜利着的名字。输入包括多组测试数据。每组测试数据一个n,数据保证int范围内。...

nyoj 23-取石子(一)(博弈)

内存限制:64MB时间限制:3000msSpecialJudge:Noaccepted:20submit:33一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子。游戏的规则是这样的。设有一堆石子,数量为N(1<=N<=1000000),两个人轮番取出其中的若...
代码星球 ·2020-05-28

POJ 1067 取石子游戏

取石子游戏TimeLimit:1000MS MemoryLimit:10000KTotalSubmissions:40917 Accepted:13826Description有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多...
代码星球 ·2020-04-14

石子合并(区间DP)

设有N堆石子排成一排,其编号为1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有4堆石子分别为1352,我...
代码星球 ·2020-04-03