枚举及优化(一)

第1题     百钱买百鸡 查看测评数据信息

百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用 100 文钱买 100只鸡,公鸡、母鸡、小鸡各买多少只?本程序要求解的问题是:给定一个正整数 n,用 n 文钱买 n 只鸡,问公鸡、母鸡、小鸡各买多少只?

输入格式

输入一个正整数 n。(1≤n≤200)

输出格式

如果有解,依次输出公鸡、母鸡、小鸡的个数。

如果无解,输出"No Answer."。

输入/输出例子1

输入:

100

输出:

0 25 75

4 18 78

8 11 81

12 4 84

#include<bits/stdc++.h>
using namespace std;
int main(){   int n;cin>>n;for(int i=0;i<=n;i++){for(int j=n;j>=0;j--){if(7*i+4*j==n&&(n-i-j)%3==0){cout<<i<<" "<<j<<" "<<n-i-j<<" "<<endl;}}}return 0;
}

第2题     面积 查看测评数据信息

为了准备运动会颁奖典礼,学校想购买一块长方形的红地毯,已知学校给的的钱刚好够买面积为N的红地毯。由于地毯的边上要用长度为1的花边装饰,当然是边长越短越好(长度是整数)。为了节省花边,老师要求晨晨通过编计算机程序来计算边长最短是多少?

输入格式

一行:1个整数N,表示矩形的面积。N的范围为[1, 1000000000]。 

输出格式

一行:一个整数表示边长。 

输入/输出例子1

输入:

15 

输出:

16 

样例解释

(红地毯的边长分别为3和5) 

#include<bits/stdc++.h>
using namespace std;
long long n,a,minn=1000000005;
int main(){cin>>n;for(int i=1;i<=sqrt(n);i++){if(n%i==0){a=((i+n/i)*2);if(a<minn) minn=a;}}cout<<minn;return 0;
}

第3题     双倍对 查看测评数据信息

如果两个数a,b,只要a=2*b或者b=2*a成立,那么就说这两个数是“双倍对”。例如:a=1,b=2,那么a和b这两个数是一对双倍对。现在给出一组数,请计算一下里面有多少对是“双倍对”。由于数据量比较大,请你用程序来实现自动计算吧。 

输入格式

输入数据共有两行 

第一行有一个整数N,表示这组数的个数。 

第二行有N个正整数。 

100%的数据 1≤N ≤1000 , 1≤ai≤1000000 。 

输出格式

输出N个数中有多少对是“双倍对”。

输入/输出例子1

输入:

5 2 4 2 10 4 

输出:

样例解释

其中:5和 10有1对, 2 和4有4对 ,共有5对双倍对。 

#include<bits/stdc++.h>
using namespace std;
int n,a[10005],s=0;
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a[i]==a[j]*2||a[j]==a[i]*2)s++;}}cout<<s/2;return 0;
}

第4题     牛奶桶 查看测评数据信息

农民约翰收到了一个需要M(1<=M<=1,000)单位的牛奶的订单,他需要马上满足。不幸地,他的牛奶机坏了,他只剩三个容量分别为X,Y,M的牛奶桶(1 <= X < Y < M)。它们一开始都是空的。他能用这三个桶进行任意次以下的两种操作: 

-他能填满X桶,然后倒到M桶里,只要这次操作不会使M桶内的牛奶溢出 

-他能填满Y桶,然后倒到M桶里,只要这次操作不会使M桶内的牛奶溢出 

虽然约翰明白他不能完全把M桶填满,请帮他求出他能获得的M桶中牛奶的量的最大值。

输入格式

输入包含三个用空格分隔的整数X,Y,M 

输出格式

输出M桶中牛奶量的最大值 

输入/输出例子1

输入:

17 25 77 

输出:

76 

样例解释

约翰使用三次17大小的桶和一次25大小的桶,加起来得到最大值76 

#include<bits/stdc++.h>
using namespace std;
long long a,b,k,s,maxx;
int main(){cin>>a>>b>>k;for(long long i=0;i<=k/a;i++){for(long long j=0;j<=k/b;j++){if(i*a+j*b<=k) {s=i*a+j*b;maxx=max(s,maxx);}else if(i*a+j*b>k)continue;}}cout<<maxx;return 0;
}

第5题     运动会 查看测评数据信息

