c++题目_爆肝3题

news2024/7/27 15:50:00

P1089 [NOIP2004 提高组] 津津的储蓄计划

题目描述

津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300300 元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 20%20% 还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100100 元或恰好 100100 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如 1111月初津津手中还有 8383 元,妈妈给了津津 300300 元。津津预计1111月的花销是 180180 元,那么她就会在妈妈那里存 200200 元,自己留下 183183 元。到了 1111 月月末,津津手中会剩下 33 元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据 20042004 年 11 月到 1212 月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到 20042004 年年末,妈妈将津津平常存的钱加上 20%20% 还给津津之后,津津手中会有多少钱。

输入格式

1212 行数据,每行包含一个小于 350350 的非负整数,分别表示 11 月到 1212 月津津的预算。

输出格式

一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出 −𝑋−X,𝑋X 表示出现这种情况的第一个月;否则输出到 20042004 年年末津津手中会有多少钱。

注意,洛谷不需要进行文件输入输出,而是标准输入输出。

输入输出样例

输入 #1复制

290
230
280
200
300
170
340
50 
90 
80 
200
60 

输出 #1复制

-7 

输入 #2复制

290 
230 
280 
200 
300 
170 
330 
50 
90 
80 
200 
60 

主要思路是对12个月份的支出进行统计,并计算出一个年度的总支出。在每个月份,你从标准的300个小时开始,然后减去这个月的支出。如果这个月的支出导致剩余的小时数为负数,程序会输出负数的月份,并结束程序。最后,程序会输出年度的总支出,考虑到1.2的兑换率。

#include <iostream>
using namespace std;

const int m = 300;

int main() {
    int h = 0, s = 0;       // 定义变量h和s,分别表示小时和总金额
    int a;                  // 定义变量a,用于存储输入的金额
    for (int i = 1; i < 13; i++) {
        cin >> a;           // 输入金额
        h += m;             // 每次循环累加300小时到h
        if (h < a) {
            cout << -i;     // 如果h小于a,则输出负的i,并结束程序
            return 0;
        }
        int left = h - a;   // 计算剩余的金额
        h = left % 100;     // 将剩余的金额转换为小时
        s += left - h;      // 累加剩余的金额到s
    }
    cout << s * 1.2 + h;    // 输出总金额,使用1.2作为兑换率
    return 0;
}

P1093 [NOIP2007 普及组] 奖学金

题目背景

NOIP2007 普及组 T1

题目描述

某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前 55 名学生发奖学金。期末,每个学生都有 33 门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。

任务:先根据输入的 33 门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。

注意,在前 55 名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是:

7 279  
5 279

这两行数据的含义是:总分最高的两个同学的学号依次是 77 号、55 号。这两名同学的总分都是 279279 (总分等于输入的语文、数学、英语三科成绩之和) ,但学号为 77 的学生语文成绩更高一些。

如果你的前两名的输出数据是:

5 279  
7 279

则按输出错误处理,不能得分。

输入格式

共 𝑛+1n+1 行。

第 11 行为一个正整数 𝑛≤300n≤300,表示该校参加评选的学生人数。

第 22 到 𝑛+1n+1 行,每行有 33 个用空格隔开的数字,每个数字都在 00 到 100100 之间。第 𝑗j 行的 33 个数字依次表示学号为 𝑗−1j−1 的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为 1∼𝑛1∼n(恰好是输入数据的行号减 11)。

保证所给的数据都是正确的,不必检验。

输出格式

共 55 行,每行是两个用空格隔开的正整数,依次表示前 55 名学生的学号和总分。

输入输出样例

输入 #1复制

6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98

输出 #1复制

6 265
4 264
3 258
2 244
1 237

输入 #2复制

8
80 89 89
88 98 78
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98

输出 #2复制

8 265
2 264
6 264
1 258
5 258

根据输入的学生成绩,先计算总分,然后按照规则进行排序,最后输出前五名学生的学号和总分。

在这段代码中,你首先读取一个整数n,表示学生的人数。接下来的n行中,每行包含三个用空格隔开的数字,表示学生的语文、数学和英语成绩。

