专栏文章
题解:AT_abc431_c [ABC431C] Robot Factory
AT_abc431_c题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @min7rxgy
- 此快照首次捕获于
- 2025/12/01 21:57 3 个月前
- 此快照最后确认于
- 2025/12/01 21:57 3 个月前
题意概述: 每个机器人由一个头部零件和一个身体零件组成,如果头部的重量大于身体的重量,则机器人会摔倒。现有 个头部零件和 个身体零件,并给定长度为 的数组 和长度为 的数组 表示其重量。求是否能组成 个不摔倒的机器人。
Solution
贪心思想,读入后对两个数组进行排序,始终用最轻的头对最轻的身体。用 变量记录配对成功的机器人数量,匹配结束后与 进行比较,输出答案。
具体解释见代码。
CPP#include<bits/stdc++.h>
using namespace std;
const int maxn=200005;
int h[maxn],b[maxn];
int main(){
int n,m,k;
cin>>n>>m>>k;
for(int i=1;i<=n;i++) cin>>h[i];
for(int i=1;i<=m;i++) cin>>b[i];//读入
sort(h+1,h+n+1);
sort(b+1,b+m+1);//排序
int op=1,ans=0;//op表示身体零件使用到的位置
for(int i=1;i<=n;i++){//头部用完则结束匹配
while(h[i]>b[op] && op<=m) op++;
if(op==m+1) break;//身体用完则结束匹配
else op++,ans++;
}
if(ans>=k) cout<<"Yes";
else cout<<"No";//判断并输出
return 0;
}
//Terabyte's code.
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...