1 条题解

  • 0
    @ 2025-8-24 21:15:19

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar loushujia
    Where there is a well,there is way.

    搬运于2025-08-24 21:15:18,当前版本为作者最后更新于2023-08-25 07:26:48,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    B3827题解

    题目

    发现 dalao 都是用结构体和 sort 写的,

    那我发一篇不用结构体和 sort 的题解,

    话不多说,进入正题。


    主要思路

    在入门时,老师教了一种叫“打擂台”的方法来比较大小,就是一个叫 mxmx变量来存最大值,初值为 0,然后挨个比较,只要它比 mxmx 大,把它的值赋给 mxmx,变成新的擂主。最后,mxmx 就是最大值

    这道题的思路与“打擂台”基本相同,干脆想成帮派竞争当家的。就是要有两个 mxmx 和两个存储序号的,mx1mx_1是大当家存储第一大的平均数mx2mx_2 二当家是存储第二大的平均数,挑战者先与 mx1mx_1 比较,比不过再与 mx2mx_2 比较。

    既然思路搞明白了,那就上代码!


    #include<cstdio>//scanf和printf的头文件
    int n,k,x1,x2,a;//x1和x2存题的序号
    double mx1,mx2,p;//mx1,mx2用来比较题目的必要性,p用来求平均值
    int main()
    {
    	scanf("%d%d",&n,&k);
    	for(int i=1;i<=n;i++)
    	{
    		p=0.0;//多测不清空,爆零两行泪 qaq
    		for(int j=1;j<=k;j++)
    		{
    			scanf("%d",&a);
    			p+=a;//求和
    		}
    		p/=k;//求平均值
    		//重点来了!!!
    		if(mx1<p)//如果这道的平均值比 大当家(原来的最大值)大
    			mx1=p,x1=i;//成为大当家!
    		else if(mx2<p)//打不过大当家,去挑战二当家
    			mx2=p,x2=i;//挑战成功!
    	}
    	printf("%d\n%d",x1,x2);//输出
    	return 0;//华丽的地结束
    }
    
    输入样例:
    3 2
    10 20
    15 25
    20 30
    
    输出:
    3
    0
    

    喜提 0 分。

    why?

    我辛辛苦苦调了 3 分钟,发现如果挑战大当家成功的话,原来的大当家理当成为二当家,我们却直接把他踢出了竞争,成为了小弟。

    既然知道怎么错的了,那就上 AC 代码。


    #include<cstdio>//scanf和printf的头文件
    int n,k,x1,x2,a;//x1和x2存题的序号
    double mx1,mx2,p;//mx1,mx2用来比较题目的必要性,p用来求平均值
    int main()
    {
    	scanf("%d%d",&n,&k);
    	for(int i=1;i<=n;i++)
    	{
    		p=0.0;//多测不清空,爆零两行泪 qaq
    		for(int j=1;j<=k;j++)
    		{
    			scanf("%d",&a);
    			p+=a;//求和
    		}
    		p/=k;//求平均值
    		//重点来了!!!
    		if(mx1<p)//如果这道的平均值比 大当家(原来的最大值)厉害(大)
    		{
    			mx2=mx1,x2=x1;//大当家惜败,成为二当家
    			mx1=p,x1=i;//成为大当家!
    		}
    		else if(mx2<p)//打不过大当家,去挑战二当家
    			mx2=p,x2=i;//挑战成功!
    	}
    	printf("%d\n%d",x1,x2);//输出
    	return 0;//华丽的地结束
    }
    
     样例输入 # 1:
     3 2
     10 20
     15 25
     20 30
    
     输出:
     3
     2
     
     样例输入 # 2:
     3 2
     10 20
     5 25
     1 2
    
     输出:
     1
     2  
    

    喜提 AC。

    • 1

    信息

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