蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2)

这篇具有很好参考价值的文章主要介绍了蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、矩形总面积 

思路:

代码: 

 二、错误票据

思路:

代码: 

 三、分糖果1

思路:

代码:

四、三国游戏

思路:

代码: 

五、分糖果2

思路:

代码:

一、矩形总面积 

蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2),c++,开发语言,蓝桥杯

蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2),c++,开发语言,蓝桥杯

思路:

1、分四种情况为没有重叠 (x[2] < x[3] || y[2] < y[3] || x[4] < x[1] || y[4] < y[1]),这种情况下输出为两矩形面积之和。

2、重叠的情况下输出为两个矩形的面积之和减去重叠面积之和。

3、重叠面积:

              长为:小的右上角坐标减去大的左下角坐标

              宽为:小的右上角坐标减去大的左下角坐标

              面积:长×宽

代码: 

#include <iostream>
using namespace std;
int main()
{
    long long x[5], y[5];
    for (int i = 1; i <= 4; i++)
        cin >> x[i] >> y[i];
    long long ans = (x[2] - x[1]) * (y[2] - y[1]) + (x[4] - x[3]) * (y[4] - y[3]);
    if (x[2] < x[3] || y[2] < y[3] || x[4] < x[1] || y[4] < y[1])//完全不重叠
        cout << ans;
    else
    {
        long long a = abs(max(x[1], x[3]) - min(x[2], x[4]));
        long long b = abs(max(y[1], y[3]) - min(y[2], y[4]));
        cout << ans - a * b;
    }
    return 0;
}

 二、错误票据

蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2),c++,开发语言,蓝桥杯

思路:

1、用数组下标来表示数,记录数出现的次数。

2、记录最小,最大值,从最小到最大遍历

3、等于0,则为断号ID;等于1,则出现一次;超过1,则为重号ID。

代码: 

#include <iostream>
using namespace std;
int main()
{
    int a[10010] = { 0 };
    int n, temp, max=0, min=1e9;
    cin >> n;
    while (n--)
    {
        while (cin >> temp)
        {
            if (temp > max)
                max = temp;
            if (temp < min)
                min = temp;
            a[temp]++;
        }
    }
    int m, d;
    for (int i = min; i <= max; i++)
    {
        if (a[i] == 0)
            m = i;
        else if (a[i] > 1)
            d = i;
    }
    cout << m << " " << d;
}

 三、分糖果1

蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2),c++,开发语言,蓝桥杯

思路:

1、将字符串从小到大排序

2、相差度要尽量小,分为三种情况

3、第一种:全都一样,则分成x组,奇数则后面的多加一个

      第二种:第x个与第一个一样,则从第x个到最后

      第三种:第1个到第x个都不一样,输出第x个

代码:

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
	int n, x;
	cin >> n >> x;
	char s[1000010];
	for(int i=1;i<=n;i++)
	      cin >> s[i];
	sort(s+1, s + n+1 );
	//for (int i = 1; i <= n; i++)
				//cout << s[i];
	if (s[1] == s[n])//全都一样,则分成x组,奇数则后面的多加一个
	{
		int cnt;
		if (n % x == 0)
			cnt = n / x;
		else
			cnt = n / x + 1;
		for (int i = 1; i <= cnt; i++)
			cout << s[i];
	}
	else if (s[x] == s[1])//第x个与第一个一样,则从第x个到最后
	{
		for (int i = x; i <= n; i++)
			cout << s[i];
	}
	else//输出第x个
		cout << s[x];
}

四、三国游戏

蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2),c++,开发语言,蓝桥杯

思路:

1、分三种情况:x赢,y赢,z赢

2、分三种情况排序,第一种根据x和(y+z)的差值排序,第二种根据y和(x+z)的差值排序,第三种根据z和(x+y)的差值排序

3、遍历,求出最大ans,没有则输出-1

代码: 

#include <iostream>
#include <algorithm>
using namespace std;
struct node
{
	int x, y, z;
}a[100010];
bool cmp1(node a, node b)//根据x 和(y+z)的差值排序
{
	return a.x - (a.y + a.z) > b.x - (b.y + b.z);
}
bool cmp2(node a, node b)//根据y 和(x+z)的差值排序
{
	return a.y - (a.x + a.z) > b.y - (b.x + b.z);
}
bool cmp3(node a, node b)//根据z 和(x+y)的差值排序
{
	return a.z - (a.y + a.x) > b.z - (b.y + b.x);
}
int main()
{
	int n;
	cin >> n;
	long long ans = -1, sum1 = 0, sum2 = 0;
	for (int i = 0; i < n; i++)
		cin >> a[i].x;
	for (int i = 0; i < n; i++)
		cin >> a[i].y;
	for (int i = 0; i < n; i++)
		cin >> a[i].z;
	sort(a, a + n, cmp1);//x赢
	for (int i = 0; i < n; i++)
	{
		sum1 += a[i].x;
		sum2 += a[i].y + a[i].z;
		if (sum1 > sum2 && ans <= i + 1)
			ans = i + 1;
	}
	sum1 = 0, sum2 = 0;
	sort(a, a + n, cmp2);//y赢
	for (int i = 0; i < n; i++)
	{
		sum1 += a[i].y;
		sum2 += a[i].x + a[i].z;
		if (sum1 > sum2 && ans <= i + 1)
			ans = i + 1;
	}
	sum1 = 0, sum2 = 0;
	sort(a, a + n, cmp3);//z赢
	for (int i = 0; i < n; i++)
	{
		sum1 += a[i].z;
		sum2 += a[i].y + a[i].x;
		if (sum1 > sum2 && ans <= i + 1)
			ans = i + 1;
	}
	cout << ans;
}

