专栏文章

题解:P13700 [NWERC 2023] Arranging Adapters

P13700题解参与者 3已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@miobqnzs
此快照首次捕获于
2025/12/02 16:36
3 个月前
此快照最后确认于
2025/12/02 16:36
3 个月前
查看原文

P13700 [NWERC 2023] Arranging Adapters

思路

这是一个典型的贪心算法,需要优先插入长度较短的充电线,直到插座满了或充电线没有了为止。模拟就好了

AC代码

CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5*2+10;
int v[N];
int n,s;
int ans=-1;
int x=0,y=0;
signed main(){
	cin>>n>>s;
	s--;
	for(int i=1;i<=n;++i) cin>>v[i];
	sort(v+1,v+n+1);
	if(s!=0){
		for(int i=1;i<=n;i++){
			s-=v[i]/3;
			ans++;
			if(v[i]%3==1) x++;
			else if(v[i]%3==2) y++;
			int tmp=0;
			if(x>=y) tmp=y+(x-y+1)/2;
			else tmp=y;
			if(tmp>=s) break;
		}
	}
	cout<<ans<<'\n';
	return 0;
}

评论

2 条评论,欢迎与作者交流。

正在加载评论...