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

### 2024 江西省赛题解(A,C,D,G,H,J,K,L) BEFI待补

A.

输出 a + b + c a+b+c a+b+c 即可。

void slove () {int a, b, c;cin >> a >> b >> c;cout << (a + b + c) << endl;
}
B.
C.

如果 ∑ i = 1 n a i = S \sum_{i=1}^{n}a_i=S i=1nai=S 那么存在所有人说的都是真话的可能。

否则,我们可以假设 n − 1 n-1 n1 个人说的是真话,最后一个人是假话。

void slove () {int n, s;cin >> n >> s;vector <int> a(n + 1);for (int i = 1; i <= n; i++) {cin >> a[i];s -= a[i];}if (s == 0) cout << n << endl;else cout << n - 1 << endl;
}
D.

x , y x,y x,y 的最大公约数是 d d d,最小公倍数是 l c m lcm lcm,则有 x = k 1 d , y = k 2 d , l c m = x y d x=k_1d,y=k_2d,lcm=\frac{xy}{d} x=k1d,y=k2d,lcm=dxy

思考一个问题,对 x , y x,y x,y 进行操作后,它们求和会变大还是变小?

x + y = ( k 1 + k 2 ) d x+y=(k_1+k_2)d x+y=(k1+k2)d d + l c m = ( k 1 k 2 + 1 ) d d+lcm=(k_1k_2+1)d d+lcm=(k1k2+1)d

对于任意正整数都有 k 1 + k 2 ≤ k 1 k 2 + 1 k_1+k_2\leq k_1k_2+1 k1+k2k1k2+1。所以我们能用操作就用操作。

当什么时候取等号?设 ( k 1 ≤ k 2 ) (k_1\leq k_2) (k1k2),则当且仅当 k 1 = 1 k_1=1 k1=1 时取等号,也就是 x x x y y y 的因子时取等号。

往更本质思考, g c d gcd gcd 的操作是把 x , y x,y x,y 的每种质因子最小出现次数留下后组成的值, l c m lcm lcm 是把 x , y x,y x,y 中每种质因子的最多出现次数留下来组成的值。

当什么时候和取最大?当任意操作都会取等号的时候。

也就是当数组中任意两个数都成倍数关系的时候。

所以可以对于每种质因子,为每种质因子创建一个出现次数列表,将出现次数最多的依次从后往前分配。

使得最后的数最大,次大, ⋯ \cdots ,直到最小。

int power(int a, int b) {int s = 1;while (b) {if (b & 1) s = s * a % MOD;a = a * a % MOD;b >>= 1;}return s;
}void solve () {int n;cin >> n;map <int, vector <int>> mp;for (int i = 1; i <= n; i++) {int x;cin >> x;for (int j = 2; j * j <= x; j++) {int cnt = 0;while (x % j == 0) {x /= j;cnt ++;}if (cnt) mp[j].emplace_back(cnt);}if (x > 1) mp[x].emplace_back(1);}vector <int> ans (n + 1, 1);for (auto &[a, v] : mp) {int bnt = n;sort (v.begin(), v.end());while (v.size()) {ans[bnt--] = ans[bnt] * power(a, v.back()) % MOD;v.pop_back();}}int sum = 0;for (int i = 1; i <= n; i++) sum = (sum + ans[i]) % MOD;cout << sum << endl;}
E.
F.
G.

如果一个数是 5 5 5 的倍数,它的最后一位必须是 5 5 5 0 0 0

因为是 11 11 11 进制,不管是 11 11 11 的多少次幂,其个位数都是 1 1 1

题目给出的是 a b 表示连续 a b × 1 1 α b\times 11^{\alpha} b×11α,答案就是累加 a × b a\times b a×b 的值。

最终判断是否是 5 5 5 的倍数即可。

void solve () {int n;cin >> n;int sum = 0;for (int i = 1; i <= n; i++) {int a; char b;cin >> a >> b;if (b == 'A') {continue;} else {sum += a*(int)(b - '0');}}cout << (sum % 5 == 0 ? "Yes" : "No") << endl;
}
H.

转换为计算 K K K 中的每一位对最终答案的贡献。

最好是画图模拟这个样例。

发现 K 1 , 1 K_{1,1} K1,1 的贡献是 I I I 矩阵的 ( 1 , 1 ) ∼ ( 1 + n − k , 1 + m − l ) (1,1)\sim (1+n-k,1+m-l) (1,1)(1+nk,1+ml)