五、分糖果2

蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2),c++,开发语言,蓝桥杯

思路:

1、模拟传递糖果,分发糖果

2、每个小朋友每轮过后手上糖果数量为a[i] = a[i] / 2 + a[i + 1] / 2,最后一个小朋友的为a[n] = a[n] / 2 + a[1]/2;

3、循环,直到所有小朋友糖果都一样,跳出循环文章来源地址https://www.toymoban.com/news/detail-807118.html

代码:

#include<iostream>
using namespace std;
int main()
{
	int n;
	cin >> n;
	int a[105];
	int ans = 0;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	while (1)
	{
		int temp = a[1] / 2;
		for (int i = 1; i < n; i++)
		{
			a[i] = a[i] / 2 + a[i + 1] / 2;
		}
		a[n] = a[n] / 2 + temp;
		int flag = 1;
		for (int i = 1; i <= n; i++)
		{
			if (a[i] != a[1])
			{
				flag = 0;
			}
			if (a[i] % 2 == 1)
			{
				a[i] += 1;
				ans++;
			}
		}
		if (flag == 1)
			break;
	}
	cout << ans;
}

到了这里,关于蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode 75 - 01 : 最小面积矩形

    解题思路:一个矩形可以通过一条对角线也就是两个点唯一确认。那么可以先将所有的点加入哈希表,然后枚举两个点,如果这两个点x坐标和y坐标都不一致就可以构成一条对角线。最后判断由这条对角线确定的矩形的另外两个点是否在哈希表中,如果存在就是一个合法的矩

    2024年02月07日
    浏览(39)
  • 【leetcode热题100】接雨水、直方图最大矩形面积、矩阵中最大的矩形

    题目链接 题目描述: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝

    2024年02月03日
    浏览(56)
  • 定义矩形类,求其面积和周长(java)

    编写一个 矩形 类 R ectangle,该类拥有: 两个 成员变量 : Length(私有,双精度型); // 存放矩形的长;      Width(私有,双精度型); // 存放矩形的宽;       两个构造方法 :     1.Rectangle ( )            // 将高和宽设为0          2.Rectangle (double l,double W

    2024年04月12日
    浏览(39)
  • 错误票据题解

    先对数组进行排序,然后遍历数组,如果出现两个一样的,就是重号,如果连续的两个数之间相差大于1就是断号

    2024年02月22日
    浏览(67)
  • 蓝桥杯专题-试题版-【分糖果】【矩阵翻硬币】【兰顿蚂蚁】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月11日
    浏览(39)
  • 蓝桥杯专题-真题版含答案-【大衍数列】【圆周率】【分糖果】【等额本金】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月13日
    浏览(51)
  • Java 编程实例:相加数字、计算单词数、字符串反转、元素求和、矩形面积及奇偶判断

    示例 输出 解释 首先,声明两个 int 类型的变量 x 和 y ,并分别赋值为 5 和 6。 然后,使用 + 运算符将 x 和 y 相加,并将结果赋给变量 sum 。 最后,使用 System.out.println() 方法打印 sum 的值。 示例 输出 解释 首先,导入 Scanner 类,用于读取用户输入。 然后,声明三个 int 类型的

    2024年03月19日
    浏览(89)
  • 939. 最小面积矩形;2166. 设计位集;2400. 恰好移动 k 步到达某一位置的方法数目

    939. 最小面积矩形 核心思想:枚举矩形的右边那条边的两个点,并用一个哈希表存储相同纵坐标的最近出现的列的列数,不断更新最近出现的左边那条边。  2166. 设计位集 核心思想:这题主要是时间复杂度的优化,用一个flag来标记当前翻转了奇数次1还是偶数次0,这样就不用

    2024年02月12日
    浏览(45)
  • 蓝桥杯真题——三角形的面积

    题目描述 平面直角坐标系中有一个三角形, 请你求出它的面积。 输入描述 第一行输入一个 T ,代表测试数据量. 每组测试数据输入有三行,每行一个实数坐标 (x,y) 代表三角形三个顶点。 1≤T≤10^3,   −10^5≤x,y≤10^5 输出描述 输出一个实数表示三角形面积。结果保留2位小

    2023年04月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包