然后,程序根据总分和规则进行排序。排序规则是先按照总分从高到低排序,如果两个学生的总分相同,再按照语文成绩从高到低排序,如果总分和语文成绩也相同,那么学号小的学生排在前面。

最后,程序输出前五名学生的学号和总分。

#include<bits/stdc++.h>
using namespace std;
struct stu{//学生信息
	int Id;
	int yw;
	int sx;
	int yy;
	int sum;
};stu a[301];
bool cmp(stu a,stu b){
	if(a.sum>b.sum)return true;
	else if(a.sum==b.sum && a.yw>b.yw)
		return true;
	else if(a.sum==b.sum && a.yw==b.yw && a.Id<b.Id) 
		return true;
	else
		return false;
}
int main(){
	int n,i;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		scanf("%d%d%d",&a[i].yw,&a[i].sx,&a[i].yy);
		a[i].sum=a[i].yw+a[i].sx+a[i].yy;
		a[i].Id=i;
	}
	sort(a+1,a+n+1,cmp);
	for(i=1;i<=5;i++)printf("%d %d\n",a[i].Id,a[i].sum);
	return 0;
}

P1068 [NOIP2009 普及组] 分数线划定

题目描述

世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的 150%150% 划定,即如果计划录取 𝑚m 名志愿者,则面试分数线为排名第 𝑚×150%m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。

现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

输入格式

第一行,两个整数 𝑛,𝑚(5≤𝑛≤5000,3≤𝑚≤𝑛)n,m(5≤n≤5000,3≤m≤n),中间用一个空格隔开,其中 𝑛n 表示报名参加笔试的选手总数,𝑚m 表示计划录取的志愿者人数。输入数据保证 𝑚×150%m×150% 向下取整后小于等于 𝑛n。

第二行到第 𝑛+1n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号 𝑘(1000≤𝑘≤9999)k(1000≤k≤9999)和该选手的笔试成绩 𝑠(1≤𝑠≤100)s(1≤s≤100)。数据保证选手的报名号各不相同。

输出格式

第一行,有 22 个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。

从第二行开始,每行包含 22 个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。

输入输出样例

输入 #1复制

6 3 
1000 90 
3239 88 
2390 95 
7231 84 
1005 95 
1001 88

输出 #1复制

88 5 
1005 95 
2390 95 
1000 90 
1001 88 
3239 88 

说明/提示

【样例说明】

𝑚×150%=3×150%=4.5m×150%=3×150%=4.5,向下取整后为 44。保证 44 个人进入面试的分数线为 8888,但因为 8888 有重分,所以所有成绩大于等于 8888 的选手都可以进入面试,故最终有 55 个人进入面试。

NOIP 2009 普及组 第二题

代码首先定义了一个结构体node,包含了学号和笔试成绩两个成员变量。然后定义了一个cmp函数用来进行排序,按照笔试成绩从高到低排序,如果成绩相同,则按照学号从小到大排序。

在主函数main中,首先读取了输入的选手总数n和计划录取的志愿者人数f。然后通过循环将每个选手的学号和笔试成绩存入结构体数组q中。接着对数组进行排序,排序规则按照cmp函数进行。然后计算出面试分数线的位置i,并统计笔试成绩大于等于面试分数线的选手数目js。最后输出面试分数线和进入面试的选手的人数,以及他们的学号和笔试成绩。

这段代码的实现逻辑基本符合题目要求,但是在对选手进行笔试成绩大于等于面试分数线的筛选时,使用了一个固定的位置j=i,这样会导致一些情况下统计错误。正确的做法应该是遍历数组q来统计笔试成绩大于等于面试分数线的选手数目。

#include<bits/stdc++.h>
using namespace std;
struct node{
    int num,s;
}q[1000000];
bool cmp(node a,node b){
    if(a.s==b.s)return a.num<b.num;
    return a.s>b.s;
}

