求助~~~~
查看原帖
求助~~~~
367953
_Inzaghi_楼主2021/12/26 15:37

为什么输入都没法输了?

#include<iostream>
using namespace std;

#define INF 0x3f3f3f3f
#define N  40001

int n;
int sz[2*N];
int sum[2*N];
int dp_min[N*2][N*2]; 

int main(){
	cin>>n;
	for(int i = 1 ; i <= n ; i++){
		cin>>sz[i];
		sz[i + n] = sz[i];
	}
	for(int i = 1 ; i <=2 * n ;i++){
		sum[i] = sum[i - 1] + sz[i];
	}
	for(int len = 2 ; len <= n ; len++){
		for(int left = 1 ; left + len - 1 <= 2 * n ; left++){
			int right = left + len - 1;
			dp_min[left][right] = INF; 
			for(int k = left ; k < right ; k++){ 
				dp_min[left][right] = min(dp_min[left][right] , dp_min[left][k] + dp_min[k + 1][right] + sum[right] - sum[left - 1]);
			} 
		}
	}
	int smin = INF;
	for(int i = 1 ; i <= n ; i++){	
    	smin = min(smin , dp_min[i][i + n - 1]);
	}
	cout<<smin<<endl;
	return 0;
}
2021/12/26 15:37
加载中...