2024睿抗编程赛国赛-题解

2024睿抗编程赛国赛题解

RC-u1 大家一起查作弊

题目重述

我们需要从给定的多行字符串中提取出所有的关键词,并计算这些关键词的可疑分数总和、总长度以及关键词的数量。具体步骤如下:

  1. 关键词定义:由大写字母、小写字母、数字组成的字符串,并且前后均为非大小写字母及数字(即关键词的边界是非字母数字字符或字符串的开头/结尾)。
  2. 可疑分数计算
    • 同时包含大写字母、小写字母、数字:+5 分
    • 同时包含(大写字母和数字)或(小写字母和数字):+3 分
    • 同时包含大写字母和小写字母:+1 分
    • 其他情况:+0 分
  3. 输出要求
    • 第一行:可疑分数的总和
    • 第二行:关键词的总长度和关键词的数量(用空格隔开)
输入示例
static void nnmMNBkf3kfa(){int fefvB4=2;int [][]fsdk9A=new int[fefvB4][fefvB4];fsdk9A[0][0]=1;for (int gfdgsUB3 = 0; gfdgsUB3 < fefvB4; gfdgsUB3++) {for (int fdnbXZ8 = 0; fdnbXZ8<fefvB4-gfdgsUB3-1; fdnbXZ8++) {fsdk9A[gfdgsUB3][fdnbXZ8+1]=fsdk9A[gfdgsUB3][fdnbXZ8]+gfdgsUB3+fdnbXZ8+2;fsdk9A[gfdgsUB3+1][fdnbXZ8]=fsdk9A[gfdgsUB3][fdnbXZ8]+gfdgsUB3+fdnbXZ8+1;break;}break;}
}
输出示例
155
276 54

算法思路

主要是要学会getline读取字符串;

code

#include <bits/stdc++.h>
using namespace std;
#define int long long 
bool check1(char ch)
{if (ch >= 'a' && ch <= 'z') return true;else if(ch >= 'A' && ch <= 'Z') return true;else if (ch >= '0' && ch <= '9') return true;return false;
}
int sc = 0, le = 0, cnt = 0;
signed main()
{string s;while (getline(cin, s)){for (int i = 0; i < s.size(); i ++){if (check1(s[i])){bool f1 = 0, f2 = 0, f3 = 0;int r = i;for (int j = i; j < s.size(); j ++)if (check1(s[j]))				r = j;else break;for (int j = i; j <= r; j ++){if (s[j] >= 'a' && s[j] <= 'z') f1 = 1;else if (s[j] >= 'A' && s[j] <= 'Z') f2 = 1;else if (s[j] >= '0' && s[j] <= '9')f3 = 1; }cnt ++;if (f1 && f2 && f3) sc += 5;else if ((f1 && f3) || (f2 && f3)) sc += 3;else if (f1 && f2) sc++;le += r - i + 1;i = r + 1;}}}cout << sc << endl;cout << le << " " << cnt ;return 0;} 

RC-u3 势均力敌

题目描述

给定一个整数 n n n 2 < n ≤ 4 2 < n \leq 4 2<n4)和 n n n 个不同的个位数字(数字在 [1, 9] 范围内),用这些数字组成的所有 n ! n! n! 个不同的 n n n 位数。需要将这些数字分成两组,满足以下条件:

  1. 两组的数字个数相等(即每组有 n ! / 2 n!/2 n!/2 个数字)。
  2. 两组的数字的平方和相等。

题目要求输出其中一组的数字,每个数字占一行。

输入格式
  • 第一行:正整数 n n n 2 < n ≤ 4 2 < n \leq 4 2<n4)。
  • 第二行: n n n 个不同的个位数字,用空格分隔。
输出格式
  • 输出其中一组的 n ! / 2 n!/2 n!/2 个数字,每个数字占一行。解不唯一时,输出任意一组均可。
示例

输入:

3
5 2 1

输出:

125
512
251

算法思路

因为 n 最大取4, 换算过来就是 24 中排列情况, 这期间又不是全部需要枚举,所以直接dfs深搜即可

第一个 dfs 把所有组合情况加在 v 中

第二个 dfs2 则枚举所有组合情况分成数量相同的两堆

code

