A. C05.L08.贪心算法入门

devtools/2025/2/23 0:16:15/
这套题包含了历年真题,十分重要!!!!要考试的同学可以参考一下!!
此套题限时3小时。

A. C05.L08.算法>贪心算法入门(一).课堂练习1.书架(SSOI2017五年级t6)

  • 传统题1000ms256MiB

题目描述

为了方便同学们查阅资料,程序设计兴趣小组的辅导老师打算将积攒了很多年的 n 本书放到上课教室的书架上去。

教室的书架是一层一层叠起来的,每一层最多可以放 m 本书。每一层的高度由放在这层中最高的那本书决定的,如果不放书,则认为这层的高度为 0 。为了使每个同学能方便地拿到想要的书,书架的总高度应尽可能低。请编程计算将这 n 本书放在书架上后书架的最小总高度,计算的过程中不考虑书的厚度与书架本身材料的厚度。

输入格式

共 n+1 行。

第 1 行 2 个整数 n 和 m ( 1 ≤ m ≤ n ≤ 100000 ) 。

接下来 n 行, 每行 1 个正整数, 分别表示每本书的高度( 每本书的高度不超过 100 )。

输出格式

一个整数,表示将 n 本书放入书架后书架的最小总高度。

样例

输入数据 1

3 2
20 10 30

Copy

输出数据 1

40

Copy

样例解释

将高度是 30 和 20 的两本书放在一层,则这层的高度为 30 ,将高度是 10 的那本书放在另外一层,则这层的高度为 10 ,则书架的总高度为 40 ,满足最小。

代码

#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100005],s;
int main()
{cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);for(int i=n;i>=0;i-=m){s=s+a[i];}cout<<s;return 0;   
}

B. C05.L08.算法>贪心算法入门(一).课堂练习2礼物

  • 传统题1000ms256MiB

题目描述

国庆马上要到了。小明喜欢的礼物有 n 种分别是:公仔、电子手表、漫画书等。

每种礼物有一件,每种礼物价钱都不一样。小明手头上有 m 元。

小明最多可以买多少件礼物?

输入格式

第一行,两个整数: n , m ( 1 <= n<=100 , 1 <= m <= 100000 )。

第二行, n 个空格分开的整数( 每个整数 <= 1000 ),代表每种礼物的价钱。

输出格式

一个整数,小明能买多少件礼物。

样例

输入数据 1

3 100
40 70 50

Copy

输出数据 1

2

代码

#include<bits/stdc++.h>
using namespace std;
int main() {int n,m;cin>>n>>m;vector<int>a(n);for(int i=0;i<n;i++) {cin>>a[i];}sort(a.begin(),a.end());int o=0;int t=0;for(int i=0;i<n;i++) {if(t+a[i]<=m) {t+=a[i];o++;} else {break;}}cout<<o;return 0;
}

C. C05.L08.算法>贪心算法入门(一).课堂练习3.数字圈(DLOI2019t4)

  • 传统题1000ms256MiB

题目描述

当我们写数字时会发现有些数字有封闭区域,有的数字没有封闭区域。

数字 0 有一个封闭区域,数字 1、2、 3 都没有封闭区域,数字 4 有一个封闭区域,数字 5 没有封闭区域,数字 6 有一个封闭区域,数字 7 没有 封闭区域,数字 8 有两个封闭区域,数字 9 有一个封闭区域。

现在你要构造一个最小的非负整数,使得它的各位数字的封闭区域的数量加起来的总和恰好等于 K。

输入格式

一个整数 K ( 1 <= K <= 2500 )

输出格式

满足题意的最小的非负整数。

样例

输入数据 1

40

Copy

输出数据 1

88888888888888888888

Copy

输入数据 2

1

Copy

输出数据 2

0

Copy

输入数据 3

2

Copy

输出数据 3

8

代码

#include<bits/stdc++.h>
using namespace std;
int k;
int main()
{cin>>k;if(k==1){cout<<0;return 0;}if(k%2==1){cout<<"4";for(int i=1;i<=k/2;i++){cout<<"8";}}else{for(int i=1;i<=k/2;i++){cout<<"8";}}return 0;
}

D. C05.L08.算法>贪心算法入门(一).课堂练习4.危险的实验(NHOI2015初中)

  • 传统题1000ms256MiB

题目描述

小明最近在上化学课,他需要使用到 n 种化学物质来进行他的实验。在做实验的时候,他需要将所有化学物质放在桌面上,按次序排成一条直线。

然而每一种化学物质都是危险品,对于第 i 个化学物质,如果有另外一个化学物质距离它的距离小于 a_iai​,那么就会发生爆炸。

小明想知道如果要安全的完成他的实验,桌子最短可以多短。

输入格式

第一行一个整数 n ,表示化学物质的个数。

第二行有 n 个整数,第 i 个整数 a_iai​ 表示第 i 个化学物质必须与其他化学物质保持的距离。

数据范围

20% 的数据 , 1 <= n <= 20

50% 的数据 , 1 <= n<= 100000

100% 的数据 , 1 <= n <= 1000000 , 1 <= a_iai​ <= 100000

输出格式

一个整数,表示能够让小明安全完成实验的桌子最小长度。

注意:物品要安原来的次序摆放。

样例

输入数据 1

