2024.5.25晚训题解

news2025/3/18 15:37:35

这套题挺简单的。。。
在这里插入图片描述
A题 AC率差不多100%
B题 AC率差不多75%
C题 AC率也差不多75%
D题 AC率 50%
E题 AC率 25%
向着top 1%出发

A题题解
Stair, Peak, or Neither?
简单判断题,自己写

#include<bits/stdc++.h>
using namespace std;
int A[5];
int main() {
	int t;
	scanf("%d",&t);
	while(t--){
		for(int i=1;i<=3;i++){
			scanf("%d",&A[i]);
		}
		if(A[1]<A[2]&&A[2]<A[3]){
			printf("STAIR\n");
		}
		else if(A[1]<A[2]&&A[2]>A[3]){
			printf("PEAK\n");
		}
		else{
			printf("NONE\n");
		}
	}
	return 0;
}

B题题解
找规律,算出每个矩形的最左上角坐标不就可以填充了

#include<bits/stdc++.h>
using namespace std;
char s[45][45];
int main() {
	int t;
	scanf("%d",&t);
	while(t--){
		int n;
		scanf("%d",&n);
		int op=0;
		for(int i=1;i<=n;i++){
			if(i%2)op=0;
			else op=1;
			for(int j=1;j<=n;j++){
				if(op%2==1){
					s[i*2-1][j*2-1]='.';
					s[i*2-1][j*2]='.';
					s[i*2][j*2-1]='.';
					s[i*2][j*2]='.';
					op=(op+1)%2;
				}
				else{
					s[i*2-1][j*2-1]='#';
					s[i*2-1][j*2]='#';
					s[i*2][j*2-1]='#';
					s[i*2][j*2]='#';
					op=(op+1)%2;
				}
			}
		}
		for(int i=1;i<=2*n;i++){
			for(int j=1;j<=2*n;j++){
				printf("%c",s[i][j]);
			}
			printf("\n");
		}
	}
	return 0;
}

C题题解
模拟题。。没啥好说的,认真读题

#include<bits/stdc++.h>
using namespace std;
int main() {
	int t;
	scanf("%d",&t);
	while(t--){
		int a,b;
		scanf("%d:%d",&a,&b);
		if(a<12){
			if(a==0)printf("12");
			else if(a<10)printf("0%d",a);
			else printf("%d",a);
			printf(":");
			if(b<10)printf("0%d",b);
			else printf("%d",b);
			printf(" AM\n");
		}
		else{
			if(a>12){
				a=a%12;
			}
			if(a==0)printf("12");
			else if(a<10)printf("0%d",a);
			else printf("%d",a);
			printf(":");
			if(b<10)printf("0%d",b);
			else printf("%d",b);
			printf(" PM\n");
		}
	}
	return 0;
}

D题题解
需要一点分析,首先二进制数有点多,100000 + ? ? ? ? ? ????? ?????
每个? 可以表示0或者1 那么有25 +1种
我们可以罗列出来,一个一个枚举。
这里所说的枚举其实可以更优雅一点,用DFS去搜索,看看给出的数字能不能凑出来
为什么DFS是可行的呢?
数字也就小于1e5级别,我们考虑最小的二进制数10 (1就不用说了,乘了也相当于没有乘)
1e4级别的数字顶多除4次10就要没了,所以说我们DFS深度肯定不会很多,四层足以,每次把当前数字能整除的,拿去除除看。

