专栏文章
题解:AT_dwango2017qual_c スキーリフトの相乗り
AT_dwango2017qual_c题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mines08q
- 此快照首次捕获于
- 2025/12/02 01:13 3 个月前
- 此快照最后确认于
- 2025/12/02 01:13 3 个月前
由于每个人都要上车,改变顺序时最优答案不变,所以可以不考虑顺序。
要想车数量最少,那么每辆车就要尽可能利用,也就是要坐最多人。
由于每队人数最多为四,最少为一,故可以统计每种人数的队伍数量,记为 ,,,。
分别考虑:
- :单独一队一车,共 辆车。
- :尽可能和 拼,要是 不够,那么单独一队一车,共 辆车。 消掉 。
- :先尽量两个两个拼,如果有多余一队,那么和 拼。共 辆车, 消掉 。
- :由于前面的队伍都拼完了,所以只能自己拼,共 辆车。
code
CPP#include<bits/stdc++.h>
using namespace std;
int a[5];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
int x;
cin>>x;
a[x]++;
}
int ans=a[4];
ans+=a[3];
a[1]-=min(a[3],a[1]);
ans+=a[2]/2;
if(a[2]%2){
ans++;
if(a[1]>=1){
a[1]-=min(a[1],2);
}
}
ans+=(a[1]+3)/4;
cout<<ans<<endl;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...