3
3 1 2

Copy

输出数据 1

5

代码

#include<bits/stdc++.h>
using namespace std;
long long n,a[10000001],o=0;
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<n;i++){o=o+max(a[i],a[i+1]);}cout<<o;return 0;
}

E. C05.L08.算法>贪心算法入门(一).课堂练习5.最大步数(GCOI2019六年级t2)

  • 传统题1000ms256MiB

题目描述

给出了两个非负整数 P 和 Q。您的任务是使得 P 和 Q 相等。在每一步中,您可以执行以 下两项操作之一: 1、将任何质数加到 P 上。 2、从 Q 减去任何质数。 如果不可能使 P 和 Q 相等,则输出 -1 。否则,输出一个非负整数:可以执行的最大步数。

输入格式

数字 0 和 1 不是质数。

输出格式

一行,两个整数 P 和 Q。 0 <= P, Q <= 10^18

样例

输入数据 1

5 9

Copy

输出数据 1

2

Copy

输入数据 2

5 10

Copy

输出数据 2

2

Copy

输入数据 3

5 6

Copy

输出数据 3

-1

代码

#include<bits/stdc++.h>
using namespace std;
long long p,q;
int main()
{cin>>p>>q;if(p>q){cout<<-1;return 0;}if(p-q==0){cout<<0;return 0;}if(p-q==1){cout<<-1;return 0;}cout<<(q-p)/2;return 0;
}

F. C05.L08.算法>贪心算法入门(一).课堂练习6.渡河(GCOI2019六年级t4)

  • 传统题1000ms256MiB

题目描述

总共有 X 人要坐船过河。

一个小船最多可以坐 4 人,一个小船固定收费 32 元。

一个大船最多可以坐 6 人,一个大船固定收费 36 元。

码头有无穷多小船和大船。

问如何坐船,才能使得总费用最小。

输入格式

一个整数 X。

数据范围

60% 的数据, 1 <= X <= 1000

80% 的数据, 1 <= X <= 1000000

100% 的数据, 1 <= X <= 2000000000

输出格式

一个整数,表示最小的总费用。

样例

输入数据 1

4

Copy

输出数据 1

32

Copy

输入数据 2

12

Copy

输出数据 2

72

代码

#include<bits/stdc++.h>
using namespace std;
long long x,s,l;
int main()
{cin>>x;if(x<=4)s=32;else{s+=(x/6)*36;l=x%6;if(l==5){s+=36;}if(l==4||l==3){s+=32;}if(l==2||l==1){s+=28;}}cout<<s;return 0;
}

谢谢欢看!!!!


http://www.ppmy.cn/devtools/161064.html

相关文章

25会计研究生复试面试问题汇总 会计专业知识问题很全! 会计复试全流程攻略 会计考研复试真题汇总

宝子们&#xff0c;会计考研复试快到了&#xff0c;是不是有点慌&#xff1f;别怕&#xff01;今天学姐给你们支招&#xff0c;手把手教你搞定复试面试&#xff0c;直接冲上岸&#xff01;快来看看怎么准备吧&#xff0c;时间紧直接背第三部分的面试题&#xff01; 目录 一、复…

如何在 SpringBoot 项目使用 Redis 的 Pipeline 功能

本文是博主在批量存储聊天中用户状态和登陆信息到 Redis 缓存中时&#xff0c;使用到了 Pipeline 功能&#xff0c;并对此做出了整理。 一、Redis Pipeline 是什么 Redis 的 Pipeline 功能可以显著提升 Redis 操作的性能&#xff0c;性能提升的原因在于可以批量执行命令。当我…

微信小程序——访问服务器媒体文件的实现步骤

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;趣享先生的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&…

【Python爬虫(14)】解锁Selenium:Python爬虫的得力助手

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…

使用 Docker 部署 Flask 应用

使用 Docker 部署 Flask 应用 一、引言 在现代软件开发中,应用的部署和环境管理是至关重要的环节。传统的部署方式常常会遇到 “在我机器上能运行,在你机器上不行” 的问题,而 Docker 的出现很好地解决了这个痛点。Docker 是一个用于开发、部署和运行应用程序的开放平台,…

【操作系统】操作系统概述

操作系统概述 1.1 操作系统的概念1.1.1 操作系统定义——什么是OS&#xff1f;1.1.2 操作系统作用——OS有什么用&#xff1f;1.1.3 操作系统地位——计算机系统中&#xff0c;OS处于什么地位&#xff1f;1.1.4 为什么学操作系统&#xff1f; 1.2 操作系统的历史1.2.1 操作系统…

网络安全 linux学习计划 linux网络安全精要

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 2.使用命令行 文件系统层次标准&#xff08;FHS&#xff09;是一个文件和目录在Unix和Linux操作系统上面应该如何存储的定义。 /bin 重要的二进制可执行程序/bo…

K8s:kubernetes.io~csi 目录介绍

目录标题 查看POD对应的目录**1. 进入 CSI 相关目录****2. PVC 相关目录操作****3. 挂载点相关操作****4. CSI PVC 的使用流程****5. 总结** 在 Kubernetes&#xff08;K8s&#xff09;中&#xff0c;容器存储接口&#xff08;CSI&#xff09; 是一种标准&#xff0c;用于将存储…