发现 K i , j K_{i,j} Ki,j 的贡献是 I I I 矩阵的 ( i , j ) ∼ ( i + n − k , j + m − l ) (i,j)\sim (i+n-k,j+m-l) (i,j)(i+nk,j+ml)

如果 I I I 矩阵的 ( i , j ) ∼ ( i + n − k , j + m − l ) (i,j)\sim (i+n-k,j+m-l) (i,j)(i+nk,j+ml) 大于 0 0 0 那么 K i , j K_{i,j} Ki,j 1 1 1 即可,如果小于 0 0 0 − 1 -1 1,否则取 0 0 0

const int N = 1e3 + 7;int I[N][N], K[N][N], S[N][N];void slove () {int n, m, k, l;cin >> n >> m >> k >> l;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cin >> I[i][j];S[i][j] = S[i - 1][j] + S[i][j - 1] + I[i][j] - S[i - 1][j - 1];}}auto getS =[&](int x1, int y1, int x2, int y2) {return S[x2][y2] - S[x1 - 1][y2] - S[x2][y1 - 1] + S[x1 - 1][y1 - 1];};int ans = 0;for (int i = 1; i <= k; i++) {for (int j = 1; j <= l; j++) {int x1 = i, y1 = j;int x2 = i + n - k, y2 = j + m - l;int sum = getS(x1, y1, x2, y2);ans += (sum > 0 ? sum : -sum);}}cout << ans << endl;
}
I.
J.

模拟。

void solve () {string s;cin >> s;// 判断一下是不是 Thirteen Orphansstring temp = s;map <char, set<int>> mp;for (int i = 0; i < 28; i += 2) {mp[s[i + 1]].insert((int)(s[i] - '0'));}bool is_Thirteen = true;for (auto i : mp) {if (i.first == 'p' or i.first == 's' or i.first == 'm') {if (i.second.size() != 2 or !i.second.count(1) or !i.second.count(9)) {is_Thirteen = false;break;}} else {if (i.second.size() != 7) {is_Thirteen = false;break;}} }if (is_Thirteen) {cout << "Thirteen Orphans" << endl;return;}map <pair<char,char>, int> mmp;for (int i = 0; i < 28; i += 2) {mmp[pair<char,char>{s[i], s[i + 1]}]++;}bool is_Pairs = true;int bnt = mmp.size();for (auto i : mmp) {if (i.second != 2) is_Pairs = false;}if (bnt == 7 and is_Pairs) {cout << "7 Pairs" << endl;return;}cout << "Otherwise" << endl;
}
K.

输出 2 n − 1 2^{n-1} 2n1

int power (int a, int b, int mod) {int s = 1;while (b) {if (b & 1) s = s * a % mod;a = a * a % mod;b >>= 1;}return s;
}void slove () {int n;cin >> n;cout << power(2, n - 1, 998244353ll) << endl;
}
L.

首先对 K K K 个点都跑一遍单源最短路 D i j k s t r a Dijkstra Dijkstra,时间复杂度 O ( k n l o g n ) O(knlogn) O(knlogn)

需要观察到一个很重要的性质:门开和门关最多执行 2 K 2K 2K 次,其他时候都是承接上一秒的状态,对于上一秒的状态直接记录即可。门开和门关时重新计算一下每个点到哪个门是最近的。

时间复杂度是 O ( T + 2 k 2 n ) O(T+2k^2n) O(T+2k2n)

