1 条题解

  • 0
    @ 2025-8-24 22:42:57

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Double_Light
    身虽位于苍穹一粟,心亦向往若尘繁星。

    搬运于2025-08-24 22:42:57,当前版本为作者最后更新于2022-11-13 11:30:42,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    一道简单的橙题

    思路很简单,贪心+排序。

    我们令 mm 件商品和 nn 名同学依次按价格和财力进行排序,让同学们依次来选购商品,如果买的走,就买走它,再接着卖下一件商品;如果钱不够,则让下一个人来选购。

    用两个变量分别指向轮到第几个人买和该卖第几样东西,再输出有几个人买到了东西即可。

    不多说了,代码里有注释:

    #include<iostream>
    #include<algorithm> 
    using namespace std;
    int n,m,a[100005],b[100005],cnt,zz1=1,zz2=1;//zz1,zz2分别指向轮到第几个人买东西和该卖第几样东西
    int main(){
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)cin>>a[i];
    	for(int i=1;i<=m;i++)cin>>b[i];
    	sort(a+1,a+n+1);//对人们的钱数排序 
    	sort(b+1,b+m+1);//对商品的价格排序 
    	while(zz1<=n&&zz2<=m){//还有人没开始买且商品还没卖完
    		if(a[zz1]>=b[zz2]){//买的起 
    			cnt++;//多了一个买得起商品的人
    			zz1++;//下一个人来买 
    			zz2++;//卖下一件商品 
    		}
    		else zz1++;//买不起就下一个人来买 
    	}
    	cout<<cnt; 
    	return 0;
    }
    
    END\mathbb{---END---}
    • 1

    信息

    ID
    6600
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者