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

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-原初的信纸(最值&#xff0c;STL&#xff09; 题意&#xff1a; 找 n 个数的最大值. 参考代码&#xff1a; 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,连接耗尽,该如何处理?

背景说明&#xff1a; 在尼恩读者50交流群中&#xff0c;是不是有小伙伴问&#xff1a; 尼恩&#xff0c;生产环境 Nginx 后端服务大量 TIME-WAIT &#xff0c; 该怎么办&#xff1f; 除了Nginx进程之外&#xff0c;还有其他的后端服务如&#xff1a; 尼恩&#xff0c;生产环境…...

Linux服务器clang-13安装(环境变量配置)

1.从llvm的github网址选择合适的release合适的运行平台进行下载&#xff0c;下载官方预编译的二进制压缩包。 2.将下载好的压缩包进行本地上传。 使用scp命令进行上传 scp -r -P 端口号 本地文件路径 服务器ID等:服务器上目标地址 3.解压(tar命令&#xff09; 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

谈谈你对语义化标签的理解语义化标签就是具有语义的标签&#xff0c;它可以清晰地向我们展示它的作用和用途。 清晰的代码结构&#xff1a;在页面没有css的情况下&#xff0c;也能够呈现出清晰的代码内容 有利于SEO: 爬虫依赖标签来确定关键字的权重&#xff0c;因此可以和搜索…...

【项目精选】智慧物业管理系统

点击下载源码 1、 选题的背景、研究目的和意义 1&#xff09;选题的背景 智慧物业是物业发展的必然趋势&#xff0c;是物业管理的一种新理念&#xff0c;是 新形势下社会管理创新的一种新模式。 随着人工智能、大数据、互联网等高新技术的发展&#xff0c;物业管理企 业先后试…...

解决HC-05/HC06等蓝牙模块的调试问题

解决HC-05/HC06等蓝牙模块的调试问题问题&#xff1a;1.无法使用USB转串口工具设置HC-05等蓝牙模块&#xff0c;具体问题是&#xff1a;发送AT指令&#xff0c;无回复&#xff1b;2.电脑如何连接HC-05模块&#xff0c;与模块通信&#xff08;具体场景&#xff1a;HC-05模块的串…...

dfs(八)数字的全排列 (含有重复项与非重复项)

如果每个数字任意取的话。就不需要加book标志位 没有重复项数字的全排列_牛客题霸_牛客网 描述 给出一组数字&#xff0c;返回该组数字的所有排列 例如&#xff1a; [1,2,3]的所有排列如下 [1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1]. &#xff08;以数字在数组中的位…...

基于微信小程序的医院挂号系统小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器…...

工程经验:残差连接对网络训练的巨大影响

文章目录1、没有使用残差连接的网络难以训练2、loss 不下降的原因3、使用了残差连接的网络可以高效训练1、没有使用残差连接的网络难以训练 经典的 SegNet 网络结构如下&#xff1a; 在使用上图所示的 SegNet 作为噪声预测网络训练扩散模型&#xff08;DDPM&#xff09;时&…...

靓号管理-搜索

搜索手机号&#xff1a; 最后一条就是使用的关键mobile__contains 使用字典&#xff1a; 后端的逻辑&#xff1a; """靓号列表"""data_dict {}search_data request.GET.get(q, "")# 根据关键字进行搜索&#xff0c;如果关键字存在&…...

B站发帖软件哪个好用?好用的哔哩哔哩发帖工具

B站发帖软件哪个好用?好用的哔哩哔哩发帖工具#发帖软件#哔哩哔哩发帖#视频发布软件 登录成功之后&#xff0c;进入到这样一个界面&#xff0c;默认情况下是这个样子的&#xff0c;我们在这里输入一下我们的一个文件夹的路径&#xff0c;输入到这里&#xff0c;点击添加账号&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笔记 之前已经写过两章内容了&#xff0c;继续第三章。第三章继续对博客系统的功能进行拓展&#xff0c;其中将会穿插一些重要的技术要点。 部分内容引用自原书&#xff0c;如果大家对这本书感兴趣 请支持原版Django …...

23.2.13 Drive development 设备树信息解析相关代码

1.练习课上代码 2.把设备树信息解析相关函数按照自己的理解发布CSDN 3.复习中断相关内核 IO多路复用---epoll 核心内容&#xff1a;一棵树一个链表三个方法 epoll会将要监听的事件文件描述符添加到内核里一颗红黑树上&#xff0c;当有事件发生&#xff0c;epoll会调用回调函数…...

智能工厂以MES系统为基础,实现"信息化减人,自动化换人"

MES是一种生产信息化的管理系统&#xff0c;它适用于制造业的车间实施层面。MES能够为企业提供生产数据、项目看板、库存、成本、工装、生产计划、计划排程、质量、人力资源、采购、生产过程控制、底层数据集成分析、上层数据集成分解等管理模块&#xff0c;为企业打造一个扎实…...

【数据挖掘实战】——电力窃漏电用户自动识别

【数据挖掘实战】——电力窃漏电用户自动识别一、背景和挖掘目标二、分析方法与过程1、初步分析2、数据抽取3、探索分析4、数据预处理5、构建专家样本三、构建模型1、构建窃漏电用户识别模型2、模型评价3、进行窃漏电诊断拓展思考项目代码地址&#xff1a;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个技巧

做短视频自媒体&#xff0c;点击率是第一位&#xff0c;点击量越多&#xff0c;粉丝也就越多。可是&#xff0c;怎么才能增加短视频的点击率和提高播放量呢&#xff1f;今天就来教大家4个技巧&#xff1a; 1、蹭热点 热门话题自带流量&#xff0c;它的热度和价值&#xff0c;是…...

搜索二叉树

文章目录二叉搜索树模拟实现InsertInsertR()EraseEraseR搜索树的价值实现代码二叉搜索树 在二叉树的基础之上, 左子树的值都比根节点小&#xff0c;右子树都更大。那么他的左右子树也分别叫做二叉搜索树。 查找一个节点,最多查找高度次(建立在这个树是比较均衡的).10亿里面找…...

CentOS8基础篇5:用户账号与用户组的创建

一、用户与用户组概念 Linux是一个多用户、多任务的服务器操作系统&#xff0c;多用户多任务指可以在系统上建立多个用户&#xff0c;而多个用户可以在同一时间内登录同一个系统执行各自不同的任务&#xff0c;而互不影响。 Linux用户是根据角色定义的&#xff0c;具体分为三…...

阿里云服务器使用

服务器配置CPU&内存&#xff1a;2核(vCPU)2 GiB操作系统&#xff1a;Ubuntu 22.04 64位运行环境部署因为部署用到了nodejs首先&#xff0c;打开终端&#xff0c;并输入以下命令以安装必要的软件包&#xff1a;sudo apt-get install curl接着&#xff0c;使用 curl 命令安装…...

全国空气质量排行,云贵川和西藏新疆等地空气质量更好

哈喽&#xff0c;大家好&#xff0c;春节刚刚过去&#xff0c;不知道大家是不是都开始进入工作状态了呢&#xff1f;春节期间&#xff0c;允许燃放烟花爆竹的地区的朋友们不知道都去欣赏烟花表演没有&#xff1f;其他地区的朋友们相比烟花表演可能更关心燃放烟花爆竹造成的环境…...

Learning C++ No.8【内存管理】

引言&#xff1a; 北京时间&#xff1a;2023/2/12/18:04&#xff0c;昨天下午到达学校&#xff0c;摆烂到现在&#xff0c;该睡睡&#xff0c;该吃吃&#xff0c;该玩玩&#xff0c;在一顿操作之下&#xff0c;目前作息调整好了一些&#xff0c;在此记录&#xff0c;2月11&…...

『 MySQL篇 』:MySQL表的相关约束

基础篇 MySQL系列专栏(持续更新中 …)1『 MySQL篇 』&#xff1a;库操作、数据类型2『 MySQL篇 』&#xff1a;MySQL表的CURD操作3『 MySQL篇 』&#xff1a;MySQL表的相关约束文章目录 1 . 非空约束 (not null)2 . 唯一性约束(unique)3 . check约束4 . 默认约束(default)5 . 主…...

家政服务小程序实战教程10-分类展示

小程序一般底部菜单栏会有一个分类的功能&#xff0c;点击分类&#xff0c;以侧边栏导航的形式列出所有类目&#xff0c;点击某个类目可以做数据筛选&#xff0c;我们本篇就实现一下该功能 01 优化数据源 在我们家政服务小程序里&#xff0c;我们已经建立了类型和服务的数据源…...

一篇文章带你学会Ansible的安装及部署

目录 前言 一、什么是Ansible 二、Ansible的工作方式 三、Ansible的安装 四、构建Anisble清单 1、清单书写方式 2、清单查看 3、清单书写规则 4、主机规格的范围化操作 五、ansible命令指定清单的正则表达式 六、 Ansible配置文件参数详解 1、配置文件的分类与优先…...

opencv常用函数

1)读视频 img cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) if vc.isOpened():ret, frame vc.read() else:ret False while ret:#此处省略具体的操作ret, frame vc.read() # 读下一帧 vc.release() 2&#xff09;保存视频 def mk_video_writer(vc, path&#xff0c;frame_…...

