zoukankan      html  css  js  c++  java
  • CODEVS 2102 石子归并 2

    【题目描述 Descriptin】

    在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。
    试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.

    【输入描述 Input Description】
    数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.

    输出描述 Output Description
    输出共2行,第1行为最小得分,第2行为最大得分.

    【样例输入 Sample Input】
    4
    4 4 5 9

    【样例输出 Sample Output】

    43
    54

    【解题思路】

    经典环形DP,公式大家都懂,最后寻找最大值从f[1,n],f[2,n+1]……等中找

     1 program StongUnion;
     2 var
     3 f1,f2:array[0..100,0..100] of longint;
     4 a,s:array[0..100] of longint;
     5 i,j,p,k,n,ans1,ans2:Longint;
     6 begin
     7     read(n);
     8     for i:=1 to n do
     9     begin
    10         read(a[i]);
    11         s[i]:=s[i-1]+a[i];
    12         a[i+n]:=a[i];
    13     end;
    14     for i:=n+1 to 2*n do
    15     s[i]:=s[i-1]+a[i];
    16 
    17     for p:=1 to n-1 do
    18         for i:=1 to n*2-p do
    19         begin
    20             j:=i+p;
    21             f1[i,j]:=maxint;;
    22             f2[i,j]:=0;
    23             for k:=i to j-1 do
    24             begin
    25                 if f1[i,j]>f1[i,k]+f1[k+1,j] then
    26                 f1[i,j]:=f1[i,k]+f1[k+1,j];
    27                 if f2[i,j]<f2[i,k]+f2[k+1,j] then
    28                 f2[i,j]:=f2[i,k]+f2[k+1,j];
    29             end;
    30             f1[i,j]:=f1[i,j]+s[j]-s[i-1];
    31             f2[i,j]:=f2[i,j]+s[j]-s[i-1];
    32         end;
    33         ans1:=maxlongint div 2;
    34         ans2:=-1;
    35         for i:=1 to n do
    36         begin
    37             if f1[i,n+i-1]<ans1 then ans1:=f1[i,n+i-1];
    38             if f2[i,n+i-1]>ans2 then ans2:=f2[i,n+i-1];
    39         end;
    40         writeln(ans1);
    41         writeln(ans2);
    42 end.
  • 相关阅读:
    @babel/preset-env 解决Promise被Babel编译成regenerator 运行时错误问题
    Blob ArrayBuffer 和 BinaryString StringView
    TypeScript 的尴尬:模块不如wepback完善
    Node.js(1) http和https模块发送HTTP(S)请求
    axios
    Nest.js 再探 解析HTTP请求
    红楼梦题词
    倾斜摄影
    重新认识TypeScript
    TypeScript 家族
  • 原文地址:https://www.cnblogs.com/wuminyan/p/4744001.html
Copyright © 2011-2022 走看看