蓝桥杯编程题讲解

news2024/9/22 21:30:35

给定一个正整数 N ,然后将 N 分解成 3 个正整数之和。

计算出共有多少种符合要求的分解方法。

要求:

分解的 3 3 3个正整数各不相同;
分解的 3 3 3个正整数中都不含数字3和7.
如:N为8,可分解为 ( 1 , 1 , 6 ) (1,1,6) (1,1,6) ( 1 , 2 , 5 ) (1,2,5) (1,2,5) ( 1 , 3 , 4 ) (1,3,4) (1,3,4) ( 2 , 2 , 4 ) (2,2,4) (2,2,4) ( 2 , 3 , 3 ) (2,3,3) (2,3,3),其中满足要求的分解方法有 1 1 1种,为 ( 1 , 2 , 5 ) (1,2,5) (1,2,5)

输入描述

输入一个正整数 N ( 5 < N < 501 ) N (5<N<501) N(5<N<501),表示需要分解的正整数。

输出描述

输出一个整数,表示共有多少种符合要求的分解方法。

用例输入 1

8
用例输出 1

1
解答:
这道题算出三个数判断就行

#include <bits/stdc++.h>
using namespace std;
bool check(int x)//这个函数用来判断x是否含有7或3
{
    while(x!=0)
    {
        if(x%10==3||x%10==7) return 0;
        x=x/10;
    }
    return 1;
}
int main() 
{
	int n,cnt=0;
    cin>>n;
    for(int i=1;i<=n-1;i++)
    {
        for(int j=i+1;j<=n-1;j++)
        {
        	int k=n-i-j;//算出第三个数
        	if(k<=j||check(i)==0||check(j)==0||check(k)==0) continue;
            cnt++;
        }
    }
    cout<<cnt;
  return 0;
}

数池塘(四方向)

题目描述

由于近期的降雨,雨水汇集在农民约翰的田地不同的地方。我们用一个 N × M ( 1 ≤ N ≤ 100 , 1 ≤ M ≤ 100 ) N\times M(1\leq N\leq 100, 1\leq M\leq 100) N×M(1N100,1M100) 的网格图表示。每个网格中有水(W) 或是旱地(.)。一个网格与其周围的八个网格相连,而一组相连的网格视为一个水坑。约翰想弄清楚他的田地已经形成了多少水坑。给出约翰田地的示意图,确定当中有多少水坑。

输入第 1 1 1 行:两个空格隔开的整数: N N N M M M

2 2 2 行到第 N + 1 N+1 N+1 行:每行 M M M 个字符,每个字符是 W.,它们表示网格图中的一排。字符之间没有空格。

输出一行,表示水坑的数量。

样例输入 #1

10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.

样例输出 #1

3

这道题用广度优先遍历

#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
char g[110][110];
int dx[]={-1,0,1,0},
	dy[]={0,-1,0,1},n,m,cnt;//偏移数组
void bfs(int x,int y)
{
    queue<PII> q;
    q.push({x,y});
    g[x][y]='.';
    while(q.size()!=0)
    {
        PII p=q.front();q.pop();
        x=p.first,y=p.second;
        for(int i=0;i<4;i++)
        {
            int a=dx[i]+x,b=dy[i]+y;
            if(a<1||a>n||b<1||b>m) continue;//检查有没有越界
            if(g[a][b]=='.') continue;
            q.push({a,b});
            g[a][b]='.';
        }
    }
}
int main() {
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            cin>>g[i][j];
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(g[i][j]=='W')
            {
                cnt++;
                bfs(i,j);
            }
        }
    }
    cout<<cnt;
 	return 0;
}

手工课上老师拿出 N N N 张长方形彩纸,且每张彩纸上都画着 W × H W\times H W×H 的网格(网格铺满整张彩纸)。现在老师将 N N N 张彩纸裁剪出 K K K 张大小相同的正方形,并且要使裁剪出的正方形的边长最大(裁剪的正方形边长必须为整数)。

例如: N = 2 N=2 N=2,有 2 2 2 张彩纸,第一张彩纸 W = 4 W=4 W=4 H = 3 H=3 H=3,第二张彩纸 W = 5 W=5 W=5 H = 4 H=4 H=4 K = 6 K=6 K=6,裁剪的 6 6 6 个正方形边长最大是 2 2 2
请添加图片描述
当给出 N N N 张长方形彩纸 W W W H H H,及 K K K 的值,请计算出将 N N N 张彩纸裁剪出 K K K 张大小相同的正方形,正方形的边长最大是多少(裁剪的正方形边长必须为整数)。

