当前位置: 首页 > news >正文

【数据结构入门训练DAY-24】美国大选

文章目录

  • 前言
  • 一、题目
  • 二、解题思路
  • 结语

前言

本次训练内容

  1. 训练STL中sort的操作方法。
  2. 训练解题思维。

一、题目

        美国大选是按各州的投票结果来确定最终的结果的,如果得到超过一半的州的支   持就可以当选,而每个州的投票结果又是由该州选民投票产生的,如果某个州超过一半的选民支持希拉里,则她将赢得该州的支持。现在给出每个州的选民人数,请问希拉里至少需要赢得多少选民的支持才能当选?

输入格式

多组输入数据
每组数据的第一行包括一个整数N(1<=N<=101),表示美国的州数,N=0表示输入   
结束
接下来一行包括N个正整数,分别表示每个州的选民数,每个州的选民数不超过
100

输出格式

对于每组数据输出一行,表示希拉里至少需要赢得支持的选民数

样例输入

3 
5 7 5 
0

样例输出

6

二、解题思路

        今天的题目就是一个对数组的排序题,题中强调问至少需要多少,我们就给它的选民数从低到高做个排序,然后州数要超过一半且选民数要过一半,所以就N/2+1和Array[i]/2+1;最后再输出值即可。

#include<bits/stdc++.h>
using namespace std;
const int MAX = 1e5+1;
int main() {int N;int Array[MAX];while (cin>>N) {//循环输入州数int sum=0;if (N==0) {//如果州数为0,直接结束return 0;}for(int i=0;i<N;i++) {cin>>Array[i];//选民数}sort(Array,Array+N);//对其升序排序for(int i=0;i<N/2+1;i++) {//累加前一半州数里的选票值,找到至少需要的数sum+=Array[i]/2+1;}cout<<sum<<endl;}
}

        注意,sum=0要写在while里,因为要不断更新赋值。

总结

        今天的题目不算难,它就是一个排序和累加的逻辑。美国总统大选也是今年的一个实事热点,当时看新闻的时候就关注过那俩政党的选票,今天看到这题感觉挺有意思的,就想试试乐呵一下,体验一下美国政党的“军师”(嘿嘿嘿嘿)。然后一开始sum=0写在while外了,这里要扣大分,没考虑仔细,下次需要注意;然后就是特判没注意,导致一个案例没过,后续想到了补上才过的;所以考虑事情周到问题还是要不断的提升练习的。

相关文章:

  • MCP 安全困境与Agent安全框架的应对之道
  • 深度理解linux系统—— 了解操作系统
  • Maven的概念与初识Maven
  • Android JIT( ART即时编译器),Just In Time Compiler,即时编译技术
  • 【大模型】Coze AI 智能体工作流从配置到使用实战详解
  • Simulink 数据存储机制:Base Workspace、Model Workspace 与 Data Dictionary 的核心区别
  • Python + Playwright:如何在Docker 容器运行测试?
  • docker容器运维工具——ctop
  • 基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
  • node入门和npm
  • 当自动驾驶遇上“安全驾校”:NVIDIA如何用技术给无人驾驶赋能?
  • java智慧城管综合管理系统源码,前端框架:vue+element;后端框架:springboot;移动端:uniapp开发,技术前沿,可扩展性强
  • 图像处理——边缘检测
  • RASP技术在DevOps中的安全应用
  • 冯·诺依曼和哈佛架构​​​​两种架构的总线组成及核心特点
  • Flink反压问题解析
  • 1--Python基础课程实验指导书
  • linux blueZ 第四篇:BLE GATT 编程与自动化——Python 与 C/C++ 实战
  • CSS3布局方式介绍
  • 性能提升手段--池化技术
  • 教育强国建设基础教育综合改革试点来了!改什么?怎么改?
  • 从地下金库到地上IP,看海昏汉文化“最美变装”
  • 伊朗外长: 美伊谈判进展良好,讨论了很多技术细节
  • 特朗普将举行集会庆祝重返白宫执政百日,被指时机不当
  • 持续更新丨伊朗港口爆炸事件已致406人受伤
  • 永辉超市一季度净利降近八成,未来12个月至18个月是改革成果集中释放期