当前位置: 首页 > article >正文

L2 天梯真题

L2-056 被n整除的n位数题目大意:给你一个n代表n位数字,再给你一个a,b, 让你找到一个n位数字在a 和 b 之间,n范围最大为15。思路:肯定不能直接用暴力,这道题应该用dfs,每次检查一下今加进来的数看看是否符合题目意思,如果可以就继续检查一下一位字母,直到位数达到n就停止,再看一下,这个值是否在a和b范围之间#includebits/stdc++.h #define int long long using namespace std; int n; int a,b; int flag; void dfs(int u,int sum) { if(u == n) { if(sum = a sum = b) { cout sum '\n'; flag = 1; } return ; } for(int i = 0; i = 9; i ++) { if(i == 0 u == 0) continue; int z = sum * 10 + i; if(z % (u + 1) != 0) continue; dfs(u + 1, z); } } signed main() { cin n a b; // a = max(a,(int)pow(10,n - 1)); // b = min(b,(int)pow(10,n) - 1); dfs(0,0); if(!flag) puts("No Solution"); return 0; }L2-055 胖达的山头题目大意:给了你n段熊猫的时间点,让你看一下一个时间点最多有几个大熊猫思路:先把时间点全部转换为秒就行,然后用前缀和和差分来处理就行#includebits/stdc++.h using namespace std; const int N = 1e5 + 10; int a[N]; int main() { int n; cin n; for(int i = 1; i = n; i ++) { int b,c,d,e,f,g; scanf("%d:%d:%d %d:%d:%d",b,c,d,e,f,g); int start = b * 3600 + c * 60 + d; int en = e * 3600 + f * 60 + g; a[start] += 1; a[en + 1] -=1; } int res = 0; for(int i = 1; i = 24 * 3600 - 1; i ++) { a[i] += a[i - 1]; res = max(res,a[i]); } cout res '\n'; return 0; }L2-054 三点共线思路:这道题因为y只能是0 1 2中的一个,然后3重循环 肯定会超时,想办法优化到2重循环.#includebits/stdc++.h using namespace std; const int N = 1e6 + 10; vectorintA,B; bool st[2 * N]; int main() { int n; cin n; for(int i = 1; i = n; i ++) { int x,y; cin x y; if(y == 0) A.push_back(x); else if(y == 1) B.push_back(x); else { st[x + N] = true; } } sort(A.begin(),A.end()); A.erase(unique(A.begin(),A.end()),A.end()); sort(B.begin(),B.end()); B.erase(unique(B.begin(),B.end()),B.end()); int flag = 1; for(auto is : B) { for(auto it :A) { int x = 2 * is - it; if(abs(x) N st[N + x]) { flag = 0; cout "[" it ", 0] [" is ", 1] [" x ", 2]" endl; } } } if(flag == 1) puts("-1"); }L2-053 算式拆解思路:这道考查的是 对栈的运用,这道题目还是比较好理解的,从左往右遍历,遇到不是 ')' 都存储起来,遇到')' 从栈里面输出,直到遇到'(' 停止输出,将输出的结果翻转一下输出。补充:可以再去找几道 前缀表达式 和 后缀表达式的题 练练#includebits/stdc++.h using namespace std; int main() { string s; cin s; stackcharst; for(int i = 0; i s.size(); i ++) { if(s[i] == ')') { string a =""; while(st.top() != '(') { a += st.top(); st.pop(); } st.pop(); reverse(a.begin(),a.end()); cout a '\n'; } else st.push(s[i]); } }L2-052 吉利矩阵题目大意:统计一下 满足条件“所有元素为非负整数,且各行各列的元素和都等于 L”的 N×N 方阵一共有多少种?思路:直接用dfs肯定会超时 + 剪枝就可以了#includebits/stdc++.h using namespace std; int L,N; int res = 0; int heng[10],lie[10]; void dfs(int x,int y) { if(x == N + 1 y == 1) { for(int i = 1; i = N; i ++) if(heng[i] != L || lie[i] != L) return ; res ++; return ; } for(int i = 0; i = 9; i ++) { if(heng[x] + i L) continue; if(lie[y] + i L) continue; if(y == N heng[x] + i != L) continue; if(x == N lie[y] + i != L) continue; heng[x] += i; lie[y] += i; if(y N) dfs(x,y + 1); else dfs(x + 1,1); heng[x] -= i; lie[y] -= i; } } int main() { cin L N; dfs(1,1); cout res '\n'; }L2-051 满树的遍历思路:这个直接用邻接表存储 可以直接用vector数组来模拟邻接表,也可以直接用add那个,建立一个树之后 就开始了前序遍历就行了 不难#includebits/stdc++.h using namespace std; const int N = 1e5 + 10; vectorinta[N]; int root; void dfs(int u) { if(u == root) { cout u; } else cout " " u; for(auto it : a[u]) { dfs(it); } } int main() { int n; cin n; for(int i = 1; i = n; i ++) { int x; cin x; if(x == 0) root = i; else a[x].push_back(i); } int flag = 1; int res = 0; for(int i = 1; i =n;i ++) { res = max(res,(int)a[i].size()); } cout res; for(int i = 1; i = n; i ++) { if(a[i].size() a[i].size() != res) { flag = 0; break; } } if(flag) cout " yes" endl; else cout " no" endl; dfs(root); }L2-050 懂蛇语思路:就是把每一句话的首字母提取出来,然后提取出来的首字母对应着一句话一开始没用stringstream z (s)导致有一个样例格式错误#includebits/stdc++.h using namespace std; mapstring,vectorstringmp; int main() { int n; cin n; getchar(); for(int i = 1; i = n; i ++) { string s; getline(cin,s); string ss =""; ss += s[0]; for(int i = 0; i s.size() - 1; i ++) { if(s[i] == ' ' s[i + 1] != ' ') ss += s[i + 1]; } mp[ss].push_back(s); } int k; cin k; getchar(); for(int i = 1; i = k; i ++) { string s; getline(cin,s); string ss =""; ss += s[0]; for(int j = 0; j s.size() - 1; j ++) { if(s[j] == ' ' s[j + 1] != ' ') ss += s[j + 1]; } if(mp[ss].size() == 0) cout s; else { sort(mp[ss].begin(),mp[ss].end()); for(int j = 0; j mp[ss].size(); j ++) if(j == 0) cout mp[ss][j]; else cout "|"mp[ss][j]; } cout '\n'; } return 0; }用stringstream#includebits/stdc++.h using namespace std; mapstring,vectorstringmp; int main() { int n; cin n; getchar(); for(int i = 1; i = n; i ++) { string s; getline(cin,s); string ss =""; stringstream z (s); string a; while(z a) { ss += a[0]; } mp[ss].push_back(s); } int k; cin k; getchar(); for(int i = 1; i = k; i ++) { string s; getline(cin,s); string ss =""; stringstream z (s); string a; while(z a) { ss += a[0]; } if(mp[ss].size() == 0) cout s; else { sort(mp[ss].begin(),mp[ss].end()); for(int i = 0; i mp[ss].size(); i ++) if(i == 0) cout mp[ss][i]; else cout "|"mp[ss][i]; } cout '\n'; } return 0; }stringstream z (s)stirng a;while(z a){}L2-049 鱼与熊掌思路:简单的离谱,就是开一个set的数组,存储他拥有的物品,然后用find 看一下查找的那两个物品是否在这里面,就可以了#includebits/stdc++.h using namespace std; const int N = 1e5 + 10; int n,m; setinta[N]; int main() { cin n m; for(int i = 1; i = n; i ++) { int k; cin k; for(int j = 1; j = k; j ++) { int x; cin x; a[i].insert(x); } } int k; cin k; while(k --) { int l,r; cin l r; int res = 0; for(int i = 1; i = n; i ++) if(a[i].find(l) != a[i].end() a[i].find(r) != a[i].end()) res ++; cout res '\n'; } return 0; }L2-048 寻宝图思路:很简单的一个bfs题目,遍历每个岛屿 在遍历的过程中,把岛屿变为海洋就行了#includebits/stdc++.h using namespace std; const int N = 1e5 + 10; string a[N]; int res,dao; int n,m; int dx[4] = {0,1,0,-1},dy[4] = {1,0,-1,0}; int flag; void dfs(int x,int y) { if(a[x][y] '1') flag = 1; a[x][y] = '0'; for(int i = 0; i 4; i ++) { int xx = x + dx[i], yy = y + dy[i]; if(xx = 0 xx n yy = 0 y m a[xx][yy] !='0') dfs(xx,yy); } } int main() { cin n m; for(int i = 0; i n; i ++) cin a[i]; for(int i = 0; i n; i ++) for(int j = 0; j m;j ++) if(a[i][j] != '0') { res ++; dfs(i,j); if(flag) dao ++; flag = 0; } cout res " " dao endl; return 0; }L2-047 锦标赛思路:初见这一道题感觉没思路,挺难的,然后参考别人代码,顿悟。#includebits/stdc++.h using namespace std; const int N = 1e6 + 10; int a[30][N]; int p[N]; bool dfs(int k,int j,int w) { if(k == 1) { if(w = a[k][j]) { p[2 * j] = w; p[2 * j - 1] = a[k][j]; return true; } else return false; } if(w a[k][j]) return false; if(dfs(k - 1,2 * j,w) dfs(k - 1,2 * j - 1,a[k][j])) return true; else if(dfs(k - 1,2 * j - 1,w) dfs(k - 1,2 * j,a[k][j])) return true; return false; } int main() { int n; cin n; for(int i = 1; i = n; i ++) for(int j = 1; j = pow(2,n - i); j ++) cin a[i][j]; int w; cin w; if(dfs(n,1,w)) { for(int i = 1; i = pow(2,n); i ++) if(i == 1) cout p[i]; else cout " " p[i]; } else { puts("No Solution"); } return 0; }这里先用数组将每一轮的败者存储起来然后就用递归,看看每一轮的胜者是不是=当前轮的败者,如果不是,就返回false,并用另外一个数组存储。dfs(k,j,w) k代表第几轮, j 代表第几个,w代表当前的胜者34 5 8 57 689首先dfs(3,1,9) 先让9胜者和第3轮第一个元素比较大小,如果符合,就有两种情况让9 和 7比 或者让9和6比 任何一个满足情况就行所以有了dfs(k - 1,2 * j,w) dfs(k -1 ,2 * j - 1,a[k][j])dfs(k - 1,2 * j,a[k][j] d

