2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)
同步赛链接
A-原初的信纸(最值,STL)
题意:
找 n 个数的最大值.
参考代码:
void solve() {int n;std::cin >> n;std::vector<int> a(n);for (auto &c : a)std::cin >> c;std::cout << *max_element(a.begin(), a.end()) << '\n';
}
B-骑士的对决(思维)
模拟题.(博弈)
思路:
从守卫骑士的两张牌入手,如果守卫骑士拥有 'S' 和 ‘J’,那么对于远征骑士,如果他拥有‘S’那么,出于守卫骑士已经知道远征骑士选的牌了,所以他会选择 ‘S’ ,这样就是平局,相反,如果远征骑士拥有 'J' ,那么守卫骑士必定拿出 ‘S’来战胜对方,如果远征骑士拥有 ‘B’,那么守卫骑士必定拿出 ‘J’来战胜对方,所以要么平局,要么是守卫骑士赢.剩下的两种情况参考第一种情况进行模拟即可.
参考代码:
#include <bits/stdc++.h>//模拟using ll = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);char c;std::string s;std::cin >> s >> c;std::map<char, bool> mp;mp[s[0]] = true, mp[s[1]] = true;if (mp['S'] && mp['J']){if (c == 'S') {std::cout << "lyrnb";} else {std::cout << "pmznb";} } else if (mp['S'] && mp['B']) {if (c == 'B') {std::cout << "lyrnb";} else {std::cout << "pmznb";}} else {if (c == 'J') {std::cout << "lyrnb";} else {std::cout << "pmznb";} }return 0;
}
C-秘密的议会(算数)
直接计算即可.
参考代码:
void solve() {int cnty{}, cntn{};std::string s;std::cin >> s;std::transform(s.begin(), s.end(), s.begin(), ::tolower);for (char c : s) {cnty += (c == 'y');cntn += (c == 'n');}int len = s.size();if (cnty >= len / 2) {std::cout << "pmznb\n";} else if (cntn >= len / 2) {std::cout << "lyrnb\n";} else {std::cout << "wsdd\n";}
}
D-城市的税金(模拟)
模拟+计算.
参考代码:
void solve() {int n, m;std::cin >> n >> m;std::vector<int> a(n + 1);for (int i = 1; i <= n; i++) {std::cin >> a[i];}int op, l, r;while (m--) {std::cin >> op >> l >> r;if (op == 1) {for (int i = l; i <= r; i++)a[i] = 1ll * a[i] * 251 % 996 * 404 * 123;} else {std::map<ll, ll> mp;ll max = -1;for (int i = l; i <= r; i++) {mp[a[i]]++;}for (auto it : mp) {max = std::max(max, it.second);}std::cout << max << '\n';}}
}
E-缺席的神官(贪心)
思路:
先把所给数组的间隔存入一个新数组,然后从小到大排序,遍历该数组到 1 ~ x-k+1,累加起来组后再加上 k 即可。
参考代码:
void solve() {int n, m, k;std::cin >> n >> m >> k;std::vector<int> a(n + 1), b(n + 1);for (int i = 1; i <= n; i++)std::cin >> a[i];for (int i = 1; i < n; i++)b[i] = a[i + 1] - a[i];std::sort(b.begin() + 1, b.end() - 1);ll sum = std::accumulate(b.begin() + 1, b.begin() + n + 1 - k, 0LL);std::cout << sum + k;
}
F-失踪的玫瑰(思维)
思路:
思维题,要求一定能找到且次数最少的方案,那么我们就要考虑最差的情况,也就是尽量不要让我们找到的情况,那么一开始的玫瑰一定在边上,可以分为四种情况:
n == 1:直接输出 1 。
n == 2:直接取两次 1 ,为了使得字典序最小,所以不取 2.
n > 2 && n % 2 == 1:例如 n == 7,最差的情况是玫瑰一开始在 7 ,然后一直在 7 和 6 徘徊,这样我们得从 2 遍历到 6 ,找到 6 的时候花在 7 的盒子上,那么我们再遍历一遍,当再次找到 6 的时候花就一定在 6 的盒子上。自己多演算几遍就知道了。为什么玫瑰一开始不在 1 上呢,为了使得字典序最小嘛!
n > 2 && n % 2 == 0:例如 n == 6,最差的情况是玫瑰一开始在 1 ,然后一直在 1 和 2 徘徊,这样我们得从 2 遍历到 5,找到 5 的时候花在 2 的盒子上,然后再从 5 找到 2,找到 2 的时候就一定能找到花了。
其实以上的思路就是通过紧逼,一次不行就再来一次,从而使得一定可以找到花。
参考代码:
void solve() {int n;std::cin >> n;if (n & 1) {for (int i = 2; i < n; i++)std::cout << i << " ";for (int i = 2; i < n; i++)std::cout << i << ' ';} else {for (int i = 2; i < n; i++)std::cout << i << " ";for (int i = n - 1; i >= 2; i--)std::cout << i << ' ';}std::cout << '\n';
}
G-虚数的纸牌(模拟)
参考代码:
int change(char s) {if (s >= '3' && s <= '9')return s - '0';if (s == '0')return 10;if (s == 'J')return 11;if (s == 'Q')return 12;if (s == 'K')return 13;if (s == 'A')return 14;if (s == '2')return 15;
}void solve() {std::string s;std::cin >> s;int res = s.size(); // 单int cnt[16] = {0};for (char c:s) {cnt[change(c)]++; // 出现次数}for (int i = 3; i <= 15; i++) {if (cnt[i] >= 2)res += 1ll * cnt[i] * (cnt[i] - 1) / 2; // 对子if (cnt[i] == 4) {res++; // 炸弹res += 4 * (s.size() - 4); // 三带一,减去自己的4张for (int j = 3; j <= 15; j++) {if (i != j) {res += 4ll * cnt[j] * (cnt[j] - 1) / 2; // 三带二}} }else if (cnt[i] == 3) {res += s.size() - 3; // 三带一for (int j = 3; j <= 15; j++) {if (i != j) {res += 1ll * cnt[j] * (cnt[j] - 1) / 2; // 三带二}}}if (i <= 11) {int t = 1;for (int j = 0; j < 5; ++j) // 五单顺子t *= cnt[i + j];res += t;}}std::cout << res << '\n';
}
H-绵羊的银币(思维)
思路:
这道题以 2 的幂次方从为区间不断递增,区间内都是一个相同的数,且区间其实就是斐波那契数列,所以只需要知道 n 是属于哪一个区间即可。
参考代码:
#include <bits/stdc++.h>using ll = long long;ll f[99];void solve() {ll p = 1, x = 0, n;std::cin >> n;while (p <= n)p <<= 1, x++;std::cout << f[x - 1] << '\n';
}int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t;std::cin >> t;f[0] = f[1] = 1;for (int i = 2; i <= 90; i++) //初始化f[i] = f[i - 1] + f[i - 2];while (t--) {solve();}return 0;
}
I-迷途的怪物(思维)
如果 n 是奇数的话,(p -1)^ n 对 p 取模,结果还是 p - 1;如果是偶数的话,结果就是 1.
参考代码:
void solve() {std::string s;int p;std::cin >> p >> s;if ((s.back()-'0') & 1) {std::cout << p - 1 << '\n';} else {std::cout << "1\n";}
}
J-简单的数学(数学题)

