【蓝桥杯刷题】盗版Huybery系列之手抓饼赛马

简介: 【蓝桥杯刷题】盗版Huybery系列之手抓饼赛马

💡前言🌞:  


大伙们好!😄又到了小陈蓝桥杯每日一题的时间了~ 😋😋😋今天也带来了十分有趣的题目!🥰🥰🥰用C语言实现——盗版Huybery系列之手抓饼赛马,这个题目很有意思,新颖的同时又很值得思考!我现在迫不及待地要和大家分享~!😄🤗🤗


 💛盗版Huybery系列之手抓饼赛马题目💛


💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡


大家听说过“田七赛马”的故事吗?


那是在遥远的战国时期了,当时的齐国上流社会赛马成风,上至国君下至大臣,常常以重金赌赛马的输赢。而田七是一个没什么心眼却很爱面子的大臣,别人找他赛马他不好意思拒绝。但由于策略不当,屡赌屡输。


终于,在他将要把所有的俸禄都输光的时候,他找到从小长在大草原,对各种马的习性,能力都很熟悉的朋友手抓饼,请他帮自己赢得下一场比赛。


手抓饼暗中观察了对手的马,发现田七的马和他的相差不远,只要运用一点小手段,就很有可能战胜对手。


下场比赛的规则为:田七和对手分别使用N匹马来参赛,比赛过程中不允许出现平局, 最后谁赢的场数多于一半谁就是获胜(最终可能没有赢家)。假设每匹马都有恒定的速度,而手抓饼已经掌握了所有马的速度。


现在,请你来你来预测一下,手抓饼能否帮助田七赢得比赛。


输入:

输入有多组测试数据。

每组测试数据包括3行:

第一行输入N(1≤N≤1000)。表示马的数量。

第二行有N个整型数字,即田七的N匹马的速度。

第三行有N个整型数字,即对手的N匹马的速度。

当N为0时结束。


输出:

若通过手抓饼的安排,田七能赢得比赛,那么输出“YES”。

否则输出“NO”。


每个输出占一行。


样例输入

5

2 3 3 4 5

1 2 3 4 5

4

2 2 1 2

2 2 3 1

0

样例输出

YES

NO


💪 解题思路的分享💪  


田忌赛马的故事想必大家都知道,田忌获胜的秘诀就是让自己的劣马来消耗掉对手的好马,然后用自己的好马来对上敌方的劣马,是非常阴险的做法。

我们就依着田忌的做法来写代码。

首先输入马匹的个数,接着输入两组马匹速度的数据。

然后用冒泡排序将马匹的速度由低到高排序。

我们定义一个变量计数君t=0来存放数据,等下来判断比赛结果。

用两组for循环来遍历两组数据,如果田忌的马匹的速度大于对手的马匹速度的任意一只,那么就让 t+=1 。

因为数组已经是有序数组,我们下次循环对手的马匹时,就可以从下标为t的元素开始。

如果最后t>n/2,即田忌获胜,否则田忌落败。


😊题目源码的分享😊


#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int main()
{
  int n, a[1000], b[1000];
  while (cin >> n)
  {
  if (n == 0) break;
  else
  {
    int t = 0;
    for (int i = 0; i < n; i++)
    {
    cin >> a[i];
    }
    for (int i = 0; i < n; i++)
    {
    cin >> b[i];
    }
    t = 0;
    for (int i = 0; i < n - 1; i++)
    {
    for (int r = 0; r < n - 1 - i; r++)
    {
      if (a[r] > a[r + 1])
      {
      int d = a[r];
      a[r] = a[r + 1];
      a[r + 1] = d;
      }
      if (b[r] > b[r + 1])
      {
      int f = b[r];
      b[r] = b[r + 1];
      b[r + 1] = f;
      }
    }
    }
    for (int j = 0; j < n; j++)
    {
    for (int m = t; m < n; m++)
    {
      if (a[j] > b[m])
      {
      t += 1;
      break;
      }
      else
      ;
    }
    }
    if (t > n / 2) cout << "YES";
    else cout << "NO";
    cout << endl;//打印换行,方便输入。
  }
  }
  return 0;
}

👉 本菜鸡&总结 👈


这是我们学校蓝桥杯选拔赛上面的题目,我觉得很有意思就写了这篇博客,这种题目比较耐人寻味,比如这道题肯定就还有很多其他的做法,里面的冒泡排序也可以直接用qsort函数来实现,不过我还没有实践,哪位大佬有更好的做法,请在评论区不吝赐教哦~😀如果觉得我写的不错的话还请点个赞和关注哦~我会持续输出编程的知识的!🌞🌞🌞

0a506bd9fcb9b52271028b463377ac04_b2614d5b5232316e47d69634062ea882.gif


相关文章
|
9月前
|
存储 算法 NoSQL
膜拜!砍下13个大厂Offer神仙案例! | 彭文华
膜拜!砍下13个大厂Offer神仙案例! | 彭文华
|
10月前
|
算法
史上最牛二分查找,不服来战
史上最牛二分查找,不服来战
57 0
|
10月前
|
人工智能 安全 C++
百日刷题计划 ———— DAY2
百日刷题计划 ———— DAY2
78 0
|
10月前
|
机器学习/深度学习
百日刷题计划 ———— DAY1
百日刷题计划 ———— DAY1
158 0
|
算法 Go
牛客寒假算法集训营 2 感想
【【题目讲解】2023牛客寒假算法基础集训营2】
66 0
牛客寒假算法集训营 2 感想
|
存储 人工智能 JavaScript
【寒假每日一题】AcWing 4510. 寻宝!大冒险!
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
102 0
|
Android开发
LeetCode 双周赛 98,脑筋急转弯转不过来!
大家好,我是小彭。 昨晚是 LeetCode 第 98 场双周赛,你参加了吗?这场周赛需要脑筋急转弯,转不过来 Medium 就会变成 Hard,转得过来就变成 Easy。
67 0
|
机器学习/深度学习 算法 测试技术
面试官在“逗”你系列:到底应该怎么爬楼梯?! | 牛气冲天新年征文
算法题是在面试过程中考察候选人逻辑思维能力、手写代码能力的一种方式,因为有一句古话说的好:“说一千道一万,不如写段代码看一看”。今天我们就来个单刀直入,直奔主题,从一个真实面试题到底怎么爬楼梯来聊一聊算法中的动态规划 。
170 0
|
算法 前端开发 搜索推荐
学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!
学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!
125 0
|
SQL 运维 NoSQL
一则正经的招聘启事
阿里云数据库团队期待你的加入
800 0
一则正经的招聘启事