相关文章:

L2 天梯真题

L2-056 被n整除的n位数 题目大意: 给你一个n代表n位数字,再给你一个a,b, 让你找到一个n位数字在a 和 b 之间,n范围最大为15。 思路: 肯定不能直接用暴力,这道题应该用dfs,每次检查一下今加进来的数看看是否符合题目意思,如果可以就继续检查一下一位字母,直到位数达…...

Zitadel:开源身份认证与授权平台完全指南

Zitadel:开源身份认证与授权平台完全指南 背景 身份认证是应用安全的第一道防线。现代应用通常需要用户注册登录、第三方社交登录、API 授权等身份管理功能。从零开发一套安全可靠的身份认证系统需要投入大量精力。使用成熟的身份认证服务商可以快速解决问题&#x…...

如何快速安装kill-doc:免费文档下载的终极指南

如何快速安装kill-doc:免费文档下载的终极指南 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…...

windowns Ollama 下载,安装,本地部署大模型

一、相关链接 Ollama官网 https://ollama.com/ irm https://ollama.com/install.ps1 | iex paste this in PowerShell, or download Ollama 下载Ollama https://ollama.com/download 最新版本0.18.3 搜索模型 https://ollama.com/search 如搜索:deepseek&a…...

避开401和403:天地图API密钥在QGIS中配置的完整避坑指南