#include <bits/stdc++.h>
using namespace std;
#define int long long
int n, sum;
int a[30];
vector<int> v, x;
bool st[30], st2[30], flag;
void dfs(int u, int x) {if (u == n) {v.push_back(x);return ;}for (int i = 0; i < n; i ++) {if (st[i]) continue;st[i] = 1;dfs(u + 1, x * 10 + a[i]);st[i] = 0;}
}void dfs2(int u)
{if (u == sum || flag) return ;if (x.size () == sum / 2){int s1 = 0, s2 = 0;for (int i = 0; i < sum; i ++) {if (st2[i]) s1 += v[i] * v[i];else s2 += v[i] * v[i];}if (s1 == s2) {flag = 1;for (auto c : x) {cout << c << endl;} return;}}x.push_back(v[u]);st2[u] = 1;dfs2(u + 1);st2[u] = 0;x.pop_back();dfs2(u + 1);
}signed main() {cin >> n;for (int i = 0 ; i < n; i ++ )cin >> a[i];dfs(0, 0);sum = v.size();dfs2(0);return 0;
}

RC-u4 City 不 City

题目描述

“City 不 City”是一个网络热梗,源于一位外国友人保保熊在直播旅游时用奇怪的腔调说“好 city,啊!”。现在,一些叛逆的年轻人喜欢在旅行时避开网红打卡点,选择一些小众的特色地方小城镇,不追求“city”,而是喜欢说“好 country,啊”。

给定各个城镇的旅游热度和城镇间的旅行花销,请为旅行者规划一条最经济的路线,并尽可能避开热度很高的网红点。

输入格式:
  • 第一行:4 个正整数 n(城镇数量,1 < n ≤ 10^3)、m(通路条数,1 ≤ m ≤ 5n)、s(出发地)、t(目的地)。
  • 第二行:n 个不超过 100 的正整数,表示 n 个城镇的旅游热度。
  • 接下来的 m 行:每行给出 uvcost,表示城镇 uv 之间有一条双向通路,花销为 cost(不超过 10^3 的正整数)。
输出格式:
  • st 的最小花销路线;若有多条相同最小花销的路线,选择途经城镇的最高旅游热度值最小的那条。
  • 输出格式:最小花销 最高热度值(若没有途经城镇,最高热度为 0)。
  • 如果无法从 s 走到 t,输出 Impossible
输入样例 1:
8 14 7 8
100 20 30 10 50 80 100 100
7 1 1
7 2 2
7 3 1
7 4 2
1 2 1
1 5 2
2 5 1
3 4 1
3 5 3
3 6 2
4 6 1
5 6 1
5 8 1
6 8 2
输出样例 1:
4 50
解释:

从 7 到 8 的最短路径有 3 条:

  1. 7->1->5->8(最高热度:max(100, 50) = 100)
  2. 7->2->5->8(最高热度:max(20, 50) = 50)
  3. 7->3->6->8(最高热度:max(30, 80) = 80)

选择最高热度最小的路径 7->2->5->8,输出 4 50

输入样例 2:
3 1 1 2
10 20 30
1 3 1
输出样例 2:
Impossible

算法思路

Dijstra() 标准模板题,主要是要处理好best数组,best数组用来记录路上的最高热度

