题目描述:

一群小孩子在玩小石子游戏,游戏有两种玩法。

(1)路边玩法

有n堆石子堆放在路边,现要将石子有序地合并成一堆,规定每次只能移动相邻的两堆石子合并,合并花费为新合成的一堆石子的数量。求将这N堆石子合并成一堆的总花费(最小或最大)。

(2)操场玩法

一个圆形操场周围摆放着n堆石子,现要将石子有序地合并成一堆,规定每次只能移动相邻的两堆石子合并,合并花费为新合成的一堆石子的数量。求将这N堆石子合并成一堆的总花费(最小或最大)。

输入描述:

第一行是一个整型数m(m<100)表示共有m组测试数据。
每组测试数据的第一行是一个整数n(0<n<1000)表示石子的堆数。
第2行为n个整数ai((0<ai<1000)),表示第i堆的石子数。

输出描述:

对于每一组输入,输出4个数(路边玩法最小花费,路边玩法最大花费,操场玩法最小花费,操场玩法最大花费)。
每组的输出占一行。

样例输入:

3
6
5 8 6 9 2 3
5
8 7 3 6 10
4
9 2 15 6

样例输出:

84 129 81 130
77 95 77 108
64 76 60 83

题解:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#define INF 0x3f3f3f3f
using namespace std;
const int maxn = 1005;
int sum[maxn];
int a[maxn<<1];
int Min[maxn][maxn], Max[maxn][maxn];
int n, m;
int Mincircle, MaxCircle;
void init(){memset(sum, 0, sizeof sum);memset(a, 0, sizeof a);memset(Min, 0, sizeof Min);memset(Max, 0, sizeof Max);
}
void straight(){for(int i = 1; i <= n; i++)sum[i] = sum[i-1] + a[i];for(int v = 2; v <= n; v++){for(int i = 1; i <= n-v+1; i++){int j = i+v-1;Min[i][j] = INF;Max[i][j] = -1;int tmp = sum[j] - sum[i-1];for(int k = i; k < j; k++){Min[i][j] = min(Min[i][j], Min[i][k]+Min[k+1][j]+tmp);Max[i][j] = max(Max[i][j], Max[i][k]+Max[k+1][j]+tmp);}}}
}
void circular() {for(int i = 1; i <= n-1; i++)a[n+i] = a[i];n = 2*n-1;straight();n = (n+1) / 2;Mincircle = Min[1][n];MaxCircle = Max[1][n];for(int i = 2; i <= n; i++) {Mincircle = min(Mincircle, Min[i][i+n-1]);MaxCircle = max(MaxCircle, Max[i][i+n-1]);}
}
int main()
{scanf("%d", &m);while(m--){init();scanf("%d", &n);for(int i = 1; i <= n; i++){scanf("%d", &a[i]);}straight();printf("%d %d", Min[1][n], Max[1][n]);circular();printf(" %d %d\n", Mincircle, MaxCircle);}return 0;
}