天地图API密钥在QGIS中的终极排错手册:从401到403的全面攻克 当你第一次尝试在QGIS中加载天地图服务时,那种期待与兴奋是难以言表的。但现实往往很骨感——地图窗口一片空白,或者弹出令人沮丧的401、403错误代码。作为一名GIS工程师&#xff…...

5步掌握ROFL播放器:从英雄联盟回放文件到深度分析实战指南

5步掌握ROFL播放器:从英雄联盟回放文件到深度分析实战指南 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 你是否曾遇到精彩…...

【OS】互斥锁和自旋锁的区别

阻塞行为互斥锁:加锁失败时,线程会进入阻塞状态,释放CPU资源,由操作系统调度其他线程执行。自旋锁:加锁失败时,线程会忙等待,持续循环检查锁的状态,不释放CPU资源。适用场景互斥锁&a…...

告别虚拟机!用ZYNQ7000和PYNQ 2.6.0打造一个能实时识别人脸的“智能摄像头”

从零构建基于ZYNQ7000的实时人脸识别系统:PYNQ实战指南 在边缘计算和物联网应用蓬勃发展的今天,将AI模型部署到嵌入式设备已成为工程师和开发者的必备技能。传统虚拟机方案虽然便于开发调试,但在实际部署时往往面临性能瓶颈和资源浪费的问题…...