Java集合框架常见面试题

1. 剖析面试最常见问题之 Java 集合框架 1.1. 集合概述 1.1.1. Java 集合概览1.1.2. 说说 List,Set,Map 三者的区别&#xff1f;1.1.3. 集合框架底层数据结构总结 1.1.3.1. List1.1.3.2. Set1.1.3.3. Map 1.1.4. 如何选用集合?1.1.5. 为什么要使用集合&#xff1f; 1.2. Colle…...

台州千寻网站建设公司/深圳网络营销推广中心

使用tree命令导出windows的文件夹/文件的目录树 TREE [drive:][path] [/F] [/A] /F 显示每个文件夹中文件的名称。&#xff08;带扩展名&#xff09; /A 使用 ASCII 字符&#xff0c;而不使用扩展字符。 tree /f > list.txt -- 将带扩展名的文件目录输出到list.txt…...

做网站需要写程序/江苏网站建站系统哪家好

使用情景如下&#xff1a;在访问 http://www.ehotel.com/admin/admin/hycgl.html 的时候、跳转到 http://www.ehotel.com/admin/index.php/admin/hycgl.html &#xff1b;在访问 http://www.ehotel.com/的时候、跳转到 http://www.ehotel.com/index.php/&#xff1b;//nginx.c…...

南昌有限公司 网站/百度seo教程视频

