鱼C论坛

 找回密码
 立即注册
查看: 2073|回复: 4

[已解决]问题求解

[复制链接]
发表于 2022-8-23 18:50:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ExiaGN001 于 2022-8-23 22:34 编辑

51nod 2540 平分 (查无此题)
考虑足球比分系统,一场足球比赛从开始到结束的过程中,摄像机随机拍摄了n张比分信息,问你本场比赛最多出现了几次平分。
例如:3个比分信息为:
2 0
3 1
3 4
最终比分为3:4,所以最多只可能出现最初的0:0以及3:3这2次平分。如果只有1张3:4,那么最多可能有0:0 1:1 2:2 3:3共4次平分。

输入
第一行一个数n。
接下来n行,每行两个数a[ i],b[ i],表示第i次拍摄时比分为a[ i]:b[ i]。
最后一次拍摄的比分即为最终比分。
n<=10000,a[ i],b[ i]<=10^9,a[ i],b[ i]保证不降。

输出
输出最多平分次数,包括开局的0:0。

输入样例
3
2 0
3 1
3 4
输出样例
2

模糊不清的官方题解:
给出的分数本身是有序的。为了简化思考,我们只考虑相邻的 2 个比分如何计数。
例如:从 2:5 到 8:10 ,可能出现的平分是 5:5,6:6,7:7,8:8 。 5=max(2,5),8=min(10,8) ,因此平分的数量是 min(a[ i],b[ i])-max(a[i-1],b[i-1])+1 。
但还存在另外一种情况,例如:从 2:5 到 3:6 ,其中不可能出现平分,也就是 min(a[ i],b[ i])-max(a[i-1],b[i-1])+1<0 的情况,这种情况下计数为 0 。
因此,我们可以推出一个 O(n) 的算法,统计最多可能的平分。

求C/C++解答!
(非水帖且有用回答会给予评分)
将在8月26日设置最佳答案
最佳答案
2022-8-23 19:46:06
不知道对不对
int main()
{
        int n,i=0,j=0,bf1=0,bf2=0,count=0;
        scanf("%d",&n);
        //int (*bf)[2]=(int(*)[2])malloc(n,sizeof(int)*2);
        int minbf=0,maxbf=0;
        for(i=0;i<n;i+=1)
    {
        scanf("%d:%d",&bf1,&bf2);
        int m=bf1>bf2?bf2:bf1;
        if(m>=maxbf)
        {
            if(count)count+=m-maxbf+1;
            else
                count=1;

        }
        maxbf=maxbf>bf1?maxbf:bf1;
        maxbf=maxbf>bf2?maxbf:bf2;

    }
    printf("%d\n",count);
        return 0;
}
2
2:5 3:6
1
3
2:0
3:1
3:4
2
2
2:5
8:10
5


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-23 19:46:06 | 显示全部楼层    本楼为最佳答案   
不知道对不对
int main()
{
        int n,i=0,j=0,bf1=0,bf2=0,count=0;
        scanf("%d",&n);
        //int (*bf)[2]=(int(*)[2])malloc(n,sizeof(int)*2);
        int minbf=0,maxbf=0;
        for(i=0;i<n;i+=1)
    {
        scanf("%d:%d",&bf1,&bf2);
        int m=bf1>bf2?bf2:bf1;
        if(m>=maxbf)
        {
            if(count)count+=m-maxbf+1;
            else
                count=1;

        }
        maxbf=maxbf>bf1?maxbf:bf1;
        maxbf=maxbf>bf2?maxbf:bf2;

    }
    printf("%d\n",count);
        return 0;
}
2
2:5 3:6
1
3
2:0
3:1
3:4
2
2
2:5
8:10
5


评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
ExiaGN001 + 1 + 1 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-8-24 07:13:52 | 显示全部楼层

感谢回复,但是还是与预期结果不符。
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-24 10:25:37 | 显示全部楼层
去度娘家里做客就好

评分

参与人数 1荣誉 +1 收起 理由
ExiaGN001 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-24 18:01:02 | 显示全部楼层
编程追风梦 发表于 2022-8-24 10:25
去度娘家里做客就好

查过有用的话就不会来问了(悲
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 23:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表