5分钟搞定!Docker快速部署MQTT服务mosquitto(附手机APP测试指南)

5分钟极速搭建MQTT服务:DockerMosquitto实战全指南 MQTT协议作为物联网领域的"轻量级通信标准",正在重塑设备互联的底层逻辑。想象一下,当你需要快速验证一个智能家居原型,或是搭建工业传感器数据中转站时,传…...

新手避坑指南:用PHPStudy搭建DVWA靶场时,80端口被占用的3种解决方法

新手避坑指南:用PHPStudy搭建DVWA靶场时,80端口被占用的3种解决方法 在网络安全学习的道路上,DVWA(Damn Vulnerable Web Application)靶场无疑是一个极佳的实践平台。它模拟了各种常见的Web安全漏洞,让学习…...

保姆级教程:用Burp Suite Community 2024抓取DVWA本地请求(附证书配置避坑指南)

零基础实战:Burp Suite Community 2024本地抓包与DVWA渗透测试全指南 当你第一次尝试用Burp Suite拦截本地DVWA的请求时,大概率会遇到两个经典问题:浏览器显示"您的连接不是私密连接",或者Burp根本抓不到任何流量。这就…...

Image Signal Processing(ISP)-第二章-从Bayer到RGB:Demosaic算法详解与BMP编码实战

1. 从Bayer到RGB:Demosaic算法核心原理 第一次接触Bayer阵列数据时,我盯着那些红绿蓝相间的棋盘格直发懵——这玩意儿怎么变成正常照片?后来才明白,现代图像传感器的设计暗藏玄机。每个像素点只能捕获一种颜色信息,通过…...

就在2月5日!维普系统全面升级:查重库与AI算法双重施压,2026毕业季保姆级通关指南

正在熬夜肝论文的学弟学妹们,先别急着敲字,看这里。 就在2026年2月5日,维普公布论文检测系统完成了升级。这回可不是修几个Bug,换个好看界面这么简单,官方公告写的很明确,这次是专门针对现在的AIGC环境&am…...

OpenClaw飞书消息发送图片的坑:filePath 路径导致的显示差异

问题背景在使用 OpenClaw 的 message 工具向飞书发送本地图片时,遇到一个奇怪的问题:同一张图片,不同的保存路径会导致不同的显示效果。保存在 workspace 目录:图片直接显示预览保存在 /tmp 目录:图片显示为附件 &…...

Xray实战指南:从基础扫描到精准漏洞探测

1. Xray安全评估工具入门指南 第一次接触Xray时,我被它简洁的命令行界面和强大的扫描能力所震撼。作为一款由资深安全专家打造的开源工具,Xray在渗透测试领域已经成为了许多专业人士的"瑞士军刀"。与市面上那些需要复杂配置的商业化扫描器不同…...

开超市做门头都需要注意那几点

开超市的门头核心就一件事:远看醒目、近看放心、路人一眼知道是超市、城管物业都能过。 一、风格与定位(决定档次) 社区超市 简洁、干净、亲民、明亮 关键词:生活超市、便民超市、生鲜超市、便利店 生鲜 / 综合超市 偏生活化&…...

Gemini 应用登陆 Mac:免费下载,开启快捷集成的桌面 AI 体验!

Gemini 应用登陆 MacGemini 应用现已作为原生 macOS 应用推出,为用户在桌面端提供更快捷、更集成的 AI 帮助体验。它支持 macOS 15 及以上版本,用户可在 gemini.google/mac 免费下载该应用,直接在桌面获取 AI 协助。使用快捷键 Option Space…...

百度网盘秒传脚本深度解析:三步实现永久文件分享的创新革命

百度网盘秒传脚本深度解析:三步实现永久文件分享的创新革命 【免费下载链接】rapid-upload-userscript-doc 秒传链接提取脚本 - 文档&教程 项目地址: https://gitcode.com/gh_mirrors/ra/rapid-upload-userscript-doc 在数字信息爆炸的时代,文…...

4diacIDE IEC61499 开发环境编译实战:从源码到可执行文件的完整指南