#include<bits/stdc++.h>
using namespace std;
int A[200]; //16
int len=0;
void dfs(int x){
	if(x>100000)return ;
	A[++len]=x;
	if(x%10==0)dfs(x+1);//只有偶数才能在末尾放1   
	dfs(x*10);//搜索构造二进制数  
}
bool DFS(int x){
	if(x==1)return true;
	bool now=false;
	for(int i=1;i<=len;i++){
		if(x%A[i]==0){
			now=now | DFS(x/A[i]);
		}
	}
	return now;
}
int main(){
	int t;
	scanf("%d",&t);
	dfs(10);//搜索出可用的二进制数 
	while(t--){
		int n;
		scanf("%d",&n);
		bool ok=DFS(n);
		if(ok)printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}

E题题解
题目所说的这种字符串,首先可以从长度分析,这种字符串的长度必定是S的某个因子
某则不可能复制回去。所以我们可以枚举长度。

这种子串从哪里枚举呢?你如果要复制回去的话,肯定要从头摆过去,所以说我们直接枚举S的一段前缀字符串,长度为S字符串的因子,然后带回去检验行不行。

注意还有一种可能,那就是枚举最末尾的那一段,因为它也算是最后被复制的那一段,我们可以利用它,来尝试往前面复制。

剩下的就看大家怎么写枚举了

[aaaa…bbbbb]
简单来说就是一方面你去枚举aaa能不能行
再枚举bbbb能不能行,两种方法取最小值

#include<bits/stdc++.h>
using namespace std;
char s[200005];
int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		int n;
		scanf("%d",&n);
		scanf("%s",s+1);
		int ans=n;//初始值为N  
		for(int i=1;i<=n/2;i++){
		//i 枚举子串长度
			if(n%i==0){
				int res=0;//有多少个不一样
				bool ok=true;
				for(int k=1;k<=n/i;k++){
				// 把S划分为N/i 段   每段都判断判断
					if(ok==false)break;
					for(int j=1;j<=i;j++){
					//这个j 对应的前缀 S[1~i] 
						if(s[(k-1)*i+j]!=s[j])res++;
						//(k-1)*i表示前面已经枚举了多少段  算一个偏移量
						if(res>=2){
							ok=false;
							break;
						}
				    }
				}
				if(ok){
					ans=i;
					break;
				}
			}
		}
		
		for(int i=1;i<=n/2;i++){
			if(n%i==0){
				int res=0;
				bool ok=true;
				for(int k=1;k<=n/i;k++){
					if(ok==false)break;
					//倒着枚举要注意,不是枚举后缀
					//而是枚举S[j~n] 从左到右能不能复制 
					for(int j=n-i+1,q=1;j<=n;j++,q++){
						if(s[(k-1)*i+q]!=s[j])res++;
						// j表示S[j~n]
						//S[(K-1)*i+Q]是枚举段 
						if(res>=2){
							ok=false;
							break;
						}
				    }
				}
				if(ok){
					ans=min(ans,i);
					break;
				}
			}
		}
		printf("%d\n",ans);
	}
	return 0;
}

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

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

相关文章

增强版 Kimi:AI 驱动的智能创作平台,实现一站式内容生成(图片、PPT、PDF)!

前言 基于扣子 Coze 零代码平台&#xff0c;我们从零到一轻松实现了专属 Bot 机器人的搭建。 AI 大模型&#xff08;LLM&#xff09;、智能体&#xff08;Agent&#xff09;、知识库、向量数据库、知识图谱&#xff0c;RAG&#xff0c;AGI 的不同形态愈发显现&#xff0c;如何…

HarmonyOS鸿蒙应用开发——ArkTS的“内置组件 + 样式 + 循环和条件渲染”

一、内置组件是咩&#xff1f; 学过前端的都知道&#xff0c;一个组件就是由多个组件组成的&#xff0c;一个组件也可以是多个小组件组成的&#xff0c;组件就是一些什么导航栏、底部、按钮......啥的&#xff0c;但是组件分为【自定义组件】跟【内置组件】 【自定义组件】就…

