1 条题解
-
0刷题去 LV 9 MOD @ 2017-03-12 17:26:03
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; int data[10001],f[10001]; int n; int rua(int kong,int num) { if(num==0) { if(kong==0) return 0; //神坑!!!! return 500; } int pin=kong/num,fen=kong%num; return fen*pin*pin+(num-fen)*(pin-1)*(pin-1); } int main() { //freopen("in.txt","r",stdin); int tot=0; char c[107]; scanf("%d",&n); while (scanf("%s",c)==1) { ++tot; int len=strlen(c); data[tot]=data[tot-1]+len; } for(int i=1;i<=tot;i++){ f[i]=999999999; for(int k=0;k<i;k++) { if(data[i]-data[k]>(n-(i-k-1))) continue; f[i]=min(f[i],f[k]+rua(n-data[i]+data[k],i-k-1)); } } printf("Minimal badness is %d.",f[tot]); return 0; }
- 1
信息
- 难度
- 10
- 分类
- (无)
- 标签
- (无)
- 递交数
- 3
- 已通过
- 0
- 通过率
- 0%
- 上传者