#define int long long
#define endl '\n'
#define PII pair<int,int>
#define INF 1e18
const int N = 1e5 + 7;int d[20][N], flag[20][N], a[N], door[20];
vector <PII> g[N];
int n, m, k, T;void dijkstra(int start) {int s = start;start = door[start];priority_queue <PII, vector<PII>, greater<>> q;for (int i = 1; i <= n; i++) d[s][i] = INF;d[s][start] = 0;q.push(PII{0, start});while (q.size()) {auto [road, u] = q.top();q.pop();if (flag[s][u]) continue;flag[s][u] = 1;for (auto [v, w] : g[u]) {if (d[s][v] > road + w) {d[s][v] = road + w;q.push(PII{d[s][v], v});}}}
}void slove () {cin >> n >> m >> k >> T;for (int i = 1; i <= n; i++) {cin >> a[i];}map <int, PII> mp;for (int i = 1; i <= k; i++) {int l, r;cin >> door[i] >> l >> r;mp[door[i]] = {l, r};}for (int i = 1; i <= m; i++) {int u, v, w;cin >> u >> v >> w;g[u].emplace_back(v, w);g[v].emplace_back(u, w);}for (int i = 1; i <= k; i++) {dijkstra(i);}vector <vector<int>> dp(2, vector<int>((1 << 16), -2));for (int i = 1; i <= T; i++) {int state = 0;bool is_fail = false;for (int j = 1; j <= k; j++) {auto [l, r] = mp[door[j]];if (l <= i and i <= r) {state |= (1 << j);}}if (dp[(i - 1) % 2][state] != -2) {dp[i % 2][state] = dp[(i - 1) % 2][state];cout << dp[i % 2][state] << endl;} else {int sum = 0;for (int j = 1; j <= n; j++) {int dis = INF;for (int t = 1; t <= k; t++) {if (state & (1 << t)) {dis = min(dis, d[t][j]);}}if (dis == INF) {is_fail = true;break;} else sum += a[j]*dis;}if (is_fail) dp[i % 2][state] = -1;else dp[i % 2][state] = sum;cout << dp[i % 2][state] << endl;}}
}

相关文章:

### 2024 江西省赛题解(A,C,D,G,H,J,K,L) BEFI待补

A. 输出 a b c abc abc 即可。 void slove () {int a, b, c;cin >> a >> b >> c;cout << (a b c) << endl; }B. C. 如果 ∑ i 1 n a i S \sum_{i1}^{n}a_iS ∑i1n​ai​S 那么存在所有人说的都是真话的可能。 否则&#xff0c;我们…...

Ruby 类和对象

Ruby 类和对象 引言 在软件开发中,类和对象是面向对象编程(OOP)的核心概念。Ruby 作为一种动态、解释型编程语言,也以简洁的方式支持面向对象编程。本文将深入探讨 Ruby 中的类和对象,包括它们的定义、创建、使用以及一些高级特性。 类与对象的定义 类 在 Ruby 中,类…...

【自学笔记】JavaWeb的重点知识点-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 JavaWeb知识点一、基础概念二、项目结构三、Tomcat服务器四、数据库连接&#xff08;JDBC&#xff09;五、前端技术六、高级技术 总结 以下是JavaWeb知识点的MD格式…...

OpenCV:闭运算

目录 1. 简述 2. 用膨胀和腐蚀实现闭运算 2.1 代码示例 2.2 运行结果 3. 闭运算接口 3.1 参数详解 3.2 代码示例 3.3 运行结果 4. 闭运算的应用场景 5. 注意事项 相关阅读 OpenCV&#xff1a;图像的腐蚀与膨胀-CSDN博客 OpenCV&#xff1a;开运算-CSDN博客 1. 简述…...

智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程

智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程 github地址 https://github.com/xiaoxiaoranxxx/POT-ZHIYUN k8s搭建教程 首先下载代码文件 git clone https://github.com/xiaoxiaoranxxx/POT-ZHIYUN.git cd POT-ZHIYUN编译镜像 代码相关文件在github https://github.com/x…...

万物皆有联系:驼鸟和布什

布什&#xff1f;一块布十块钱吗&#xff1f;不是&#xff0c;大家都知道&#xff0c;美国有两个总统&#xff0c;叫老布什和小布什&#xff0c;因为两个布什总统&#xff08;父子俩&#xff09;&#xff0c;大家就这么叫来着&#xff0c;目的是为了好区分。 布什总统的布什&a…...

nodejs:js-mdict 的下载、安装、测试、build

js-mdict 项目的目录结构&#xff1a;js-mdict 项目教程 js-mdict 下载地址: js-mdict-master.zip 先解压到 D:\Source\ js-mdict 6.0.2 用了 ts (TypeScript) 和 Jest&#xff0c;增加了应用开发的难度&#xff0c;因为先要了解 ts 和 Jest。 参阅&#xff1a;测试与开发&a…...

< OS 有关 > 阿里云:轻量应用服务器 的使用 :轻量化 阿里云 vpm 主机

