求助
  • 板块CF1684D Traps
  • 楼主liumuyvan
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/10/5 16:50
  • 上次更新2023/10/27 08:40:12
查看原帖
求助
636097
liumuyvan楼主2022/10/5 16:50
#include<bits/stdc++.h>
using namespace std;
struct node{
	int val,pl;
}a[(int)2e5+10];
int num[(int)2e5+10];
bool flag[(int)2e5+10];
bool cmp(node x,node y){
	return x.val>y.val; 
} 
int main(){
	int k;
	cin>>k;
	while(k--){
	    memset(flag,false,sizeof(flag));
		int n,m,ans=0,cnt=0;
		cin>>n>>m;
		for(int i=1;i<=n;i++){
			cin>>num[i];
			a[i].pl=i;
			a[i].val=num[i]-(n-i);;
			
		}
		sort(a+1,a+n+1,cmp);
		for(int i=1;i<=m;i++){
			flag[a[i].pl]=true;
		} 
		for(int i=1;i<=n;i++){
			if(flag[i]){
				cnt++;
				continue;
			}
			ans+=num[i]+cnt;
		}
		cout<<ans<<endl;
	}
	return 0;
}

我也不知道哪里错了调整了之前的代码后,(之前样例都没过)从点二开始WA,样例过了(这种题都能卡这么久,我太弱了)

2022/10/5 16:50
加载中...