蓝桥算法训练营-普及组-2.9打卡

news/2024/4/24 22:26:08/文章来源:https://blog.csdn.net/qq_59904473/article/details/128953771

1. P1781 宇宙总统(字符串排序)

题意:

共有 nnn​ 个人竞选总统,给定每个候选人的票数,票数最多的人当选总统,输出候选人的编号和票数。

注:票数很大,可能会到 100100100 位数字。

思路:

将票数用 字符串 来存储,用结构体来存储每个人的票数和编号。

最后按照票数排序,输出最大的票数及对应的编号即可。

代码:

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 30;struct node
{string x;int idx;
} a[N];bool cmp(node a, node b)
{if (a.x.size() != b.x.size())return a.x.size() > b.x.size();return a.x > b.x;
}int main()
{int n;cin >> n;for (int i = 1; i <= n; i++){cin >> a[i].x;a[i].idx = i;}sort(a + 1, a + 1 + n, cmp);cout << a[1].idx << endl;cout << a[1].x << endl;return 0;
}

2. P1223 排队接水(贪心)

题意:

nnn 个人在一个水龙头前排队接水,每个人接水的时间为 tit_iti

请找出这 nnn 个人排队的最优顺序,使得 nnn 个人的平均等待时间最小。

思路:

要想平均等待时间最小,那么就要每个人的等待时间都尽可能的短。

贪心的想,就要安排接水时间短的人在前面,这样后面人的等待时间就会尽量的短。

结构体 来存储每个人的接水时间和编号,当轮到这个人打水的时候,他的等待时间就是前面所有人接水时间的总和,相加后最后除以总人数,取小数点后两位输出即可。

代码:

#include <iostream>
#include <algorithm>
#include <cstring>
#define ll long long
using namespace std;
const int N = 1e6 + 10;struct node
{int t;int id;
} a[N];bool cmp(node x, node y)
{return x.t < y.t;
}int main()
{int n;cin >> n;for (int i = 1; i <= n; i++){cin >> a[i].t;a[i].id = i;}sort(a + 1, a + 1 + n, cmp);ll sum = 0;for (int i = 1; i <= n; i++){cout << a[i].id << " ";sum += a[n - i].t * i;}printf("\n%.2f\n", (double)sum / n);return 0;
}

3. P3817 小A的糖果(枚举 +贪心)

题意:

nnn 个糖果盒,每个糖果盒都有糖果。

现要求任意两个相邻的盒子中糖果的个数之和都不大于 xxx​ 。

问至少要取出多少颗糖果。

思路:

枚举

对于每个盒子,先判断是否大于 xxx ,先把超过的部分去掉;

再加上前面的盒子,如果总和超过 xxx ,再在当前盒子中取出超过的部分。

因为第一步操作保证了前面的盒子中糖果不超过 xxx 个,即前面都是合法的,所以我们只需要对后面的盒子进行操作就可以了。

代码:

#include <iostream>
#include <algorithm>
#include <cstring>
#define ll long long
using namespace std;
const int N = 1e5 + 10;int a[N];int main()
{int n, x;cin >> n >> x;for (int i = 0; i < n; i++)cin >> a[i];ll ans = 0;for (int i = 0; i < n; i++){if (a[i] > x){ans += (a[i] - x);a[i] = x;}ll sum = a[i] + a[i - 1];if (sum > x){ans += (sum - x);a[i] -= (sum - x);}}cout << ans << endl;return 0;
}

4. P1007 独木桥(思维)

题意:

一群士兵在独木桥上,独木桥十分狭窄,只能容纳 111 个人通行。假如有 222 个人相向而行在桥上相遇,那么他们 222 个人将无法绕过对方,只能有 111 个人回头下桥,让另一个人先通过。

每个士兵都有一个初始方向,均匀速行走,如果两个士兵相遇就会分别转身继续行走,转身不需要时间。

给定独木桥的长度为 LLL 。所有士兵速度都为 111 ,当士兵走到坐标为 000L+1L + 1L+1 的位置就离开了独木桥。

士兵人数为 NNN ,然后 NNN​ 个整数分别代表每个士兵的初始坐标。

