试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.
/* 圆的话就用2*n-1,即只有n种情况; */ #includeusing namespace std; #include #include const int INF=(1<<31)-1; int s[201],d[201][201],b[201][201],a[101]; int main(int argc, char *argv[]) { int i,j,k,n,r,t,t1,m; cin>>n; s[0]=0; memset(d,0,sizeof(d)); memset(b,0,sizeof(b)); for(i=1;i<=n;i++) {cin> >a[i]; s[i]=s[i-1]+a[i];} for(i=1;id[i][m+i-1]) t=d[i][m+i-1]; if(t1