JZOJ_1322. 硬币游戏 (Standard IO)

本文介绍了一种硬币游戏,玩家需制定策略以最大化所获硬币价值。游戏涉及动态规划算法,通过递推公式计算最优解,确保在有限硬币堆中取得优势。
Description
  FJ的奶牛喜欢玩硬币游戏,所以FJ发明了一个新的硬币游戏。一开始有N(5<=N<=2,000)个硬币堆成一叠,从上往下数第i个硬币有一个整数值C_i(1<=C_i<=100,000)。
  两个玩家轮流从上倒下取硬币,玩家1先取,可以从上面取1个或2个硬币,下一轮的玩家可以取的硬币数量最少为1个,最多为上一个玩家取的数量的2倍,硬币全部取完比赛结束。
  已知玩家2绝顶聪明,会采用最优策略,现在请你帮助玩家1,使得玩家1取得的硬币值的和最大。
 
Input
  第一行输入N
  第二至N+1行每行输入一个整数C_i
 
Output
  输出玩家1能获得的最大值。
 
Solution

Fi,j,i表示的是我现在的位置(还剩多少枚硬币),取到第几个,j是对方上一次对方拿走了多少个。

下一次对手就可以取走2*j枚硬币,我们设他要拿走k枚硬币,那么k的取值范围就在1<k<=2∗j。

fi,j=max(sumi+1..k−fk,k−i(1<=k<=2∗j))

fi,j+1=max(sumi+1..k−fk,k−i(1<=k<=2*(j+1)))

J就只有在这个地方发生了改变(手指上方S)

(1<=k<=2∗j) 和 (1<=k<=2*(j+1)) 可以变为 2*j<=k<=2*(j+1)

Fi,j=max(Fi,j−1,Sumi+1..k−Fk,k−i(2∗(j−1)<k<=2∗j))

Fi,j;=max(Fi,j-1,Sumi+1..k-Fk,k-i) (2j+1<=k<=2j+2) (Sum为前缀和)

Maxn;=max(Maxn,Sum[k]-Sum[i]-F[k,k-i])

答案即为 (sum[n]+max(num[1]-f[1,1],num[1]+num[2]-f[2,2])) div 2

因为一开始可以选1或者2

复杂度;O(n2) (2算是常数)

 

代码

 

 1 var
 2   n:longint;
 3   a,sum:array [0..2001] of longint;
 4   f:array [0..2001,0..2001] of longint;
 5 procedure init;
 6 var
 7   i:longint;
 8 begin
 9   readln(n);
10   sum[0]:=0;
11   for i:=1 to n do
12     begin
13       readln(a[i]);
14       sum[i]:=sum[i-1]+a[i];
15     end;
16 end;
17 
18 function min(o,p:longint):longint;
19 begin
20   if o<p then exit(o);
21   exit(p);
22 end;
23 
24 function max(o,p:longint):longint;
25 begin
26   if o>p then exit(o);
27   exit(p);
28 end;
29 
30 procedure main;
31 var
32   i,j,k,maxx:longint;
33 begin
34   for i:=n-1 downto 1 do
35     begin
36       maxx:=-maxlongint;
37       for j:=1 to i do
38         begin
39           for k:=min(i+2*j-2,n)+1 to min(i+2*j,n) do
40             maxx:=max(maxx,sum[k]-sum[i]-f[k,k-i]);
41           f[i,j]:=maxx;
42         end;
43     end;
44   writeln((sum[n]+max(a[1]-f[1,1],a[1]+a[2]-f[2,2])) div 2);
45 end;
46 
47 begin
48   init;
49   if n=1 then writeln(a[1])
50          else main;
51 end.

 

 

 

C:\Users\30227\AppData\Local\Programs\Python\Python310\python.exe F:\zhuanli_jianbao\paper\25_11_11\11_15_15\try.py 加载无孔硬币音频: F:\zhuanli_jianbao\paper\25_11_11\11_15_15\normal_audio ✓ 加载成功: AI1-02_20251028112245.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028112309.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028112345.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028112410.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028113347.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028113414.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028113436.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028113501.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028113526.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028113605.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028113635.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028113731.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142053.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142225.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142252.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142314.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142335.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142409.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142431.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142505.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142524.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142544.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142605.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142627.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142646.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142709.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142728.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142748.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142812.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142835.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142856.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142915.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142936.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028142957.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028143019.wav (长度: 0.44s) 加载有孔硬币音频: F:\zhuanli_jianbao\paper\25_11_11\11_15_15\hole_audio ✓ 加载成功: AI1-02_20251028105827.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028105852.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028105938.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110004.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110029.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110055.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110120.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110146.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110212.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110240.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110304.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110328.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110354.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110723.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110752.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110817.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110843.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110905.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110927.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028110952.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111017.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111042.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111105.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111131.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111154.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111706.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111731.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111756.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111818.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111842.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111907.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111932.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028111956.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028112033.wav (长度: 0.44s) ✓ 加载成功: AI1-02_20251028112058.wav (长度: 0.44s) 总计加载: 70个音频文件 采样率: 8000 Hz 提取音频特征... 可视化特征差异... Traceback (most recent call last): File "F:\zhuanli_jianbao\paper\25_11_11\11_15_15\try.py", line 390, in <module> analyze_coin_sounds(SOLID_COIN_FOLDER, HOLE_COIN_FOLDER) File "F:\zhuanli_jianbao\paper\25_11_11\11_15_15\try.py", line 255, in analyze_coin_sounds key_feature_indices = visualize_differences(scaled_features, labels) File "F:\zhuanli_jianbao\paper\25_11_11\11_15_15\try.py", line 118, in visualize_differences plt.boxplot(solid_features.T, positions=np.arange(features.shape[1]) - 0.15, widths=0.3) File "C:\Users\30227\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\_api\deprecation.py", line 453, in wrapper return func(*args, **kwargs) File "C:\Users\30227\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\_api\deprecation.py", line 295, in wrapper return func(*args, **kwargs) File "C:\Users\30227\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\pyplot.py", line 3075, in boxplot return gca().boxplot( File "C:\Users\30227\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\_api\deprecation.py", line 453, in wrapper return func(*args, **kwargs) File "C:\Users\30227\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\__init__.py", line 1521, in inner return func( File "C:\Users\30227\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\_api\deprecation.py", line 295, in wrapper return func(*args, **kwargs) File "C:\Users\30227\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\axes\_axes.py", line 4226, in boxplot artists = self.bxp(bxpstats, positions=positions, widths=widths, File "C:\Users\30227\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\_api\deprecation.py", line 453, in wrapper return func(*args, **kwargs) File "C:\Users\30227\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\axes\_axes.py", line 4479, in bxp raise ValueError(datashape_message.format("positions")) ValueError: List of boxplot statistics and `positions` values must have same the length 进程已结束,退出代码为 1 怎么解决
最新发布
11-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值