参考代码:
void solve() {int n;std::cin >> n;if (n & 1) {std::cout << 1ll * (n + 1) * n << '\n';} else {std::cout << 1ll * (n + 1) * n * (-1) << '\n';}
}
K-消亡的质数(思维,数学)
思路:
立方差公式为 p = a^3 - b^3 = (a - b) (a^2 + ab + b^2),两个数的乘积本来应该是合数,但 p 确实质数,说明两个乘数中有一个为 1,可想而知 a - b = 1,那么 p = a^2 + a*b + b^2,题目就变得简单了,只要枚举判断是否存在这样相邻的两个数的立方差等于 p。
参考代码:
#include <bits/stdc++.h>using ll = long long;ll judge(ll x) {if (x <= 0)return 0;for (ll i = 1; i * i + i * (i + 1) + (i + 1) * (i + 1) <= x; i++) {if (i * i + i * (i + 1) + (i + 1) * (i + 1) == x) {return 1;}} return 0;
}
int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t;std::cin >> t;while (t--) {ll p;std::cin >> p;std::cout << (judge(p) ? "YES\n" : "NO\n");}return 0;
}
L-危险的台阶(思维)
我首先想的是从最高(外)处那块石板开始考虑,假设每块石板的长度为1。当只有一块石阶时,显然,由于石板密度均匀,一块长度为1的石板的重心即为1/2,因此,最大伸出长度为1/2。然后,考虑两块石板时的情况,如下图。只需找到两块石板的重心即可,显然可得,最大长度为1/2+1/4=3/4。结果应是 (1/2)L+(1/4)L+(1/6)L+…+(1/2n)L(可根据重心联立方程组解得第三块石板伸出长度为1/6).
参考代码:
#include <bits/stdc++.h>using ll = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);ll n, l, m;std::cin >> n >> l >> m;double sum = 0,s = 2;int i = 1;while (n--) {sum += l / (s * i++);}std::cout << std::fixed << std::setprecision(4) << sum;return 0;
}
M-破碎的愿望(思维,STL)
思路:
该题数很大,要定义为长整型。由于字符串变化都是把字符串翻转后接到原字符串后面无限延伸,所以无限延伸的字符串只不过是所给字符串翻转后接到所给字符串得到的新字符串为循环节一直循环增加。我们只需要把 k 对所得到循环节字符串长度取余后输出相应位置的字符。
注意: 有一个特判,如果取余后为 0,说明是最后一个字符。
参考代码:
#include <bits/stdc++.h>using ll = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);ll n, k;std::string s;std::cin >> n >> k >> s;ll x = k % (n * 2);std::string s1 = s;std::reverse(s1.begin(), s1.end());s = s + s1;if (x == 0) {std::cout << s[n * 2 - 1];} else {std::cout << s[x - 1];}return 0;
}相关文章:
2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)
同步赛链接 A-原初的信纸(最值,STL) 题意: 找 n 个数的最大值. 参考代码: void solve() {int n;std::cin >> n;std::vector<int> a(n);for (auto &c : a)std::cin >> c;std::cout << *max_element…...
生产Nginx现大量TIME-WAIT,连接耗尽,该如何处理?
背景说明: 在尼恩读者50交流群中,是不是有小伙伴问: 尼恩,生产环境 Nginx 后端服务大量 TIME-WAIT , 该怎么办? 除了Nginx进程之外,还有其他的后端服务如: 尼恩,生产环境…...
Linux服务器clang-13安装(环境变量配置)
1.从llvm的github网址选择合适的release合适的运行平台进行下载,下载官方预编译的二进制压缩包。 2.将下载好的压缩包进行本地上传。 使用scp命令进行上传 scp -r -P 端口号 本地文件路径 服务器ID等:服务器上目标地址 3.解压(tar命令) 4.环境变量配…...
【C++】C/C++内存管理模板初阶
文章目录一、 C/C内存管理1. C/C内存分布2. C内存管理方式3. operator new与operator delete函数4. new和delete的实现原理5. 定位new表达式6. 常见面试题malloc/free和new/delete的区别内存泄漏二、模板初阶1. 泛型编程2. 函数模板3. 类模板一、 C/C内存管理 1. C/C内存分布 …...
笙默考试管理系统-index展示
public class PageList<T> : List<T> { public int PageIndex { get; private set; } //页索引 public int PageSize { get; private set; }//页大小 public int TotalPage { get; private set; }//总页数 public int TotalCo…...
前端基础知识6
谈谈你对语义化标签的理解语义化标签就是具有语义的标签,它可以清晰地向我们展示它的作用和用途。 清晰的代码结构:在页面没有css的情况下,也能够呈现出清晰的代码内容 有利于SEO: 爬虫依赖标签来确定关键字的权重,因此可以和搜索…...
【项目精选】智慧物业管理系统
点击下载源码 1、 选题的背景、研究目的和意义 1)选题的背景 智慧物业是物业发展的必然趋势,是物业管理的一种新理念,是 新形势下社会管理创新的一种新模式。 随着人工智能、大数据、互联网等高新技术的发展,物业管理企 业先后试…...
解决HC-05/HC06等蓝牙模块的调试问题
解决HC-05/HC06等蓝牙模块的调试问题问题:1.无法使用USB转串口工具设置HC-05等蓝牙模块,具体问题是:发送AT指令,无回复;2.电脑如何连接HC-05模块,与模块通信(具体场景:HC-05模块的串…...
dfs(八)数字的全排列 (含有重复项与非重复项)
如果每个数字任意取的话。就不需要加book标志位 没有重复项数字的全排列_牛客题霸_牛客网 描述 给出一组数字,返回该组数字的所有排列 例如: [1,2,3]的所有排列如下 [1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1]. (以数字在数组中的位…...
基于微信小程序的医院挂号系统小程序
文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…...
工程经验:残差连接对网络训练的巨大影响
文章目录1、没有使用残差连接的网络难以训练2、loss 不下降的原因3、使用了残差连接的网络可以高效训练1、没有使用残差连接的网络难以训练 经典的 SegNet 网络结构如下: 在使用上图所示的 SegNet 作为噪声预测网络训练扩散模型(DDPM)时&…...
靓号管理-搜索
搜索手机号: 最后一条就是使用的关键mobile__contains 使用字典: 后端的逻辑: """靓号列表"""data_dict {}search_data request.GET.get(q, "")# 根据关键字进行搜索,如果关键字存在&…...
B站发帖软件哪个好用?好用的哔哩哔哩发帖工具
B站发帖软件哪个好用?好用的哔哩哔哩发帖工具#发帖软件#哔哩哔哩发帖#视频发布软件 登录成功之后,进入到这样一个界面,默认情况下是这个样子的,我们在这里输入一下我们的一个文件夹的路径,输入到这里,点击添加账号&a…...
docker
docker ps docker images 拉取ubuntu镜像 docker pull ubuntu 启动 docker start podid 进入bash界面 docker exec -it podid /bin/bash 安装sudo apt-get install sudo 更新使配置生效 sudo apt update 安装vim apt-get install vim 安装中文包 sudo apt-get i…...
Django by Example·第三章|Extending Your Blog Application@笔记
Django by Example第三章|Extending Your Blog Application笔记 之前已经写过两章内容了,继续第三章。第三章继续对博客系统的功能进行拓展,其中将会穿插一些重要的技术要点。 部分内容引用自原书,如果大家对这本书感兴趣 请支持原版Django …...
23.2.13 Drive development 设备树信息解析相关代码
1.练习课上代码 2.把设备树信息解析相关函数按照自己的理解发布CSDN 3.复习中断相关内核 IO多路复用---epoll 核心内容:一棵树一个链表三个方法 epoll会将要监听的事件文件描述符添加到内核里一颗红黑树上,当有事件发生,epoll会调用回调函数…...
智能工厂以MES系统为基础,实现"信息化减人,自动化换人"
MES是一种生产信息化的管理系统,它适用于制造业的车间实施层面。MES能够为企业提供生产数据、项目看板、库存、成本、工装、生产计划、计划排程、质量、人力资源、采购、生产过程控制、底层数据集成分析、上层数据集成分解等管理模块,为企业打造一个扎实…...
【数据挖掘实战】——电力窃漏电用户自动识别
【数据挖掘实战】——电力窃漏电用户自动识别一、背景和挖掘目标二、分析方法与过程1、初步分析2、数据抽取3、探索分析4、数据预处理5、构建专家样本三、构建模型1、构建窃漏电用户识别模型2、模型评价3、进行窃漏电诊断拓展思考项目代码地址:https://gitee.com/li…...
树莓派 安装 宝塔linux面板5.9. 2023-2-13
一.环境 1.硬件环境: 树莓派3b , 8GB tf卡 ,micro usb电源 2.网络环境: 网线直连路由器 , 可访问互联网 3.软件环境: 树莓派操作系统 CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-2009-sda(linux) 系统刻录工具 Win32DiskImager (win) ip扫描工具 Adv…...
如何提高短视频的播放量-4个技巧
做短视频自媒体,点击率是第一位,点击量越多,粉丝也就越多。可是,怎么才能增加短视频的点击率和提高播放量呢?今天就来教大家4个技巧: 1、蹭热点 热门话题自带流量,它的热度和价值,是…...
知识向量化实战指南:从模型选型到混合检索优化
1. 知识向量化的核心价值与应用场景 第一次接触知识向量化这个概念时,我也是一头雾水。直到在医疗知识库项目中亲眼看到"糖尿病治疗"和"血糖控制方案"这两个看似不同的查询,通过向量化后获得了0.92的相似度评分,才真正理…...
RBD_Timer:嵌入式轻量级多定时器时间轮调度框架
1. RBD_Timer 库深度解析:面向嵌入式实时系统的轻量级多定时器管理框架1.1 问题根源:Arduino 原生delay()与中断阻塞对实时性的破坏在 Arduino 生态中,delay()函数被广泛用于实现时间等待逻辑。然而其底层实现本质是忙等待(busy-w…...
STM32开发中的C语言高效编程技巧
STM32开发中的C语言高效编程技巧1. 位操作在寄存器控制中的应用1.1 位操作基础在STM32嵌入式开发中,C语言提供了六种基本位操作运算符:&按位与|按位或^按位异或~按位取反<<左移>>右移1.2 寄存器位操作技巧1.2.1 特定位置位/清零// 设置G…...
嵌入式软件工程师面试技术要点解析
嵌入式软件工程师面试技术要点解析1. 通信接口技术1.1 RS-485通信特性RS-485标准采用差分信号传输,物理层上支持全双工通信,但在实际应用中通常配置为半双工模式。这种设计选择主要基于以下工程考虑:半双工模式下只需一对双绞线,显…...
OpenClaw对比测试:Qwen3.5-9B与其他模型在自动化任务中的表现
OpenClaw对比测试:Qwen3.5-9B与其他模型在自动化任务中的表现 1. 测试背景与实验设计 最近在搭建个人自动化工作流时,我遇到了一个关键问题:OpenClaw框架下究竟该选择哪个大模型作为决策核心?为了找到答案,我花了三天…...
TVM终极模型剪枝指南:如何快速实现结构化与非结构化剪枝
TVM终极模型剪枝指南:如何快速实现结构化与非结构化剪枝 想要让深度学习模型跑得更快、占用更少内存?TVM的模型剪枝功能就是你的最佳选择!🚀 本文为你带来TVM剪枝的完整指南,从基础概念到实际应用,让你快速…...
计算机毕业设计springboot彝族民族文化宣传网站 基于SpringBoot的彝族非物质文化遗产数字化展示平台 SpringBoot框架下彝族传统风俗文化传播系统
计算机毕业设计springboot彝族民族文化宣传网站l36tn9 (配套有源码 程序 mysql数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联xi 可分享 在当今数字化浪潮席卷全球的背景下,少数民族文化的保护与传承面临着前所未有…...
基于微信小程序实现马拉松报名系统【附项目源码+论文说明】
基于java和微信小程序实现马拉松报名系统演示【内附项目源码LW说明】摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了马拉松报名系统微信小程序的开发全过程。通过分析马拉松报名系统微信小程序管理的不足&…...
用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流
用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流 在内容创作领域,音频正成为越来越重要的媒介形式。无论是知识付费课程的讲解、播客节目的制作,还是智能设备的语音交互,一个稳定、个性化的语音合成系统都…...
RMBG-1.4动态演示:AI净界处理长发人物的流畅抠图过程
RMBG-1.4动态演示:AI净界处理长发人物的流畅抠图过程 1. 引言:当抠图遇上飘逸长发 你有没有遇到过这样的烦恼?想给一张长发飘飘的人像照片换个背景,结果发现发丝边缘怎么都处理不干净,要么像被狗啃过一样参差不齐&am…...
