OJ刷题 第十二篇
21308 - 特殊的三角形
时间限制 : 1 秒
内存限制 : 128 MB
有这样一种特殊的N阶的三角形,当N等于3和4时,矩阵如下:
请输出当为N时的三角形。
输入
输入有多组数据,每行输入一个正整数N,1<=N<=100
输出
按照给出的样例进行输出
样例
输入
3
输出
1 2 6 3 5 4
答案:
#include<iostream>
#include<stdio.h>
using namespace std;
int main() {int a[101][101] = { 0 };int ret = 1;//给每个元素赋值的变量bool direction = false;//true表示往下走,false表示往上走int i = 1,N;while (scanf("%d",&N)==1) {ret = 1;direction = false;//计算三角形的值for (int i = 1; i <= N; i++) {if (direction) {//当前往下走int col = i;for (int k = 1; k <= i; k++) {a[k][col--] = ret++;}direction = !direction;//改变方向}else {//往上走int col = i;for (int k = 1; k <= i; k++) {a[col--][k] = ret++;}direction = !direction;//改变方向}}//打印for (int i = 1; i <= N; i++) {for (int j = 1; j <= N - i + 1; j++) {//每行元素有N-i+1个元素cout << a[i][j] << ' ';}cout << endl;}}return 0;
}
分析:这个题难度还是比较大的,之前我们在前面刷到过那个蛇形矩阵,那个题在前面也挺难的,但是我们理解整个代码逻辑后其实也没那么难,初次遇到这个题那肯定挺难的。这个题就是类似于这种:如图:
就是像一个蛇一样来回走。因此我们可以设置一个标记用来表示蛇是往下走还是往上走。每次走完后改变当前方向。至于每个方向是怎么走的,这个就自己去琢磨了。
另外这个题输入的数据个数是任意的,最开始我写的是这样:
while (true) {cin >> N;
就陷入死循环,代码不通过,提示输出超限!后面还是借助C语言的scanf函数的输入来输入,后面就能通过了。这个题这样出,用C/C++还是不好实现的,因为这种任意数据的输入,而且还不知道输入什么表示结尾,这种输入用C/C++实现比较困难!。
最后是否通过:
21204 - 图书管理员(NOIP2017PJT2)
时间限制 : 1 秒
内存限制 : 128 MB
图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。
小D刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他需要的书,请输出-1。
输入
输入文件的第一行,包含两个正整数 n 和 q,以一个空格分开,分别代表图书馆里书的数量和读者的数量。 接下来的 n 行,每行包含一个正整数,代表图书馆里某本书的图书编码。 接下来的 q 行,每行包含两个正整数,以一个空格分开,第一个正整数代表图书馆里读者的需求码的长度,第二个正整数代表读者的需求码。 数据范围:1 ≤ n ≤ 1,000,1 ≤ q ≤ 1,000,所有的图书编码和需求码均不超过 10,000,000。
输出
输出文件有 q 行,每行包含一个整数。 如果存在第 i 个读者所需要的书,则在第 i 行输出第 i 个读者所需要的书中图书编码最小的那本书的图书编码;否则输出-1。
样例
输入
5 5 2123 1123 23 24 24 2 23 3 123 3 124 2 12 2 12
输出
23 1123 -1 -1 -1
答案:
#include<iostream>
typedef struct reader {//读者信息,包括所需编号长度和末尾的编号int length;int code;
}reader;int calcute(int length, int book) {//计算某本书末尾长度为length的值,如2232末尾长度为2的值是32int sum = 0;int r = 1,mul=1;for (int i = 1; i <= length; i++) {r = book % 10;;sum = sum + mul*r;mul *= 10;book /= 10;}return sum;
}
using namespace std;
int main() {int n_book, q_read;//分别表示书的数量和读者的数量cin >> n_book >> q_read;int book[1000];//存放书的编号reader people[1000];//存放读者信息//输入书的编码for (int i = 0; i < n_book; i++) {cin >> book[i];}//输入读者的数据for (int i = 0; i < q_read; i++) {cin >> people[i].length >> people[i].code;}//求最大编号的书int max=book[0];//求最大编号是为了找最小编号,仔细琢磨for (int i = 1; i < n_book; i++) {max = max > book[i] ? max : book[i];}//对每一位读者找编号最小的那本书for (int i = 0; i < q_read; i++) {int min=max;bool flag = false;for (int j = 0; j < n_book; j++) {if (calcute(people[i].length, book[j])==people[i].code) {min = min > book[j] ? book[j] : min;flag = true;}}if (flag) {cout << min << endl;}else {cout << -1 << endl;}}return 0;
}
分析:这个题给的信息有点多,要仔细梳理,文字多不要害怕,往往文字多,题目逻辑是很简单的。这到题的意思就是对每一个读者,每一位读者给出了编号得长度和指定得编号,现在就是要去和每本书作比较,取出每本书指定长度的末尾,然后和读者给出的编号比较,如果一样,就保存当前书的编号,继续对比,直到所有书对比完,找到最小那个编号即可,如果没有符合条件的编号,打印-1即可。
这道题难点:
1、在存读者的信息用到了结构体,当然你也可以用两个数组存储,但是为了体现出读者信息的整体性,用结构体还是比较好。这是难的一个点。
2、其次就是这道题我们要通过最大编号找最小编号。这个可能不好理解。当然用两个数组存读者信息的话也用不到这个。
是否通过:
21401 - 进制转换
时间限制 : 1 秒
内存限制 : 128 MB
给定一个十进制正整数N(1 ≤ N ≤ 30000),求其对应的二进制数。
输入
仅一行,包含一个正整数N。
输出
共一行,包含一个正整数,表示N对应的二进制数。
样例
输入
10
输出
1010
答案:
#include<iostream>
using namespace std;
int main() {int N;cin >> N;int num = N;int a[16];//题目说N最大为30000,故二进制数最多不超过16位int i = 0,count = 0;while (num) {int r = num % 2;a[i++] = r;count++;num /= 2;}if (N == 0) {cout << N << endl;}else {for (int i = count - 1; i >= 0; i--) {cout << a[i];}}return 0;
}
分析:当N为0时到单独处理,我们用短除法把十进制数获得余数,采取倒取余数的方式获得它的二进制数。其实也可以可以采用栈来实现。栈的一个应用可以用来实现进制转换。
是否通过:
21403 - 间谍
时间限制 : 1 秒
内存限制 : 128 MB
现在有9个科学家正在一起研究机密问题,但据可靠消息,其中有两人是间谍,只有7个人是真正的科学家。cyh同学想将这两个间谍揪出来。当然,这9人都声称自己不是间谍。幸运的是,每个人都戴着一顶帽子,帽子上有一个小于100的正整数。根据最新的准确消息,真正的7位科学家戴着的帽子上的数字之和刚好等于100。由于cyh同学要准备期终考试,请你编写一个程序,找出真正的7个科学家。
输入
输入共9行。
每行一个整数,第i行的整数表示第i个科学家戴的帽子上的正整数。
输出
输出共7行(因为只有7个科学家)。
每行一个整数,第i行的整数表示第i个科学家戴的帽子上的正整数,注意输出的顺序是按去掉两个间谍后的顺序。
样例
输入
1 5 6 7 10 12 19 29 33
输出
1 5 6 7 19 29 33
答案:
#include<iostream>
using namespace std;
int main() {int a[9];int sum = 0;for (int i = 0; i < 9; i++) {cin >> a[i];sum += a[i];}sum -= 100;//则sum的值为不是科学家的两个人帽子之和//找出符合条件的两个人for (int i = 0; i < 9; i++) {for (int j = 1; j < 9; j++) {if (a[i] + a[j] == sum) {a[i] = 0;a[j] = 0;break;}}}//打印for (int i = 0; i < 9; i++) {if (a[i]) {cout << a[i] << endl;}}return 0;
}
分析:这个题意思就是在9个数中找出7个数,使得它们的和为100,剩下的两个数字肯定就是间谍。但是现在怎么把所有的7种组合找出来呢?用9重循环???我想这不好办吧。这道题我们反其道而行之。既然是求求7个等于100的数字,我们可以把9个数字加起来然后减去100,得到的结果就是间谍之和,间谍就两个,只需两个循环即可。
是否通过:
21405 - 哪种苹果最多
时间限制 : 1 秒
内存限制 : 128 MB
陶陶家的院子里有许多苹果树,每到秋天树上就会结出许多苹果。苹果成熟的时候,陶陶就会跑去摘苹果。经过估算,每个苹果都有一个甜度,第i个苹果的甜度为di。
输入
输入共有两行:
第一行,包含一个整数n,表示有n个苹果;
第二行,包含n个用空格隔开的正整数,分别表示n个苹果的甜度。
对于100%的数据,1≤di≤1000;1≤n≤100。
输出
输出共一行,包含两个用空格隔开的整数,分别表示最多的那种苹果的甜度及有几个这样的苹果。
样例
输入
10 100 200 200 140 129 134 167 198 200 110
输出
200 3
答案:
#include<iostream>
using namespace std;
int main() {int n;cin >> n;int di[100];for (int i = 0; i < n; i++) {cin >> di[i];}//找出甜度不同的苹果的有多少个int kind[100] = { 0 };for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {if (di[i] == di[j]) {kind[i]++;}}}//求出不同甜度的苹果的个数,求出最大的那个个数int max = kind[0];int maxDI = di[0];//求出甜度最大的苹果for (int i = 0; i < n; i++) {if (max <= kind[i]) {max = kind[i];}maxDI = maxDI > di[i] ? maxDI : di[i];}//甜度个数相同的苹果,求出甜度小的那个int min = maxDI;for (int i = 0; i < n; i++) {if (max == kind[i]) {min = min < di[i] ? min : di[i];}}cout << min << ' ' << max << endl;return 0;
}
分析:这道题和前面那道21404-最好吃的苹果相比,难度大了一些。另外这个题有一个条件它没说清楚,当不同的甜度有相同的的苹果个数且都是最多时,要选出甜度最小的那个,这是题目没有说明的地方,我也是通过它的测试案例才知道题目少了这个条件。
是否通过:
相关文章:

OJ刷题 第十二篇
21308 - 特殊的三角形 时间限制 : 1 秒 内存限制 : 128 MB 有这样一种特殊的N阶的三角形,当N等于3和4时,矩阵如下: 请输出当为N时的三角形。 输入 输入有多组数据,每行输入一个正整数N,1<N<100 输出 按照给出…...

【计算机专业应届生先找培训还是先找个工作过渡一下?】
计算机专业应届生先找培训还是先找个工作过渡一下? 计算机应届生是先培训还是先工作,这个问题应该困扰了很多专业技能一般的同学,尤其是学历方面还没有优势的普通本专科院校。都说技术与学历优秀的人进大厂,技术一般学历优秀的人能…...

MySQL数据库,联合查询
目录 1. 联合查询 1.1 内查询 1.2 外查询 1.3 自连接 1.4 子查询 1.5 合并查询 1. 联合查询 联合查询,简单的来讲就是多个表联合起来进行查询。这样的查询在我们实际的开发中会用到很多,因此会用笛卡尔积的概念。 啥是笛卡尔积?两张表…...
springboot注解(全)
一、什么是Spring Boot Spring Boot是一个快速开发框架,快速的将一些常用的第三方依赖整合(通过Maven子父亲工程的方式),简化xml配置,全部采用注解形式,内置Http服务器(Jetty和Tomcat࿰…...

进制转换—包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
目录 1.进制转换必备知识: 1.1 二进制逢2进1 8进制逢8进1 10进制逢10进1 16进制逢16进1 1.2为了区分二、八、十、十六进制,我们通常在数字后面加字母进行区分 2. 二进制与八进制、十六进制相互转换 2.1 二进制转八进制 2.2 八…...

什么是UML?
文章目录 00 | 基础知识01 | 静态建模类图对象图用例图 02 | 动态建模时序图通信图状态图活动图 03 | 物理建模构件图部署图 UML(Unified Model Language),统一建模语言,是一种可以用来表现设计模式的直观的,有效的框图…...

5.3 Mybatis映射文件 - 零基础入门,轻松学会查询的select标签和resultMap标签
本文目录 前言一、创建XML映射文件二、MybatisX插件安装三、mapper标签四、select标签UserMapper接口方法UserMapper.xml 五、resultMap标签定义resultMap标签修改select标签 总结 前言 MyBatis的强大在于它的语句映射,它提供了注解和XML映射文件两种开发方式&…...
“华为杯”研究生数学建模竞赛2020年-【华为杯】B题:汽油辛烷值优化建模(附获奖论文和python代码实现)
目录 摘 要: 1 问题重述 1.1 问题背景 1.2 问题重述 2 模型假设 3 符号说明...

C6678开发概述与Sys/bios基本使用
C6678开发概述 参考开发环境标记及术语创建sys/bios自定义平台运行第一个sys/bios程序Clock模块使用Demo 参考 TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Datasheet TMS320C66x DSP CorePac User Guide 官方手册 创龙6678开发教程 开发环境 …...
python算法中的图算法之网络流算法(详解二)
目录 学习目标: 学习内容: 网络流算法 Ⅰ. 网络流模型 Ⅱ . Ford-Fulk...
企业电子招投标采购系统之项目说明和开发类型源码
项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…...

ERTEC200P-2 PROFINET设备完全开发手册(8-1)
8.1 IRT通讯实验 这里我们使用APP3 IsoApp,修改源代码usrapp_cfg.h的宏为 #define EXAMPL_DEV_CONFIG_VERSION 3 使能App3,对应的主程序为“usriod_main_isoapp.c” 编译后下载运行。打开4.2建立的TIA项目,添加等时模式组织块,…...

手撕Twitter推荐算法
Twitter近期开源了其推荐系统源码[1,2,3],截止现在已经接近36k star。但网上公开的文章都是blog[1]直译,很拗口,因此特地开个系列系统分享下。系列涵盖: Twitter整体推荐系统架构:涵盖图数据挖掘、召回、精排、规则多…...
JAVA多态性测试的基本实验------JAVA入门基础教程
package duotai;public class Person {public void eat(){System.out.println("人吃饭");}public void Pdrink(){System.out.println("人喝水");} }package duotai;public class Man extends Person {public void eat(){System.out.println("男人吃饭…...
小说作者推荐: 妄鸦合集
《惊悚练习生》作品介绍 主人公叫弥赛亚,宗九的小说是《惊悚练习生》,它的作者是妄鸦倾心创作的一本现代耽美、娱乐圈、才女类型的小说,书中主要讲述了:作者:妄鸦 落魄魔术师宗九穿书了他穿到一本恐怖无限流选秀文里,…...

MySQL-自带工具介绍
目录 🍁mysql 🍁mysqladmin 🦐博客主页:大虾好吃吗的博客 🦐MySQL专栏:MySQL专栏地址 MySQL数据库不仅提供了数据库的服务器端应用程序,同时还提供了大量的客户端工具程序,如mysql&a…...
12个你应该知道的Python库
12个你应该知道的Python库 1. python命令行argparse 更简单的begins2. colorama改善命令行窗口3. pyqtgraph 它提供了不同的功能选择,尤其适用于实时和交互式可视化4. 网页浏览器Pywebview5. psutil 提供了完整的获取系统信息的方法 或许cpu近5s的基本报告6. Watchd…...

【数据分析之道-NumPy(七)】numpy字符串函数
文章目录 专栏导读1、函数说明2、add()函数3、multiply()函数4、center()函数5、capitalize()函数6、title()函数7、lower()函数8、upper()函数9、split()函数10、splitlines()函数11、strip()函数12、join()函数 专栏导读 ✍ 作者简介:i阿极,CSDN Pytho…...

【Linux】Linux基本指令(1)
一.前言 从这篇文章开始,博主就开启了Linux学习之路了,本篇文章也是博主的第一篇Linux的文章,今后也会持续不断更新的。 二.理解文件 1.文件 文件文件数据文件属性(所以一个建好的文件就算没有数据,也占用存储空间&am…...

更全面的对比GPT4和Claude对MLIR的掌握能力
本文构造了20个MLIR基础概念的问题以及使用OneFlow IR转换为Tosa IR的5个代码段来评测GPT4和Claude对于MLIR的掌握能力,我的结论是对于基础概念的理解Claude整体上和GPT4持平,而在阅读相关代码片段时Claude表现出了比GPT4更强一点的理解能力。 0x0. 前言…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...