求所有士兵离开独木桥的最短和最长时间。

思路:

想象一下,不考虑谁是谁,当两个士兵相遇,可以视为他们 “穿过” 了对方继续行走,不影响最后的结果。

那么我们就可以依次对每个士兵进行判断,设当前坐标为 ppp ,有两种选择:

  • 向左,需要 ppp 时间
  • 向右,需要 L−p+1L - p + 1Lp+1 时间

分别取 maxmaxmaxminminmin ,每次比较判断最短和最长时间即可。

代码:

#include <iostream>
#include <algorithm>
#include <cstring>
#define ll long long
using namespace std;int main()
{int l, n;cin >> l >> n;int mx = 0, mn = 0;for (int i = 1; i <= n; i++){int p;cin >> p;mx = max(mx, max(p, l - p + 1));mn = max(mn, min(p, l - p + 1));}cout << mn << ' ' << mx << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_255698.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python-第二天 Python基础语法

Python-第二天 Python基础语法一、 字面量1.1 常用的值类型1.1.1 字符串&#xff08;string&#xff09;二、注释2.1 注释的作用2.2 注释的分类三、变量3.1 什么是变量3.2 变量的特征四、数据类型4.1 数据类型4.2 type()语句4.3 type()语句的使用方式4.4 变量有类型吗&#xff…

企业数字化转型的产品设计思路

数字化转型的核心是全面重塑企业的管理模式和经营模式&#xff0c;是迈向数字经济时代的方式。一、到底什么是数字化转型&#xff1f;数字化转型并不神秘。数字化转型是一种经营方式、一种经营理念&#xff0c;是将企业相关的人、物料、设备、资金等要素进行系统运转&#xff0…

中国网站安全形式风险报告

声明 本文是学习2017中国网站安全形势分析报告. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 网站漏洞检测分析 网站漏洞的整体形势可以从两个角度分析&#xff1a;一是网站安全检测的自动扫描结果统计&#xff0c;二是网站被报告漏洞情况的统计。…

浅谈监控易运维系统在金融信创国产化中的使用

自2019年&#xff0c;国家明确信创产业将成为拉动经济发展的重要途径和崭新动能以来&#xff0c;全行业进入一个高速发展新阶段。此前倡导的“28”安全可控体系&#xff0c;其中在8大基础行业中,金融行业信创产品推广成为重中之重。金融行业信创&#xff0c;是为解决行业本质安…

全息存储:名气大于实力的存储技术?

全息存储和玻璃存储、DNA存储并称当前三大数据存储前沿技术&#xff0c;笔者前面已经写过玻璃存储和DNA存储的文章&#xff08;参见《玻璃存储&#xff0c;数字时代的罗塞塔石碑》、《DNA存储&#xff1a;数据存储的终极解决之道》&#xff09;&#xff0c;自然也不能缺了全息存…

ASO优化之如何进行榜单优化

ASO优化有&#xff1a;搜索优化&#xff0c;榜单优化&#xff0c;转化率优化。今天我们主要来讲讲苹果应用商店的榜单优化。 榜单优化的核心内容就是提高应用商城的排名&#xff0c;把我们的APP提升到显眼的位置&#xff0c;增加曝光率&#xff0c;提升APP的下载量。 那我们具…

PPOJ刷题-3

PPOJ刷题-3 1265: 最近公共祖先 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&…

4N25光耦合器:简单的应用电路

4N25光耦合器&#xff1a;简单的应用电路 介绍 4N25是一款6引脚光电晶体管耦合器。本文根据其传动特性介绍了 4N25 的非线性和线性应用。 4N25概述 光电耦合器4N25的内部电路结构如图1所示。 图1.4N25内部电路结构 该芯片为双列直插式器件&#xff0c;外引线为6根&#xff0…

三表相连 mapjoin

三表相连 mapjoin要求输出的样式三张表score.csvstudent.csvsubject.csv创建三个类StudentScgetset方法实现类MapJoinDriver用mapjoin不需要reduceMapJoinMapper运行结果要求 输出的样式 三张表 score.csv student.csv subject.csv 创建三个类 StudentSc getset方法 插入gets…

【Java 面试合集】描述下Objec类中常用的方法(未完待续中...)

描述下Objec类中常用的方法 1. 概述 首先我们要知道Object 类是所有的对象的基类&#xff0c;也就是所有的方法都是可以被重写的。 那么到底哪些方法是我们常用的方法呢&#xff1f;&#xff1f;&#xff1f; cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringw…

网络---TCP协议(一)三次握手、四次挥手

目录 一、面向连接 三次握手&#xff1a; 1、双方发送的数据包名称 2.双方连接状态&#xff1a; 问题&#xff1a;为什么tcp需要三次握手才能建立连接&#xff0c;两次不行吗&#xff1f; 3、包序管理(重要&#xff01;&#xff01;&#xff01;) 序号与确认序号 通过抓包…

The last packet sent successfully to the server was 0 milliseconds ago. 解决办法

mybatis-generator-maven-plugin插件The last packet sent successfully to the server was 0 milliseconds agoYou must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to…

【✨十五天搞定电工基础】基本放大电路

本章要求1. 理解放大电路的放大作用和共发射极放大电路的性能特点&#xff1b; 2. 掌握静态工作点的估算方法和放大电路的微变等效电路分析法&#xff1b; 3. 了解放大电路输入、输出电阻和电压放大倍数的计算方法&#xff0c;了解放大电路的频率特性、 互补功率放大…

全国青少年编程等级考试scratch四级真题2022年9月(含题库答题软件账号)

青少年编程等级考试scratch真题答题考试系统请点击电子学会-全国青少年编程等级考试真题Scratch一级&#xff08;2019年3月&#xff09;在线答题_程序猿下山的博客-CSDN博客_小航答题助手1、运行下列程序&#xff0c;说法正确的是&#xff1f;&#xff08; &#xff09;A.列表…

计算机组成原理第七章笔记记录

仅仅作为笔记记录,B站视频链接&#xff0c;若有错误请指出&#xff0c;谢谢 基本概念 演变过程 I/O系统基本组成 I/O软件 包括驱动程序、用户程序、管理程序、升级补丁等 下面的两种方式是用来实现CPU和I/O设备的信息交换的 I/O指令 CPU指令的一部分,由操作码,命令码,设备…

【电商】订单系统--售后的简易流程与系统关系

用户进行了订单签收并不意味着终结&#xff0c;这只是一个新的开始&#xff0c;因为商品送达后可能会由于运输过程包装或商品有破损&#xff0c;商品本质量并非商品详情中所描述的那样等各种原因使用户进行退货或换货&#xff1b;还有一种场景是用户签收后发现有的商品漏发、少…

网络通讯的理解

tcp/ip 协议族ip在真实环境中&#xff0c;会把主机号再分成一个子网号和一个主机号。这样的主机号才是最终容纳的主机数量。所以需要使用子网掩码&#xff08;32位&#xff09;来分子网号和主机号。其中值为1的比特是网络号和子网号&#xff0c;值为0的是比特是主机号。可以在w…

chatGPT 官网使用详细教程 (亲测可行)

文章目录1. chatGPT 介绍2. 进入官网3. 开始使用1. chatGPT 介绍 chatGPT 是一款由 OpenAI 开发的聊天机器人模型&#xff0c;它能够模拟人类的语言行为&#xff0c;与用户进行自然的交互。它的名称来源于它所使用的技术—— GPT-3架构&#xff0c;即生成式语言模型的第3代。 …

软件测试】测试时间不够了,我很慌?项目马上发布了......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 常见的几种情况&…

Java开发学习(四十六)----MyBatisPlus新增语句之id生成策略控制及其简化配置

在前面有一篇博客&#xff1a;Java开发学习(四十一)----MyBatisPlus标准数据层&#xff08;增删查改分页&#xff09;开发&#xff0c;我们在新增的时候留了一个问题&#xff0c;就是新增成功后&#xff0c;主键ID是一个很长串的内容。 我们更想要的是按照数据库表字段进行自增…