983. [NOIP2003] 数字游戏

★☆   输入文件:numgame.in   输出文件:numgame.out   简单对比
时间限制:1 s   内存限制:128 MB

题目描述

丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分为m个部分,各部分内的数字相加,相加所得的m个结果对10取模后再相乘,最终得到一个数k。游戏的要求是使你所得的k最大或者最小。
例如,对于下面这圈数字(n=4,m=2):

当要求最小值时,((2-1) mod 10)×((4+3) mod 10)=1×7=7,要求最大值时,为((2+4+3) mod 10)×(-1 mod 10)=9×9=81。特别值得注意的是,无论是负数还是正数,对10取模的结果均为非负值。
丁丁请你编写程序帮他赢得这个游戏。

输入格式

输入文件第一行有两个整数,n(1≤n≤50)和m(1≤m≤9)。以下n行每行有个整数,其绝对值不大于10^4,按顺序给出圈中的数字,首尾相接。

输出格式

输出文件有两行,各包含一个非负整数。第一行是你程序得到的最小值,第二行是最大值。

【输入样例】
4 2
4
3
-1
2
【输出样例】
7
81
思路:断环成链,记录前缀和。s[i][j][k]表示在区间i-j之间分为k段的最小值,b[i][j][k]表示在区间i-j之间分为k段的最大值。
#include<cstdio>
#include<algorithm>
#include<cstring>
#define oo 2147483647
using namespace std;
int B[][][],S[][][];
int n,m;
int a[];
int mod(int a){
return ((a%)+)%;
}
int main(){
freopen("numgame.in","r",stdin);
freopen("numgame.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
a[i+n]=a[i];
}
for(int i=;i<=*n;i++)
a[i]+=a[i-];
for(int l=;l<=*n;l++)
for(int r=l;r<=*n;r++)
B[l][r][]=S[l][r][]=mod(a[r]-a[l-]);
for(int i=;i<=m;i++)
for(int l=;l<=*n;l++)
for(int r=l+i-;r<=*n;r++)
S[l][r][i]=oo;
for(int i=;i<=m;i++)
for(int l=;l<=*n;l++)
for(int r=l+i-;r<=*n;r++)
for(int k=l+i-;k<r;k++){
S[l][r][i]=min(S[l][r][i],S[l][k][i-]*mod(a[r]-a[k]));
B[l][r][i]=max(B[l][r][i],B[l][k][i-]*mod(a[r]-a[k]));
}
int Max=,Min=oo;
for(int i=;i<=n;i++){
Max=max(Max,B[i][i+n-][m]);
Min=min(Min,S[i][i+n-][m]);
}
printf("%d\n%d",Min,Max);
return ;
}
 

最新文章

  1. C# Socket系列三 socket通信的封包和拆包
  2. Linux C 创建目录函数mkdir相关(转-清新居士)
  3. 团队开发NABC特点
  4. Android UI-开源框架ImageLoader的完美例子
  5. a+b(高精度)[陈涛]——c语言
  6. EOF
  7. 滚动条响应鼠标滑轮事件实现上下滚动的js代码
  8. JPA query 基本语法解释
  9. FPGA那些事 --经典总结
  10. 10条影响CSS渲染速度的写法与建议
  11. HTML5 Canvas:初始Canvas
  12. MySQL优化二 缓存参数优化
  13. 一个简单IP防刷工具类, x秒内最多允许y次单ip操作
  14. MapReduce(二) MR的高级特性-序列化、排序、分区、合并
  15. Stack类常用api
  16. [android] 采用post的方式提交数据
  17. console报错:No mapping found for HTTP request with URI(xxx)
  18. caffe 训练imagenet
  19. Maven学习(三)maven原理概念详述
  20. Alien::BatToExeConverter 模块应用

热门文章

  1. 循环遍历Java字符串字符的规范方法——类似python for ch in string
  2. git常见冲突及解决办法
  3. PCB MS SQL 排序应用(row_number rank dense_rank NTILE PARTITION)
  4. 有关于dict(字典)的特性与操作方法
  5. maven添加本地jar包的方法
  6. MySql c#通用类 转
  7. mysql Workbench新建数据库连接时提示SSl not enabled的问题
  8. mysql自动添加时间的方法
  9. 【SQL】数值型函数
  10. Arduino控制继电器模块