社区讨论
NOIPT4疑似宇宙射线36->0
学术版参与者 2已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lp45vafg
- 此快照首次捕获于
- 2023/11/18 22:45 2 年前
- 此快照最后确认于
- 2023/11/19 09:31 2 年前
CPP
//[Data Removed] [Data Removed] qinianji [Data Removed]
#include<bits/stdc++.h>
using namespace std;
struct kill{
int x,y,v;
}a[100006];
int n,m,k,d,c,t;
long long dp[1005][1006],f[1005],get[1005][1005];
long long mmax(long long a,long long b){
if(a>b) return a;
return b;
}
long long mmin(long long a,long long b){
if(a<b) return a;
return b;
}
bool cmp(kill aa,kill bb){
if(aa.x==bb.x) return aa.y<bb.y;
return aa.x<bb.x;
}
int main(){
freopen("run.in","r",stdin);
freopen("run.out","w",stdout);
cin >> c >> t;
if(c<=9){
while(t--){
cin >> n >> m >> k >> d;
for(int i=1;i<=m;i++){
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].v);
}
sort(a+1,a+m+1,cmp);
int cnt=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=mmin(k,i);j++){
get[i][j]=get[i][j-1]+get[i-1][j-1]-(j!=1?get[i-1][j-2]:0);
while(cnt<=m){
if(a[cnt].x!=i) break;
if(a[cnt].y!=j) break;
get[i][j]+=a[cnt].v;
cnt++;
}
}
}
for(int i=1;i<=n;i++){
f[i]=-1e18;
for(int j=0;j<=mmin(k,i);j++){
if(j==0){
dp[i][j]=f[i-1];
}
else if(j==i || j==i-1){
dp[i][j]=get[i][j]-j*d;
}
else{
dp[i][j]=get[i][j]-j*d+f[i-j-1];
}
f[i]=mmax(dp[i][j],f[i]);
}
}
cout<<f[n]<<endl;
}
}
return 0;
}
本地编译通过了 但是好像kill这个名字oj上会CE
改掉这个名字全WA
回复
共 6 条回复,欢迎继续交流。
正在加载回复...