佛山每年为全市中小学生兴办一次运动大会。为促进各校同学之间的交流,采用特别的分队方式:每一个学校的同学,必须被均匀分散到各队,使得每一队中该校的人数都相同。为增加比赛的竞争性,希望分成越多队越好。你的任务是根据各校的人数,决定最多可分成的队数。

输入格式

输入文件第一行为一个正整数N,代表学校的个数。接下来有N行,每行为一个正整数,分别代表这N个学校的人数。

输出格式

输出最多可分成的队数。

输入/输出例子1

输入:

3

12

16

20

输出:

4

样例解释

输入样例中有3个学校,人数分别为12、16、20,因为12=4×3,16=4×4,20=4×5,所以最多可以分成4个队,3个学校在每个队中的人数分别为3人、4人、5人。

数据说明:

学校数不超过500,每个学校人数最多为10000。

#include<bits/stdc++.h>
using namespace std;
int n,a,s,x;
int main(){cin>>n;cin>>a;s=a;for(int i=2;i<=n;i++){cin>>a;x=__gcd(s,a);s=a;} cout<<x;return 0;
}

第6题     子数整除 查看测评数据信息

对于一个五位数a1a2a3a4a5,可将其拆分为三个子数: 

sub1=a1a2a3 

sub2=a2a3a4 

sub3=a3a4a5 

例如,五位数20207可以拆分成 

sub1=202 

sub2=020(=20) 

sub3=207 

现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1,sub2,sub3都可被K整除。 

输入格式

输入仅一行,为正整数K(0<=1000)。 

输出格式

输出的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出No。 

输入/输出例子1

输入:

15

输出:

22555

25555

28555

30000

#include<bits/stdc++.h>
using namespace std;
int n,s;
int main(){cin>>n;for(int i=1;i<3;i++){for(int j=0;j<10;j++){for(int k=0;k<10;k++){for(int q=0;q<10;q++){for(int w=0;w<10;w++){int x=i*100+j*10+k,y=j*100+k*10+q,z=k*100+q*10+w;if(x%n==0&&y%n==0&&z%n==0){s=1;cout<<i<<j<<k<<q<<w<<'\n';}}}}}}if(300%n==0){s=1;cout<<30000<<'\n';}if(s==0)cout<<"No"<<'\n';return 0;
}
  • 附加题

第1题     牛式 查看测评数据信息

下面是一个乘法竖式,如果用我们给定的那几个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式。 

微信截图_20240718011052.png

数字只能取代*,当然第一位不能为0 
写一个程序找出所有的牛式 

 

输入格式

Line 1: 数字的个数。 
Line 2: N
个用空格分开的数字(每个数字都{1,2,3,4,5,6,7,8,9}  

 

输出格式

共一行,一个数字。表示牛式的总数。

输入/输出例子1

输入:

5

2 3 4 6 8 

输出:

1

样例解释

下面是样例的那个牛式。

      2 2 2

    x   2 2

     ------

      4 4 4

    4 4 4

  ---------

    4 8 8 4

#include<bits/stdc++.h>
using namespace std;
int a[100005],s=0,n;
int f(int x){int num;if(x/100==0)num=2;else if(x/1000==0)num=3;else if(x/10000==0)num=4;for(int i=0;i<num;i++){int flag=0;for(int j=0;j<n;j++){if(x%10==a[j]) {flag=1;break;}}x/=10;if(flag==0){return 0;}}return 1;
}
int main(){cin>>n;for(int i=0;i<n;i++){cin>>a[i];}for(int a=111;a<999;a++){for(int b=11;b<99;b++) {if(!f(a)||!f(b)||a*b>9999||a*(b/10)>999||a*(b%10)>999){continue;}else{if(f(a*b)&&f(a*(b/10))&&f(a*(b%10))){s++;                    }}}}cout<<s;return 0;
}

第2题     火柴棒等式 查看测评数据信息

给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示: 

image.png

1. 加号与等号各自需要两根火柴棍 

2. 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) 

3. n根火柴棍必须全部用上 

输入格式

一个整数n(n<=24)

输出格式

表示能拼成的不同等式的数目。

输入/输出例子1

输入:

14

输出:

2

输入/输出例子2

输入:

18

输出:

9

样例解释