1. 4diacIDE与IEC61499开发环境概述 第一次接触4diacIDE时,我被它强大的分布式控制系统开发能力所吸引。作为基于IEC61499标准的开源工具链,4diac主要由两部分组成:用于开发的IDE环境和用于运行的Forte平台。IDE基于Eclipse框架用Java开发&a…...

Burst传输技术解析:如何通过突发模式提升数据传输效率

1. 什么是Burst传输技术? 当你用手机看高清视频时,有没有想过为什么画面能流畅加载?这背后就有Burst传输技术的功劳。简单来说,Burst传输就像超市购物时用推车一次性拿货,而不是徒手来回跑多趟。这种技术通过连续批量传…...

RT-Thread下PTP协议同步精度优化指南:从30us到10MHz的进阶之路

RT-Thread下PTP协议同步精度优化指南:从30us到10MHz的进阶之路 在金融交易系统、5G基站等对时间同步精度要求极高的场景中,微秒级误差都可能导致严重后果。本文将带您深入探索RT-Thread实时操作系统下PTP协议的同步精度优化之道,从STM32内置方…...

URL扫描与SQL注入实战解析

问题解构 针对用户提出的“URL扫描的核心及反渗透攻击sql注入的方式”这一查询,我们需要将其拆解为两个核心部分进行深入剖析: URL扫描的核心技术:主要探讨在安全测试或攻击准备阶段,如何通过技术手段高效地发现目标系统的活跃页…...

PLC小白必看!用Codesys仿真6层电梯避坑指南(含免费工程文件)

PLC零基础实战:用Codesys仿真6层电梯的完整避坑手册 第一次打开Codesys时,面对满屏的梯形图和功能块,大多数新手都会感到无从下手。电梯控制作为工业自动化领域的经典案例,恰好能串联从基础语法到高级封装的完整知识链。本文将用最…...

模型性能评估框架EvalScope

EvalScope是由阿里巴巴魔搭社区(ModelScope)推出的开源模型评估与性能基准测试框架,专为大语言模型(LLM)和多模态模型提供统一、系统化的性能评估方案,支持从基础能力到复杂场景的全链路评估。 一、核心功能…...

DolphinScheduler任务管理避坑指南:停止、暂停操作背后的7个关键处理器与性能隐患

DolphinScheduler任务管理避坑指南:停止、暂停操作背后的7个关键处理器与性能隐患 在生产环境中,任务调度系统的稳定性直接影响着业务连续性。当我们面对一个运行中的流程实例需要紧急停止或暂停时,系统内部究竟发生了什么?为什么…...

Ai通识与基础-认识人工智能

认识人工智能智能产生的要素影响大模型智能的核心要素有三点:模型算法。首先是模型算法,现在的AI都是采用神经网络架构,你可以把它看做是AI的大脑,是决定AI是否”聪明”的基础。海量数据。AI也是一样,要想让AI产生智慧…...

IBM与联想服务器ServerGuide:一站式下载与版本兼容性全解析

1. ServerGuide工具到底是什么? 第一次接触IBM和联想服务器的朋友,可能会被各种安装配置步骤搞得头大。这时候ServerGuide就像个贴心的装机助手,它能自动识别你的服务器型号,帮你把操作系统、驱动程序和必要组件一次性装好。我十年…...

Windows和Office激活难题?3个简单步骤让你告别烦恼

Windows和Office激活难题?3个简单步骤让你告别烦恼 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统弹出的激活提醒而头疼吗?Office突然变成只读模式&am…...

谁将赢得2026年菲尔兹奖获?

目录前言热门人选什么是菲尔兹奖?参考文献前言 2026年国际数学家大会(ICM)将于今年夏天在美国费城举办,备受瞩目的菲尔兹奖也将在大会期间会颁发,届时将会有2至4名年龄不超过40岁的有卓越贡献的数学家奖分享该奖项&am…...

PyTorch加载.pth文件报错?别慌!教你区分‘整个模型’和‘仅参数’的两种加载方式

PyTorch模型加载实战:从.pth文件解析到迁移学习避坑指南 当你从GitHub下载了一个PyTorch预训练模型,满心欢喜地准备在自己的项目中使用时,突然遇到KeyError: missing_keys或RuntimeError: Error(s) in loading state_dict这类错误——这种场景…...