NYOJ 1427-小石子游戏【石子合并】相关推荐

  1. 【动态规划】小石子游戏-石子合并

    题目 一群小孩子在玩小石子游戏,游戏有两种玩法. (1)路边玩法 有n堆石子堆放在路边,现要将石子有序地合并成一堆,规定每次只能移动相邻的两堆石子合并,合并花费为新合成的一堆石子的数量.求将这N堆石子 ...

  2. 动态规划---石子游戏

    动态规划---石子游戏 石子游戏(leetcode877) 石子游戏(leetcode1140) 石子游戏(leetcode1686) 石子游戏(leetcode877) 题目描述 亚历克斯和李用几堆 ...

  3. 博弈问题-取石子(D题小牛vs小客)附取石子游戏总结

    题目: 链接:https://www.nowcoder.net/acm/contest/75/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  4. 牛客网CSP-S提高组赛前集训营1题解(仓鼠的石子游戏 [博弈论] + 乃爱与城市的拥挤程度 [树上DP] + 小w的魔术扑克[dfs + 离线])

    文章目录 T1:仓鼠的石子游戏 题目 题解 代码实现 T2:乃爱与城市拥挤程度 题目 题解 代码实现 T3:小w的魔术扑克 题目 题解 代码实现 T1:仓鼠的石子游戏 题目 仓鼠和兔子被禁止玩电脑,无 ...

  5. Leetcode1686. 石子游戏 VI[C++题解]:博弈论、按照a+b贪心

    文章目录 题目分析 题目链接 题目分析 博弈论:最坏情况下求最好. 按a[i]+b[i]a[i] + b[i ]a[i]+b[i] 从大到小排序 解释: (博弈论)每个人最优的选择都是 要求自己的−对 ...

  6. leetcode——石子游戏系列题目

    石子游戏 亚历克斯和李用几堆石子在做游戏.偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] . 游戏以谁手中的石子最多来决出胜负.石子的总数是奇数,所以没有平局. 亚历克斯和李轮流进行,亚历 ...

  7. 百-寒-进-15-D-小石子游戏

    小石子游戏 题目描述 一群小孩子在玩小石子游戏,游戏有两种玩法. (1)路边玩法 有n堆石子堆放在路边,现要将石子有序地合并成一堆,规定每次只能移动相邻的两堆石子合并,合并花费为新合成的一堆石子的数量 ...

  8. BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)

    Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 871  Solved: 365 [Submit][Status][Discuss] Descripti ...

  9. bzoj1874: [BeiJing2009 WinterCamp]取石子游戏

    1874: [BeiJing2009 WinterCamp]取石子游戏 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 834  Solved: 350 ...

最新文章

  1. Redis中集合set数据类型(增加(添加元素)、获取(获取所有元素)、删除(删除指定元素))
  2. springmvc+mybatis+html 下将查询数据以excell形式上传到ftp(下)
  3. HashTable已经被淘汰了,不要在代码中再使用它
  4. SQL Server 2005高可用性之复制(http://tech.it168.com/db/s/2007-05-15/200705150909375.shtml)
  5. 手机java程序_郑州北大青鸟:用手机也能编写Java程序代码?
  6. Vimium插件让键盘党像操作Vim一样操作Chrome
  7. 华工网络计算机电路基础作业,2021年《计算机电路基础》-华工网络教育学院平时作业.doc...
  8. 顶峰Android手机视频转换器,顶峰3GP手机视频转换器
  9. 元器件大一点好,还是小一点好?
  10. python守护线程错误 退出子线程_请问用python里threading和queue模块来写多线程程序,子线程是如何结束的?...
  11. OpenCV blur和boxFilter (方框型滤波器)
  12. c语言用程序判断是否素数,用C语言编写判断一个数是否是素数的程序
  13. 菜鸟教程学习Java
  14. c语言编程师,单片机C语言编程师
  15. C#创建Windows窗体应用程序实例8【通用对话框】
  16. RACK为TCP BBR提供动力源
  17. 转一篇千与千寻的影评。。。
  18. App UI设计:“看得见”有多重要
  19. 1000句英语经典口语(9)
  20. IDEA新建本地项目关联远程本地仓库和git仓库详细步骤

热门文章

  1. 关于联想小新系列Fn+Q切换模式失效的解决方案
  2. stacktrace not available;stata报错:stacktrace not available是什么意思,如何解决?
  3. makefile环境变量
  4. ESP8266给微信发消息,超阈值报警,消息提醒等
  5. redis基础数据类型set(无序不重复集合)
  6. mysql+curdate+昨天_MySQL内置时间curdate查询用法
  7. 运动防水防汗耳机哪个牌子好、防水的运动耳机推荐
  8. SAP-MM-收发货与移动类型(个人笔记)
  9. 百万奖金花落谁家|中国华录杯·开放数据创新应用大赛巅峰之战
  10. mxnet系列3-hello,mxnet