输入描述

第一行输入两个正整数 N N N, K ( 1 < N < 100 , 1 < K < 100 ) K (1<N<100,1<K<100) K(1<N<1001<K<100) N N N 表示彩纸数量, K K K 表示需裁剪的正方形数量,两个正整数之间一个空格隔开;

第二行开始,输入 N N N 行,每行输入两个正整数 W W W H H H, ( 1 < W < 1000 , 1 < H < 1000 ) (1<W <1000,1<H <1000) (1<W<10001<H<1000)
表示彩纸的宽度,两个正整数之间一个空格隔开。

输出描述

输出一个正整数,表示将 N N N 张彩纸裁剪出 K K K 张大小相同的正方形的边长最大是多少(裁剪的正方形边长必须为整数),如果不能裁剪出 K K K 张正方形就输出-1。

输入
2 6
4 3
5 4
输出
2

解答:

#include <bits/stdc++.h>
using namespace std;
int a[110],b[110],n,k;
int f(int g)
{
  int sum=0;
  for(int i=1;i<=n;i++)
  {
  	sum+=(a[i]/g)*(b[i]/g);
  }
  return sum;
}
int main() 
{
  int	x=0;
  cin>>n>>k;
  for(int i=1;i<=n;i++)
  {
      cin>>a[i]>>b[i];
      x=max(x,max(a[i],b[i]));//把这三个数打擂台
  }
  for(int i=x;i>=1;i--) if(f(i)>=k) {cout<<i;return 0;}
  cout<<-1;
  return 0;
}

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

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

相关文章

位图与布隆过滤器 —— 海量数据处理

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;C从入门到精通 目录 &#x1f680; 位图 一&#xff1a; &#x1f525; 位图概念 二&#xff1a; &#x1f525; 位图的实现思路及代码实现三&#xff1a; &#x1f525; 位图的应用四&#xff1a;…

云原生系列 - Nginx(基础篇)

前言 学习视频&#xff1a;尚硅谷Nginx教程&#xff08;亿级流量nginx架构设计&#xff09;本内容仅用于个人学习笔记&#xff0c;如有侵扰&#xff0c;联系删学习文档&#xff1a; 云原生系列 - Nginx(基础篇) 1、简介 1.1、背景介绍 Nginx(enginex)是一个高性能的HTTP和…

SpringBoot教程(二十四) | SpringBoot集成日志AOP切面

SpringBoot教程&#xff08;二十四&#xff09; | SpringBoot集成日志AOP切面 &#xff08;一&#xff09;AOP 概要1. 什么是 AOP &#xff1f;2. 为什么要用 AOP&#xff1f;3. AOP一般用来干什么&#xff1f;4. AOP 的核心概念 &#xff08;二&#xff09;Spring AOP1. 简述2…

【芯智雲城】UDStore定制化存储模组和技术解决方案

一、方案详情&#xff1a; UDStore芯宇存储专注行业应用&#xff0c;根据不同应用场景&#xff0c;为客户提供包括车规级、工业级、工规宽温及高耐久型的存储模组产品和技术解决方案&#xff0c;可提供的产品和解决方案类型包括如下&#xff1a; 二、关键技术&#xff1a; 1&…

WLAN DNS proxy settings (Win 10)

WLAN DNS proxy settings (Win 10) 114.114.114.114 8.8.8.8

Ubuntu 22.04 安装 MySQL 8

Ubuntu 22.04 安装 MySQL 8 本文描述了Ubuntu安装MySQL 8的方法 CentOS7 的安装方法点击此处跳转 Windows 的安装方法点击此处跳转 Docker 的安装方法点击此处跳转 正文开始&#xff1a; 在一切开始之前&#xff0c;建议先切换到root #输入下方名&#xff0c;然后输入当…

【JavaSec】Java反射知识点补充

0x03反射-补充零散知识点 文章目录 0x03反射-补充零散知识点Runtime类setAccessible(true)三种命令执行的方法static变量赋值 前面学过 就不多说final变量赋值InDirect final间接赋值static final 向大佬致敬&#xff1a; https://drun1baby.top Runtime类 Runtime 类中有 …

JAVA itextpdf 段落自动分页指定固定行距打印

JAVA itextpdf 段落自动分页指定固定行距打印 前言&#xff1a;公司有个需求&#xff0c;打印的合同模板左上角要加上logo的图标。但是itext pdf 自动分页会按照默认的顶部高分页打印内容的&#xff0c;导致从第二页开始logo图标就会把合同的内容给覆盖掉了。然后尝试了挺多方法…