int main(){
    int n,j,js=0;
    float f;
    cin>>n>>f;
    for(int i=1;i<=n;i++)
      cin>>q[i].num>>q[i].s;
    sort(q+1,q+1+n,cmp);
    int i=int(f*1.5);
    j=i;js=0;
    for(int k=1;k<=n;k++)
      if(q[k].s>=q[i].s)js++;
    cout<<q[i].s<<" "<<js<<endl;
    for(i=1;i<=n;i++){
        if(q[i].s>=q[j].s)
            cout<<q[i].num<<" "<<q[i].s<<endl;
    }
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CEF框架:各种各样的Handle(四)——CefURLRequest,发起HTTP请求与处理

文章目录 CEF的HTTP请求类CefResourceRequestCefURLRequest CefURLRequest的使用cef_message_routehandled&#xff1a;urlrequet的处理类OnQuery CefURLRequestClient CEF的HTTP请求类 在CEF框架中&#xff08;Chromium Embedded Framework&#xff09;&#xff0c;CefURLReq…

ChaosMeta V0.7.0 版本发布 进入CNCF混沌工程全景图

混沌工程 ChaosMeta 的全新版本 V0.7.0 现已正式发布&#xff01;该版本包含了许多新特性和增强功能&#xff0c;在编排界面提供了多集群管理&#xff0c;在代码层面支持多命令下发通道的选择。另外由蚂蚁集团发起的ChaosMeta于北京时间2024年1月10日正式进入CNCF混沌工程全景图…

攻击者常用的五个数据中转网站

近来&#xff0c;各种数据中转网站被攻击者广泛用于传播代码片段、配置文件和各种文本数据&#xff0c;尽管这为研究人员提供了观察的窗口&#xff0c;但敏感信息被上传到互联网上时&#xff0c;也会对受害者构成巨大威胁。 这些网站通常并不需要注册或者身份验证&#xff0c;…

AI大模型日报#0527:豆包大模型披露评测成绩、天工AI日活超100万、AI初创集体跳槽OpenAI

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE 4.0&#xff09;、“零一万物”&#xff08;Yi-Large&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xf…

9.游戏中真正的无敌

上一个内容&#xff1a;8.什么是HOOK 在 7.封装读写游戏数据的功能2 中写是无限循环给生命值的内存地址赋值达到无敌的效果&#xff0c;这个方式有很大的弊端比如如果怪物的攻击力很高我们碰一下我们就得死这样的情况无限赋值也没用了&#xff0c;所以给内存写值的方式实现的无…

HTTP 与 HTTPS 对比

HTTP&#xff1a;HTTPS&#xff1a;超文本传输协议 超文本传输安全协议加入SSL/TLS协议&#xff0c;依靠证书来验证服务器的身份需要到CA申请证书&#xff0c;需要一定费用TCP 协议 80 端口 TCP 协议 443 端口更耗费服务器资源

深度学习环境安装教程-anaconda-python-pytorch

首先是anaconda的安装&#xff0c;可以从下面地址下载安装包 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 尽量选择最新的日期的anaconda进行安装&#xff0c;我这里是windows电脑&#xff0c;因此选择了windos-x86_64.exe&#xf…

idea中git拉取失败

之前clone好好的&#xff0c;今天突然就拉取不下来了。很多时候是用户凭证的信息没更新的问题。由于window对同一个地址都存储了会话。如果是新的会话&#xff0c;必须要更新window下的凭证。 然后根据你的仓库找到你对应的账户&#xff0c;更新信息即可。

Windows10映射网络驱动器之后不显示映射盘

目录 背景解决步骤1、按 Windows R 打开运行2、打开注册表编辑器3、 System上新建-- DWORD(32bit)4、对新建的文件重命名5、将EnableLinkedConnections的数值改为16、退出注册表编辑器&#xff0c;重启系统。 知识扩展断开连接备份注册表 背景 目前有一台NAS服务器,和一台lin…

知了汇智赵老师:揭秘OpenHarmony鸿蒙设备开发新路径

在数字化浪潮风起云涌的今天&#xff0c;鸿蒙系统作为华为自主研发的分布式操作系统&#xff0c;正以其强大的生态构建能力和广泛的应用前景&#xff0c;引领着物联网领域的新潮流。在这个关键时刻&#xff0c;知了汇智作为产教融合平台型服务机构&#xff0c;勇担时代使命&…

网络通讯聊天工具的实现

学习网络与通信&#xff0c;实现聊天界面能够通过服务器进行私聊和群聊的功能。 1.服务器&#xff1a;ServeSocket 客户端先发送消息给服务器&#xff0c;服务器接受消息后再发送给客户端。 利用服务器随时监听。等待客户端的请求&#xff0c;一旦有请求便生产一个socket套接…

openEuler系统通过shell脚本安装openGauss 5.0.0企业版

上次提到的开机自启动的配置&#xff0c;获得了LD的称赞&#xff0c;然而LD的要求&#xff0c;都是“既得陇复望蜀”的&#xff0c;他又期望我们能实现openGauss安装的“自动化”&#xff0c;于是尝试了下用shell脚本部署&#xff0c;附件中的脚本实测有效&#xff0c;openEule…

aws lakeformation跨账号共享数据的两种方式和相关配置

lakeformation授权方式分为 基于tag的授权基于命名资源的授权 先决条件 跨账号共享数据的先决条件&#xff08;命名资源和tag授权都需要&#xff09; 分两种情况 如果账户中没有glue data catalog资源策略&#xff0c;则LakeFormation跨账户授予将照常进行 如果存在glue d…

使用高性能NIO框架netty实现IM集群对聊方案

文章目录 前言技术积累什么是nettynetty如何实现IM如何实现IM集群 实战演示基础配置netty搭建IM集群redis发布订阅 实战测试 前言 在前面的博文中我们分享了原生websoket集群搭建&#xff0c;也用redis 发布订阅实现了集群消息正常有序分发。但是有不少同学希望风向一期netty实…

基于生命周期评价法的农田温室气体排放估算;农田CH4和N2O排放模拟;农田碳库模型和土壤呼吸等

目录 专题一 温室气体排放模拟研究 专题二 农田CH4和N2O排放模拟 专题三 农田碳库模型和土壤呼吸 专题四 基于生命周期评价法的农田温室气体排放估算 专题五-六 基于过程模型的温室气体排放模拟 专题七 案例模拟与疑难解答 更多应用 农业是甲烷&#xff08;CH4&#xff…

List基本使用(C++)

目录 1.list的介绍 2.list的使用 list的构造 list的size() 和 max_size() list遍历操作 list元素修改操作 assign()函数 push_front(),push_back 头插&#xff0c;尾插 pop_front() pop_back 头删尾删 insert()函数 swap()函数 resize()函数 clear()函数 list类数…

yolov10 瑞芯微 rknn 部署 C++代码

yolov10 目标检测rknn的C部署来了。 特别说明&#xff1a;如有侵权告知删除&#xff0c;谢谢。 直接上代码和模型&#xff0c;欢迎参考交流 【完整代码和模型】 1、rknn模型准备 pytorch转onnx&#xff0c;onnx再转rknn模型这一步就不再赘述&#xff0c;请参考上一篇 【yolov1…

TPM之VMK密封

本篇文章主要介绍基于TPM的Bitlocker全盘加密时,VMK密钥的密封(Seal)流程,至于TPM、Bitlocker、密钥保护器、VMK密钥等这些东西是什么,这里不做解释,需要自己脑补一下(╮(╯▽╰)╭)。 首先看看一张结构图(来自网络),了解一下TPM加密的基本框架与流程: 同样,基于…

关于读书,你可能没想到的陷阱、问题和思考

最近经常看到有人问&#xff1a;AI 已经这么发达了&#xff0c;如果以后的 AI 会更智能&#xff0c;那我们还有必要读书吗&#xff1f; 我认为&#xff1a;还是十分有必要的。 为什么呢&#xff1f;因为读书其实不仅仅是为了获取知识&#xff0c;它更重要的一个作用&#xff0c…

数据结构-堆排序问题

需要在数组里面进行排序&#xff0c;我们可以采取堆排序对其解决问题 版本1&#xff1a; 创建一个数组等大的堆&#xff0c;把数组里面的数值输入到堆里面进行堆排序&#xff0c;但是这样的弊端就是&#xff0c;不是顺序排序 版本2&#xff1a; 每次我们取堆顶然后打印&#xf…