NOIP 2002 普及組 數字遊戲

2021-08-09 10:12:34 字數 1071 閱讀 7544

題目鏈結

題目分析

這道題是一道區間dp題,跟能量項鍊還有石子合併差不多,我們用f[i][j][l]表示處理i到j這一區間分為l段所能得到的最大值或是最小值。具體看**!

程式**

#include

#include

#include

#include

#include

using namespace std;

int n,m,a[130],f[130][130][100],g[130][130][100],sum[130],minans=0x3f3f3f3f,maxans=-0x3f3f3f,total[100][100];

int main()//因為這裡是乙個環,所以按照

n<<=1;

memset(g,0x3f,sizeof(g));

for(register int i=1;i<=n;++i) sum[i]=sum[i-1]+a[i];

for(register int i=1;i<=n;++i)

for(register int j=i;j<=n;++j) f[i][j][1]=g[i][j][1]=total[i][j]=((sum[j]-sum[i-1])%10+10)%10;

for(register int l=2;l<=m;++l)

for(register int j=1;j<=n;++j)

for(register int i=1;i<=j;++i)

for(register int k=i;k

f[i][j][l]=max(f[i][j][l],f[i][k][l-1]*total[k+1][j]);

if(g[i][k][l-1]<0x3f3f3f3f) g[i][j][l]=min(g[i][j][l],g[i][k][l-1]*total[k+1][j]);

}n>>=1;

for(register int i=1;i<=n;++i)

printf("%d\n%d\n",minans,maxans);

}

NOIP2002 普及組 選數

題目描述 已知 n 個整數 x1,x2,xn,以及乙個整數 k k n 從 n 個整數中任選 k 個整數相加,可分別得到一系列的和。例如當 n 4,k 3,4 個整數分別為 3,7,12,19 時,可得全部的組合與它們的和為 3 7 12 22 3 7 19 29 7 12 19 38 3 12 1...

Noip 2002 普及組 複賽試題

the first 級數求和 p1035 級數求和 解題報告 double運算即可,注意細節.include using namespace std intmain cout return0 級數求和 the second 選數 p1036 選數 解題報告 將給出的資料做公升序全排列 回溯 將得出的...

NOIP 2002 普及組 複賽 過河卒

noip 2002 普及組 複賽 過河卒 1314 例3.6 過河卒 noip2002 洛谷 p1002 過河卒 樣例每通過,仔細看題,發現起點是從 0,0 開始,而誤以為是 1,1 開始,修改 樣例通過,提交,測試點3,4wa,重新讀題,發現沒說a b 處理了a b的情況,提交,測試點3,4wa,...