原因&#xff1a; &#xff1c; OS 有关 &#xff1e; 阿里云&#xff1a;轻量应用服务器 的使用 &#xff1a;从新开始 配置 SSH 主机名 DNS Tailscale 更新OS安装包 最主要是 清除阿里云客户端这个性能杀手-CSDN博客 防止 I/O 祸害系统 操作&#xff1a; 查看进程&#x…...

sqlzoo答案4:SELECT within SELECT Tutorial

sql练习&#xff1a;SELECT within SELECT Tutorial - SQLZoo world表&#xff1a; namecontinentareapopulationgdpAfghanistanAsia6522302550010020343000000AlbaniaEurope28748283174112960000000AlgeriaAfrica238174137100000188681000000AndorraEurope46878115371200000…...

Ubuntu全面卸载mysql

如果你已经看到whereis mysql输出了与MySQL相关的路径&#xff0c;说明MySQL仍然存在于系统中。要卸载MySQL&#xff0c;可以按照以下步骤操作&#xff0c;确保完全删除所有相关的文件和配置&#xff1a; 1. 停止MySQL服务 首先&#xff0c;停止MySQL服务&#xff1a; sudo …...

SOME/IP--协议英文原文讲解3

前言 SOME/IP协议越来越多的用于汽车电子行业中&#xff0c;关于协议详细完全的中文资料却没有&#xff0c;所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块&#xff1a; 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 Note: Thi…...

350.两个数组的交集 ②

目录 题目过程解法 题目 给你两个整数数组 nums1 和 nums2 &#xff0c;请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数&#xff0c;应与元素在两个数组中都出现的次数一致&#xff08;如果出现次数不一致&#xff0c;则考虑取较小值&#xff09;。可以不考虑…...

药店药品销售管理系统的设计与实现

标题:药店药品销售管理系统的设计与实现 内容:1.摘要 摘要&#xff1a;本文介绍了药店药品销售管理系统的设计与实现。该系统旨在提高药店的运营效率和管理水平&#xff0c;通过信息化手段实现药品销售、库存管理、财务管理等功能。本文详细阐述了系统的需求分析、设计思路、技…...

汽车蓝牙钥匙定位仿真小程序

此需求来自于粉丝的真实需求,假期没事,牛刀小试。 一、项目背景 如今,智能车钥匙和移动端定位技术已经相当普及。为了探索蓝牙 Beacon 在短距离定位场景下的可行性,我们搭建了一个简易原型:利用 UniApp 在移动端采集蓝牙信标的 RSSI(信号强度),通过三边定位算法估算钥…...

unity学习24:场景scene相关生成,加载,卸载,加载进度,异步加载场景等

目录 1 场景数量 SceneManager.sceneCount 2 直接代码生成新场景 SceneManager.CreateScene 3 场景的加载 3.1 用代码加载场景&#xff0c;仍然build setting里先加入配置 3.2 卸载场景 SceneManager.UnloadSceneAsync(); 3.3 同步加载场景 SceneManager.LoadScene 3.3.…...

四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)

四.4 Redis 五大数据类型/结构的详细说明/详细使用&#xff08; zset 有序集合数据类型详解和使用&#xff09; 文章目录 四.4 Redis 五大数据类型/结构的详细说明/详细使用&#xff08; zset 有序集合数据类型详解和使用&#xff09;1. 有序集合 Zset(sorted set)2. zset 有序…...

S4 HANA税码科目确定(OB40)

本文主要介绍在S4 HANA OP中税码科目确定(OB40)相关设置。具体请参照如下内容&#xff1a; 税码科目确定(OB40) 在以上界面维护“Transaction Key”的记账码。 在以上界面进一步维护“Transaction Key”确定科目的规则。 Chart of Account:用于明确该规则适用于什么科目表。 …...

DeepSeek的崛起与OpenAI的守擂:AI大模型时代的竞争新格局

DeepSeek的崛起与OpenAI的守擂&#xff1a;AI大模型时代的竞争新格局 近年来&#xff0c;全球生成式AI领域风起云涌&#xff0c;中国初创公司DeepSeek&#xff08;深度求索&#xff09;凭借一系列创新动作异军突起&#xff0c;引发行业热议。从发布对标GPT-4的MoE模型到开源轻量…...

CSDN的历史

CSDN(中国开发者网络,China Software Developer Network)是中国最具影响力的IT技术社区之一,其历史可追溯至1999年。以下是其发展历程和关键节点: --- **一、创立背景(1999年)** - **创始人**:蒋涛(国内知名技术人,曾参与金山软件早期开发)。 - **初衷**:为国内程…...