如果2020年全球共用一个表情&#xff0c;那应该是一张皱着眉头的、充满疑惑的脸。在漫长的居家隔离、艰苦的抗疫防疫中&#xff0c;2020年给每个人留下了满满的告诫与警示&#xff1a;人类必须重新思考与自然环境间的关系。这一年&#xff0c;疫情影响和改变了每个人的生活与工…...

做网站需要多少钱 做/东莞网站关键词优化排名

android西部牛仔横版跑酷冒险游戏源码Cowboy Runner&#xff0c;包含Buildbox和dEclipse工程文件&#xff0c;项目基于buildbox 2.2.8开发&#xff0c;支持关卡解锁和无限两种模式&#xff0c;兼容手机和平板电脑&#xff0c;支持AdMob广告&#xff0c;带声音开关、动画菜单、复…...

江苏连云港做网站/在线代理浏览网址

系统盘里带着那个啊具体步骤。。1运行GHOST,进入GHOST主页面 2在主页面单击OK按钮后依次执行Local\Partition\To lmage,命令 3接下来选择硬盘.用户装了几个硬盘,则此处就会出现几个选项. 4接下来,选择硬盘中的分区.选择需要的分区后,单击OK进入下一个步骤 5选择存放的地址和文件…...

郑州网站模板建设/东莞做网页建站公司

你可能还记得使用vue-cli 创建vue项目。当创建项目完成后&#xff0c;我们进入到项目目录&#xff0c;启动cmd命令窗口&#xff0c;输入npm install&#xff0c;它就会安装一堆东西(依赖)&#xff0c;然后再输入npm run dev, 我们就可以看到网页了&#xff0c;整个项目启动成功…...