code

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
const int N = 1e3 + 10, M = N * 10;
int h[N], e[M], ne[M], idx, w[M];
void add(int a, int b, int c) {e[idx] = b, w[idx] = c, ne[idx] = h[a], h[a] = idx ++ ;
}
int p[N], dist[N];
int best[N];  // 记录最高热度 
int n, m, s, t;
bool st[N];
void Dijstra() {memset(dist, 0x3f, sizeof dist);memset(best, 0x3f, sizeof best);dist[s] = 0;best[s] = 0;for (int i = 1; i <= n; i ++) {int v = -1;for (int j = 1; j <= n; j ++) {if (!st[j] && (v == -1 || dist[j] < dist[v] || (dist[j] == dist[v] && best[j] < best[v]))) v = j;}st[v] = 1;for (int i = h[v]; i != -1; i = ne[i]) {int j = e[i];int d = dist[v] + w[i];int be = max(best[v], j == t ? 0 : p[j]); // 如果不是终点,就把热度考虑进去 if ( d < dist[j] || (d == dist[j] && be < best[j])) {dist[j] = d;best[j] = be;}}}
}int main() {memset(h, -1,sizeof h);cin >> n >> m >> s >> t;for (int i = 1; i <= n; i ++) {cin >> p[i];}for (int i = 1; i <= m; i ++) {int a, b, c;cin >> a >> b >> c;add(a, b, c), add(b, a, c);}Dijstra();if (dist[t] == 0x3f3f3f3f)cout << "Impossible";else {cout << dist[t] << " " << best[t];}cout << endl;return 0;
}

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

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

相关文章

控制LED灯设备

本章分别使用C库和系统调用的文件操作方式控制开发板的LED灯&#xff0c;展示如何在应用层通过系统提供的设备文件控制相关硬件。 本章的示例代码目录为&#xff1a;base_code/linux_app/led/sys_class_leds。 9.1. LED子系统 在Linux系统中&#xff0c;绝大多数硬件设备都有…

SpringBoot学习(上) , SpringBoot项目的创建(IDEA2024版本)

目录 1. SpringBoot介绍 SpringBoot特点 2. SpringBoot入门 2.1 创建SpringBoot项目 Spring Initialize 第一步: 选择创建项目 第二步: 选择起步依赖 第三步: 查看启动类 2.2 springboot父项目 2.3 测试案例 2.3.1 数据库 2.3.2 生成代码 1. SpringBoot介绍 Spring B…

在 Ubuntu 中配置 Samba 实现「特定用户可写,其他用户只读」的共享目录

需求目标 所有认证用户可访问 Samba 共享目录 /path/to/home&#xff1b;**仅特定用户&#xff08;如 developer&#xff09;**拥有写权限&#xff1b;其他用户仅允许读取&#xff1b;禁止匿名访问。 配置步骤 1. 设置文件系统权限 将目录 /home3/guest 的所有权设为 develo…

ENSP-OSPF综合实验

AR4中通过ospf获取的其他区域路由信息&#xff0c;并且通过路由汇总后简化路由信息 实现全网通&#xff0c;以及单向重发布&#xff0c;以及通过缺省双向访问&#xff0c; 通过stub简化过滤四类五类lsa&#xff0c;简化ospf路由信息 通过nssa简化ospf信息 区域汇总简化R4路由信…

linux(centos)联网情况下部署

nginx部署 1.linux(centos)联网情况下部署 1.下载nginx所需依赖 # 安装开发工具组&#xff08;若未安装&#xff09; sudo yum groupinstall "Development Tools"# 安装 OpenSSL 开发包 sudo yum install openssl-devel# 安装 PCRE 开发包 sudo yum install pcre-…

LeetCode 1550.存在连续三个奇数的数组:遍历

【LetMeFly】1550.存在连续三个奇数的数组&#xff1a;遍历 力扣题目链接&#xff1a;https://leetcode.cn/problems/three-consecutive-odds/ 给你一个整数数组 arr&#xff0c;请你判断数组中是否存在连续三个元素都是奇数的情况&#xff1a;如果存在&#xff0c;请返回 tr…

Android Framework学习四:init进程实现

文章目录 init流程简介init源码执行顺序执行顺序 init进程的具体工作事项挂载文件系统设置 SELinuxSecondStageMaininit.rc启动zygote和serviceManager进程的重要性serviceManager工作原理 Framework学习之系列文章 init流程简介 下面图片主要围绕 Android 系统中init进程的运…

HTTP/3展望、我应该迁移到HTTP/2吗

1. HTTP/3展望 HTTP/3 基于 QUIC 协议&#xff0c;完全解决了“队头阻塞”问题&#xff0c;弱网环境下的表现会优于 HTTP/2&#xff1b;QUIC 是一个新的传输层协议&#xff0c;建立在 UDP 之上&#xff0c;实现了可靠传输&#xff1b;QUIC 内含了 TLS1.3&#xff0c;只能加密通…

【大模型面试每日一题】Day 15:流水线并行的Bubble问题及其缓解方法

【大模型面试每日一题】Day 15&#xff1a;流水线并行的Bubble问题及其缓解方法 &#x1f4cc; 题目重现 &#x1f31f;&#x1f31f; 面试官&#xff1a;解释流水线并行&#xff08;Pipeline Parallelism&#xff09;的bubble问题及其缓解方法。 #mermaid-svg-Uz7WGsO8akW5F…

Windows环境下maven的安装与配置

1.检查JAVA_HOME环境变量 Maven是使用java开发的&#xff0c;所以必须知道当前系统环境中的JDK的安装目录。 搜索栏直接输入“cmd” 或者 WinR 输入cmd 在打开的终端窗口输入“echo %JAVA_HOME”&#xff0c;就可以看到jdk的位置了。 如果没有的话&#xff0c;请参考我的文章&a…

Kubernetes 集群部署应用

部署 Nginx 应用 命令行的方式 1. 创建 deployment 控制器的 pod # --imagenginx&#xff1a;这个会从 docker.io 中拉取&#xff0c;这个网站拉不下来 # kubectl create deployment mynginx --imagenginx# 使用国内镜像源拉取 kubectl create deployment mynginx --imaged…

如何使用依赖注入来实现依赖倒置原则?

依赖注入(Dependency Injection, DI)是实现依赖倒置原则(DIP)的具体技术手段,它通过将依赖对象的创建和管理交给外部容器,从而实现高层模块与低层模块的解耦。下面从原理、实现方式、框架应用及最佳实践四个方面详细解析: 一、依赖倒置原则(DIP)的核心思想 高层模块不…

python使用AES进行加密和解密

如果需要加密和解密功能,可以使用AES算法。以下是使用Python实现AES加密和解密的示例: from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from Crypto.Random import get_random_bytesdef aes_encrypt(data,

SaaS场快订首页的前端搭建【持续更新】

文章目录 一、创建页面二、配置路由三、写接口文件&#xff08;api&#xff09;1.定位的接口函数&#xff08;腾讯地图api&#xff09;实现代码&#xff1a; 2.获取场馆分类的数据3.获取附近场馆列表的数据 四、开发首页页面1.顶部区域2.搜索框3.场馆分类4.附近场馆列表 五、难…

深入解析 MQTT 协议:物联网通信的基石

在当今物联网蓬勃发展的时代&#xff0c;设备之间高效、可靠的通信变得至关重要。MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;协议&#xff0c;作为一种轻量级的消息传输协议&#xff0c;正逐渐成为物联网通信的基石&#xff0c;广泛应用于各种场景中。 …

在Python中计算函数耗时并超时自动退出

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 方法1:使用装饰器结合信号模块(仅Unix-like系统)方法2:使用多线程(跨平台解决方案)方法3:使用concurrent.futures(Python 3.2+)方法4:使用 multiprocessing + Process(跨平台)​方法5:使用 time 手动计…

理解c++中explicit关键字的作用

理解c中explicit关键字的作用 explicit 关键字的作用是防止构造函数被隐式调用&#xff0c;从而避免意外的类型转换 #include <iostream> class Vec3 { public://构造函数没有被explicit修饰Vec3(float value): x(value), y(value), z(value){}Vec3(float val1, float …

不止是UI库:React如何重塑前端开发范式?

React&#xff1a;引领现代前端开发的声明式UI库 在当今快速发展的前端世界&#xff0c;React以其声明式、组件化和高效的特性&#xff0c;稳坐头把交椅&#xff0c;成为构建交互式用户界面的首选JavaScript库。本文将带你快速了解React的核心魅力、主要优势以及生态发展&…

理解 Token 索引 vs 字符位置

以下是对“理解 Token 索引与字符位置的区别”的内容整理&#xff0c;条理清晰&#xff0c;结构完整&#xff0c;保持技术细节&#xff0c;方便阅读&#xff0c;无多余解释&#xff1a; &#x1f50d; 理解 Token 索引 vs 字符位置 文本分块方法中返回的索引是 token 索引&…

《异常链机制详解:如何优雅地传递Java中的错误信息?》

大家好呀&#xff01;&#x1f44b; 作为一名Java开发者&#xff0c;相信你一定见过各种奇奇怪怪的异常报错。但有没有遇到过这样的情况&#xff1a;明明只调用了一个方法&#xff0c;却看到异常信息像俄罗斯套娃一样一层层展开&#xff1f;&#x1f914; 这就是我们今天要讲的…