样例1:2个等式为0+1=1和1+0=1。

样例2:

9个等式为:

0+4=4

0+11=11

1+10=11

2+2=4

2+7=9

4+0=4

7+2=9

10+1=11

11+0=11

#include<bits/stdc++.h>
using namespace std;
int a[2001]={6},n,s=0,c[10]={6,2,5,5,4,5,6,3,7,6};
int main(){cin>>n;for(int i=1;i<2001;i++){int j=i;while(j>=1){a[i]+=c[j%10];j/=10;}}for(int i=0;i<1000;i++)for(int j=0;j<1000;j++)if(a[i]+a[j]+a[i+j]+4==n)s++;cout<<s;return 0;
}

这些题解仅供参考,有什么建议提在评论区,感谢知道(#^.^#)

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

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

相关文章

自注意力机制

当输入一系列向量&#xff0c;想要考虑其中一个向量与其他向量之间的关系&#xff0c;决定这个向量最后的输出 任意两个向量之间的关系计算 计算其他向量对a1的关联性 多头注意力机制 图像也可以看成一系列的向量&#xff0c;交给自注意力机制处理&#xff0c;CNN是特殊的自注意…

RabbitMQ的死信队列

1.死信的概念 死信简单理解就是因为种种原因&#xff0c;无法被消费的消息. 有死信自然就有死信队列&#xff0c;消息再一个队列中编程死信之后&#xff0c;它能被重新发送到另一个交换器中&#xff0c;这个交换器就是DLX&#xff0c;绑定DLX的队列&#xff0c;就被称为死信队…

十六 MyBatis使用PageHelper

十六、MyBatis使用PageHelper 16.1 limit分页 mysql的limit后面两个数字&#xff1a; 第一个数字&#xff1a;startIndex&#xff08;起始下标。下标从0开始。&#xff09;第二个数字&#xff1a;pageSize&#xff08;每页显示的记录条数&#xff09; 假设已知页码pageNum&…

SpringBoot框架在共享汽车管理中的应用

3系统分析 3.1可行性分析 通过对本共享汽车管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本共享汽车管理系统采用SSM框架&#xff0c;JAVA作为开发语…

数字化转型助手 快鲸SCRM系统为企业营销赋能

内容概要 在当今这个快速变化的商业环境中&#xff0c;数字化转型已经成为企业生存与发展的关键要素。无论是零售、制造还是服务行业&#xff0c;企业都深刻意识到传统工作模式的局限性&#xff0c;必须借助先进的技术来优化运营和提升客户体验。快鲸SCRM系统就是这样一款数字…

ZooKeeper在kafka集群中有何作用

Zookeeper 存储的 Kafka 信息 &#xff08;1&#xff09;启动 Zookeeper 客户端。 bin/zkCli.sh &#xff08;2&#xff09;通过 ls 命令可以查看 kafka 相关信息。 [zk: localhost:2181(CONNECTED) 2] ls /kafkazk中有一个节点 consumers 这个里面&#xff0c;老版本0.9版…

Linux操作系统:学习进程_对进程概念的深入了解

目录 前言 开篇 一、进程概念 二、进程的描述与管理 1、如何描述与管理 2、Linux中的PCB-task_struct 3、对进程组织的理解 三、进程的属性 1、系统创建进程 2、查看进程 3、进程的标识符 4、退出进程 1>ctrlc 2>kill命令杀死进程 5、用户进程的创建方式…

Embedding 技术在推荐系统中的应用

参考自《深度学习推荐系统》——王喆&#xff0c;用于学习和记录。 介绍 Embedding&#xff0c;中文直译为“嵌入”&#xff0c;常被翻译为“向量化”或者“向量映射”。它的主要作用是将稀疏向量转换成稠密向量&#xff0c;便于上层深度神经网络处理。事实上&#xff0c;Emb…

Kafka面试题

1、kafka消息发送的流程&#xff1f; 在消息发送时涉及到了两个线程&#xff0c;main 线程 和 sender 线程 &#xff0c;在main线程里面创建了一个双端队列&#xff08;RecordAccumulator&#xff09; ,当双端队列里面的信息满足 一定的条件后&#xff0c; sender线程会拉取双端…

RabbitMQ延迟队列(重要)

RabbitMQ延迟队列 1、延迟队列1.1、延迟队列使用场景1.2、延迟队列实现原理 2、使用rabbitmq-delayed-message-exchange 延迟插件2.1、下载2.2、安装2.2.1、解压2.2.2、启用插件2.2.3、查询安装情况 2.4、示例2.4.1、RabbitConfig配置类&#xff08;关键代码&#xff09;2.4.2、…

机器学习—神经网络如何高效实现

深度学习研究人员能够扩展神经网络的原因之一&#xff0c;在过去的十年里建立了非常大的神经网络&#xff0c;是因为神经网络可以向量化&#xff0c;它们可以使用矩阵乘法非常有效的实现&#xff0c;事实证明&#xff0c;并行计算硬件&#xff0c;包括gpus&#xff0c;但也有一…

【数据集】【YOLO】【目标检测】水面船只识别数据集 9798 张,YOLO船只识别算法实战训练教程!

一、数据集介绍 【数据集】水面船只识别数据集 9798 张&#xff0c;目标检测&#xff0c;包含YOLO/VOC格式标注。 数据集中包含1种分类&#xff1a;{0: ship}&#xff0c;代表水面船只。 数据集来自国内外图片网站和视频截图&#xff1b; 可用于无人机船只检测、监控灯塔船…

斜坡函数功能块(支持正常停机和紧急停机切换)

1、CODESYS斜坡函数功能块 CODESYS斜坡函数功能块(ST源代码)_用plc难能写一个斜坡加减速度吗-CSDN博客文章浏览阅读1k次。本文介绍了如何在CODESYS平台上创建斜坡函数功能块(FC),用于PID闭环控制中的给定值平滑处理。通过ST源代码实现,详细步骤包括仿真测试、变量修改、FC…

渗透测试--web基础之windows(二):常用命令详解及病毒编写

声明&#xff1a;学习素材来自b站up【泷羽Sec】&#xff0c;侵删&#xff0c;若阅读过程中有相关方面的不足&#xff0c;还请指正&#xff0c;本文只做相关技术分享,切莫从事违法等相关行为&#xff0c;本人一律不承担一切后果 目录 一、常见端口对应的服务 二、 常见的cmd命…

【含文档】基于ssm+jsp的客户管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: apache tomcat 主要技术: Java,Spring,SpringMvc,mybatis,mysql,vue 2.视频演示地址 3.功能 管理员登录进入…

腾讯混元宣布大语言模型和3D模型正式开源

腾讯混元大模型正在加快开源步伐。 11月5日&#xff0c;腾讯混元宣布最新的MoE模型“混元Large“以及混元3D生成大模型“ Hunyuan3D-1.0”正式开源&#xff0c;支持企业及开发者精调、部署等不同场景的使用需求&#xff0c;可在HuggingFace、Github等技术社区直接下载&#xff…

《常用深度学习神经网络及其原理与应用场景》

一、总体介绍 一、引言 随着科技的不断发展&#xff0c;深度学习已经成为人工智能领域中最具影响力的技术之一。深度学习神经网络通过模拟人类大脑的神经元结构和工作方式&#xff0c;能够自动学习数据中的特征和模式&#xff0c;从而实现各种复杂的任务&#xff0c;如图像识…

操作系统三级调度相关习题

填空题 微机是以(总线)为组带构成的计算机系统在批处理兼分时系统中&#xff0c;往往把由分时系统控制的作业称为(前台)作业&#xff0c;把由批处理系统处理的作业称为(后台)作业在分时系统中&#xff0c;若时间片长度一定&#xff0c;则(用户数越多)&#xff0c;系统响应时间…

STL 迭代器iteratior 详解

C的标准模板库&#xff08;STL&#xff09;中&#xff0c;迭代器是一种重要的工具&#xff0c;用于访问容器中的元素。 迭代器是一个变量&#xff0c;相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素&#xff0c;通过迭代器就可以读写它指向的元素。从…

移门缓冲支架有什么作用?

移门缓冲支架是一种安装在滑动门上的装置&#xff0c;主要用于吸收门关闭时的冲击力&#xff0c;防止门突然停止时的震动&#xff0c;从而保护门体、轨道和墙体。移门缓冲支架不仅提升了门的使用体验&#xff0c;还增加了安全&#xff0c;延长了门的使用寿命。关于移门缓冲支架…