vim的特殊模式-可视化模式

可视化模式&#xff1a;按 v进入可视化模式 选中 y复制 d剪切/删除 可视化块模式: ctrlv 选中 y复制 d剪切/删除 示例&#xff1a; &#xff08;vim可视化模式的进阶使用&#xff1a;vim可视化模式的进阶操作-CSDN博客&#xff09;...

鸿蒙HarmonyOS实战-ArkUI动画(页面转场动画)_鸿蒙arkui tab 切换动画

PageTransitionExit({type?: RouteType,duration?: number,curve?: Curve | string,delay?: number}) 在HarmonyOS中&#xff0c;PageTransitionEnter和PageTransitionExit是用于控制页面切换动画的参数。它们分别表示页面进入和退出时的动画。1. type&#xff08;动画类型…...

UE5制作视差图

双目深度估计开源数据集很多都是用UE制作的&#xff0c;那么我们自己能否通过UE制作自己想要的场景的数据集呢。最近花了点时间研究了一下&#xff0c;分享给需要的小伙伴。 主要使用的是UnrealCV插件&#xff0c;UnrealCV是一个开源项目&#xff0c;旨在帮助计算机视觉研究人…...

根据每月流量和市场份额排名前20 的AI工具列表

ChatGPT&#xff1a;由Open AI研发&#xff0c;是一款对话式大型语言模型。它能够理解自然语言输入&#xff0c;生成连贯且符合逻辑的回复。可用于文本创作&#xff0c;如撰写文章、故事、诗歌&#xff1b;还能解答各种领域的知识问题&#xff0c;提供翻译、代码解释等服务&…...

前端学习-事件委托(三十)

目录 前言 课前思考 for循环注册事件 语法 事件委托 1.事件委托的好处是什么? 2.事件委托是委托给了谁&#xff0c;父元素还是子元素 3.如何找到真正触发的元素 示例代码 总结 前言 才子佳人&#xff0c;自是白衣卿相 课前思考 1.如果同时给多个元素注册事件&…...

记忆化搜索(5题)

是什么&#xff1f; 是一个带备忘录的递归 如何实现记忆化搜索 1.添加一个备忘录&#xff08;建立一个可变参数和返回值的映射关系&#xff09; 2.递归每次返回的时候把结果放到备忘录里 3.在每次进入递归的时候往备忘录里面看看。 目录 1.斐波那契数列 2.不同路径 3.最…...

【游戏设计原理】96 - 成就感

成就感是玩家体验的核心&#xff0c;它来自完成一件让自己满意的任务&#xff0c;而这种任务通常需要一定的努力和挑战。游戏设计师的目标是通过合理设计任务&#xff0c;不断为玩家提供成就感&#xff0c;保持他们的参与热情。 ARCS行为模式&#xff08;注意力、关联性、自信…...

Java小白入门教程:内置数据类型(四类八种)和引用数据类型

目录 一、内置数据类型&#xff08;四类八种&#xff09; 1. 整数类型&#xff08;四种子类型&#xff09; 2. 浮点类型&#xff08;两种子类型&#xff09; 3. 字符类型&#xff08;一种子类型&#xff09; 4. 布尔类型&#xff08;一种子类型&#xff09; 二、引用数据类…...

【设计测试用例自动化测试性能测试 实战篇】

&#x1f308;个人主页&#xff1a;努力学编程’ ⛅个人推荐&#xff1a; c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 设计测试用例…...

20-30 五子棋游戏

20-分析五子棋的实现思路_哔哩哔哩_bilibili20-分析五子棋的实现思路是一次性学会 Canvas 动画绘图&#xff08;核心精讲50个案例&#xff09;2023最新教程的第21集视频&#xff0c;该合集共计53集&#xff0c;视频收藏或关注UP主&#xff0c;及时了解更多相关视频内容。https:…...

抽象类与抽象方法详解

目录 一、 基本概念 1.抽象类&#xff08;Abstract Class&#xff09;&#xff1a; 2.抽象方法&#xff08;Abstract Method&#xff09;&#xff1a; 二、示例代码 抽象类 抽象方法 三、抽象类的使用场景 四、 抽象类与接口的对比 五、注意事项 六、总结 一、 基本概…...