微信小程序毕业设计-智慧旅游平台系统项目开发实战(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

【Python】【Scrapy 爬虫】理解HTML和XPath

为了从网页中抽取信息&#xff0c;必须对其结构有更多了解。我们快速浏览HTML、HTML的树状表示&#xff0c;以及在网页上选取信息的一种方式XPath。 HTML、DOM树表示以及XPath 互联网是如何工作的&#xff1f; 当两台电脑需要通信的时候&#xff0c;你必须要连接他们&#xff…

【数据结构与算法篇】二叉树链式结构及实现

【数据结构与算法篇】二叉树链式结构及实现 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 4. 二叉树链式结构的实现 4.1 前置说明 4.2 二叉树的遍历 4.2.1 前序、中序以及…

材料物理 笔记-9

原内容请参考哈尔滨工业大学何飞教授&#xff1a;https://www.bilibili.com/video/BV18b4y1Y7wd/?p12&spm_id_frompageDriver&vd_source61654d4a6e8d7941436149dd99026962 或《材料物理性能及其在材料研究中的应用》&#xff08;哈尔滨工业大学出版社&#xff09; ——…

C++:List的使用和模拟实现

✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modifiers …

【算法】前缀和算法——和为k的子数组之和

题解&#xff1a;和为k的子数组之和(前缀和算法) 目录 1.题目2.题解思路2.1前缀和 哈希表&#xff0c;算法步骤&#xff1a;2.2细节如下&#xff1a;2.3参考代码&#xff1a; 3.总结及思考 1.题目 题目链接&#xff1a;LINK 2.题解思路 暴力求解自然不用多说&#xff0c;时…

七大经典排序算法——冒泡排序

文章目录 &#x1f4d1;冒泡排序介绍&#x1f324;️代码实现&#x1f324;️做个简单的优化&#x1f324;️复杂度和稳定性分析☁️结语 &#x1f4d1;冒泡排序介绍 冒泡排序是一种简单但效率较低的排序算法。它重复地比较相邻的两个元素&#xff0c;如果顺序不对则交换它们&…

刷题之路径总和Ⅲ(leetcode)

路径总和Ⅲ 这题和和《为K的数组》思路一致&#xff0c;也是用前缀表。 代码调试过&#xff0c;所以还加一部分用前序遍历数组和中序遍历数组构造二叉树的代码。 #include<vector> #include<unordered_map> #include<iostream> using namespace std; //Def…

著名书法家王杰宝做客央视频《笔墨写人生》艺坛人物经典访谈节目

印象网北京讯&#xff08;张春兄、冯爱云&#xff09;展示艺术风采&#xff0c;构建时代精神。5月25日&#xff0c;著名书法家、羲之文化传承人王杰宝&#xff0c;做客央视频《笔墨写人生》艺坛人物经典访谈节目&#xff0c;与中央电视台纪录频道主持人姚文倩一起&#xff0c;分…

web前端框架设计第十课-组件

web前端框架设计第十课-组件 一.预习笔记 组件&#xff1a;Vue最强大的功能之一 1.局部组件注册 注意事项&#xff1a;template标签中只能有一个根元素 2.全局组件的注册 注意事项&#xff1a;组件名的大小写需要注意&#xff08;实践&#xff09; 3.案例&#xff08;查询框…

解决 Failed to parse remote port from server output【Remote-SSH】【VSCode】

描述 一早起来&#xff0c;发现remote-ssh无法进入服务器容器&#xff0c;本地使用git bash进行ssh可正常连接服务器&#xff0c;基本确定是vscode工具本身的问题。重装本地用户的.vscode相关目录清空&#xff0c;vscode重装均无果&#xff0c;不建议尝试。弹窗信息为Could no…

SpringBoot高级原理详解

文章目录 1 SpringBoot自动化配置原理01-SpringBoot2高级-starter依赖管理机制02-SpringBoot2高级-自动化配置初体验03-SpringBoot2高级-底层原理-Configuration配置注解04-SpringBoot2高级-底层原理-Import注解使用105-SpringBoot2高级-底层原理-Import注解使用206-SpringBoot…

【ARM 裸机】按键输入

本节学习按键输入&#xff0c;先拷贝上一节工程文件&#xff0c; 1、驱动编写 新建 key 的 .h 和 .c 文件&#xff1b; 再查看一下硬件原理图如下&#xff1b; 由此可知&#xff0c;KEY0 按键接在 UART1_CTS 引脚上&#xff0c;默认情况下为高电平&#xff0c;按键按下为…

AI大模型探索之路-基础篇5:GLM-4解锁国产大模型的全能智慧与创新应用

目录 前言一、GLM4大模型总体概述二、GLM4和GPT4功能对比三、GLM4和GPT4性能对比1、基础能力&#xff08;英文&#xff09;2、指令跟随能力3、对齐能力4、长文本能力5、多模态-文生图 四、GLM-4 ALL Tools1、文生图2、代码解释器3、网页浏览4、Function Call5、多工具自动调用 …

CHI dataless 传输——CHI(4)

上篇介绍了read的操作类型&#xff0c;本篇我们来介绍一下dataless 目录 一、dataless操作概览 二、Non-CMO (Non-Cache Maintenance Operation) 1、CleanUnique 2、StashOnce and StashOnceSep 3、Evict 三、CMO (Cache Maintenance Operation) 一、dataless操作概览 名…

洛谷P3574 [POI2014] FAR-FarmCraft(树形dp)

洛谷 P 3574 [ P O I 2014 ] F A R − F a r m C r a f t &#xff08;树形 d p &#xff09; \Huge{洛谷P3574 [POI2014] FAR-FarmCraft&#xff08;树形dp&#xff09;} 洛谷P3574[POI2014]FAR−FarmCraft&#xff08;树形dp&#xff09; 文章目录 题意题目说明 思路标程 题目…

使用git生成SSH公钥,并设置SSH公钥

1、在git命令行里输入以下命令 ssh-keygen -t rsa 2、按回车&#xff0c;然后会看到以下字眼 Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa) 例&#xff1a; 3、继续回车&#xff0c;然后会看到以下字眼 Enter…

等保三级云防火墙正版--免费部署满足要求

正版授权内部部署配置授权免费 1、超时退出 2、病毒防护 3、防火墙策略 4、密码复杂度和登录失败处理 5、特征库 点赞关注 私信获取 获取授权 Q 8-5-0-3-4-7-3-3-5