Electron31-ViteAdmin桌面端后台|vite5.x+electron31+element-plus管理系统Exe

原创自研Vue3Electron31ElementPlus桌面端轻量级后台管理Exe系统。 基于最新前端技术栈Vite5.x、Vue3、Electron31、ElementPlus、Vue-I18n、Echarts实战开发桌面端高颜值后台管理模板。内置4种布局模板&#xff0c;支持i18n国际化、动态权限路由&#xff0c;实现了表格、表单、…

基于Spring Boot的大学校园生活信息平台的设计与实现pf

TOC springboot523基于Spring Boot的大学校园生活信息平台的设计与实现pf 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关…

记录阿里云服务器购买和域名绑定解析的流程

购买阿里云域名和服务器 因为App备案的原因&#xff0c;需要购买域名和服务器&#xff0c;这篇文章介绍在阿里云上购买相关服务的流程。 注册阿里云的流程比较简单这里不再赘述了。请参考我之前写的 阿里云账号注册详细教程 购买顺序&#xff1a;一般是先购买阿里云服务器&…

【乐吾乐大屏可视化组态编辑器】事件交互-场景交互

场景交互 在线使用&#xff1a;https://v.le5le.com/ 乐吾乐大屏可视化可以实现大屏页面与内嵌2d/3d场景相互通信&#xff0c;底层原理是利用了iframe通过postMessage发送消息。 下面以2d场景为例&#xff0c;实现步骤如下&#xff1a; 1. 首先配置场景2&#xff08;被嵌入…

Postman接口测试项目实战

第 1 章 什么是接口测试 1.1、为什么要进行接口测试 目前除了特别Low的公司外&#xff0c;开发都是前后端分离的&#xff0c;就是说前端有前端的工程师进行编码&#xff0c;后端有后端的工程师进行编码&#xff0c;前后端进行数据基本都是通过接口进行交互的。 1.2、接口测…

ant design 的 tree 如何作为角色中的权限选择之一

这种功能如何弄呢&#xff1f; 编辑的时候要让权限能选中哦。 <ProForm.Item name"permissions" label{intl.formatMessage({ id: permission_choose })}><Spin spinning{loading}><TreecheckableonExpand{onExpand}expandedKeys{expandedKeys}auto…

StringJoiner以及字符串小练习

概述 String Joiner跟String Builder一样&#xff0c;亦可以看成是一个容器&#xff0c;创建之后iu里面的内容是可变的 作用 提高字符串的操作效率&#xff0c;而且代码编写特别简洁&#xff0c;但是目前市场上很少有人用 JDK8 package stringdemo;import java.util.String…

iTOP-3A5000开发板流畅运行国产系统外加机箱就是一台电脑主机

性能强 采用全国产龙芯3A5000处理器&#xff0c;基于龙芯自主指令系统 (LoongArch)的LA464微结构&#xff0c;并进一步提升频率&#xff0c;降低功耗&#xff0c;优化性能。 桥片 采用龙芯 7A2000&#xff0c;支持PCIE 3.0、USB 3.0和 SATA 3.0.显示接口2 路、HDMI 和1路 VGA&a…

插入数据时,出现存在重复数据异常,捕获异常的信息

Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry xiaomi111-啊啊啊啊 for key edu_class.institution_account 执行插入操作的时候抛出这个异常 怎么捕获这个异常 可以判断 e instanceof 某个具体的异常 然后再进像下面操作&#xff0c;打印出来…

重生奇迹MU:‌重塑经典,‌再创辉煌

在浩瀚的游戏宇宙中&#xff0c;‌有一颗璀璨的星辰&#xff0c;‌它承载着无数玩家的青春回忆与梦想&#xff0c;‌那就是——重生奇迹MU‌。‌作为一款历经岁月洗礼的经典网游&#xff0c;重生奇迹MU不仅见证了游戏行业的蓬勃发展&#xff0c;‌更以其独特的魅力&#xff0c;…

倒计时:可添加可删除的倒计时函数

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>倒计时</title> </head><body>…

关于医疗器械维修行业的一些思考

在当今医疗体系中&#xff0c;医疗器械维修行业扮演着不可或缺的角色。作为一名长期关注这一领域的人士&#xff0c;我对其有着一些个人的看法。 首先&#xff0c;医疗器械维修行业的重要性不言而喻。先进的医疗器械是现代医疗诊断和治疗的重要工具&#xff0c;而确保这些设备…