石子合并
来源:互联网 发布:遇见交友软件 编辑:程序博客网 时间:2024/06/05 00:42
#include<stdio.h>
int a[210],s[210],
f[210][210],fx[210][210];
int max(int x,int y){
return x>y?x:y;
}int min(int x,int y){
return x<y?x:y;
}int main(){
int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&a[i]);
a[i+n]=a[i];
s[i]=s[i-1]+a[i];
}for(i=n+1;i>0;i--)
for(j=i+1;j<=n;j++){
for(k=i;k<j;k++)
f[i][j]=min(f[i][j],f[i][k]+f[k+1][j])
+s[j]-s[i-1];
for(k=j;k>=i;k--)
fx[i][j]=min(fx[i][j],fx[i][k]+fx[k+1][j])
+s[j]-s[i-1];
}printf("%d\n%d\n",f[1][n],fx[1][n]);
return 0;
}
int a[210],s[210],
f[210][210],fx[210][210];
int max(int x,int y){
return x>y?x:y;
}int min(int x,int y){
return x<y?x:y;
}int main(){
int i,j,k,n;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&a[i]);
a[i+n]=a[i];
s[i]=s[i-1]+a[i];
}for(i=n+1;i>0;i--)
for(j=i+1;j<=n;j++){
for(k=i;k<j;k++)
f[i][j]=min(f[i][j],f[i][k]+f[k+1][j])
+s[j]-s[i-1];
for(k=j;k>=i;k--)
fx[i][j]=min(fx[i][j],fx[i][k]+fx[k+1][j])
+s[j]-s[i-1];
}printf("%d\n%d\n",f[1][n],fx[1][n]);
return 0;
}
0 0
- 石子-石子合并
- 石子合并
- 石子合并
- 石子合并
- 石子合并
- 石子合并
- 石子合并
- 【石子合并】
- 合并石子
- 石子合并
- 石子合并
- 石子合并
- 石子合并
- 石子合并
- 石子合并
- 合并石子
- 石子合并
- 合并石子
- 欢迎使用CSDN-markdown编辑器
- CSS结构伪类选择器
- 斐波那契数列
- android系统外部存储文件写操作的具体实现
- 【VS开发】ConvertBSTRToString(filename) 不能将string转换为BSTR
- 石子合并
- POJ 2002 Squares 求正方形的个数,点哈希
- Linux C语言 网络编程(一)
- mysql索引
- Android_Canvas_Bitmap_关系
- PHP+IIS7+PHPMangerForIIS搭建开发环境
- Codeforces 630O Arrow
- CCF真题----消除类游戏
- BestCoder Round #79 (div.2) 1001 1004 HDU 5663 Hillan and the girl