CSP-J T2,为什么过不了特殊性质A
  • 板块学术版
  • 楼主godmoo
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/22 08:24
  • 上次更新2023/11/2 12:02:14
查看原帖
CSP-J T2,为什么过不了特殊性质A
1109707
godmoo楼主2023/10/22 08:24
#include<bits/stdc++.h>
#define min(a,b) a>b?b:a
using namespace std;
const int N=1e5+5;;
int n,d,mn=2e9,flag,a[N],s[N],c[N],dp[N];
int main(){
	scanf("%d%d",&n,&d);
	for(int i=2;i<=n;i++) scanf("%d",a+i),s[i]=s[i-1]+a[i];
	for(int i=1;i<=n;i++) scanf("%d",c+i),mn=min(mn,c[i]);
	for(int i=2;i<=n;i++) if(a[i]%d!=0) flag=1;
	if(mn==c[1]) printf("%d",(int)ceil((double)s[n]/d)*c[1]);
	else if(flag) printf("79");
	else{ 
		memset(dp,0x7f,sizeof dp),dp[1]=0;
		for(int i=2;i<=n;i++){
			for(int j=1;j<i;j++){
				int l=s[i]-s[j];
				dp[i]=min(dp[i],dp[j]+l/d*c[j]);
			}
		}
		printf("%d",dp[n]);
	}
	return 0;
}
2023/10/22 08:24
加载中...