ZZJC新生训练赛第七场题解

news/2024/10/21 20:31:13

难度分类(同一难度下按字典序上升)

  • 入门: C
  • 简单: G, D
  • 中等: E, H, F, A
  • 困难: B

C-解题思路

数一下每个字母的数量看是不是偶数就可以得到答案。

C-代码实现

#include <bits/stdc++.h>int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);std::string s;std::cin >> s;std::vector<int> c(26);for (auto ch: s) {c[ch - 'a']++;}int f = 1;for (auto x: c) {if (x % 2) {f = 0;break;}}if (f) {std::cout << "Yes";} else {std::cout << "No";}
}

G-解题思路

直接用梯形面积公式计算即可,注意数据范围, \((a+b)*h\) 的最大值已经来到了 \(2e19\),这已经超出了long long甚至unsigned long long的范围,然而题目保证了 \(h\) 是偶数,而 \(1e19\) 是在unsigned long long范围内的,因此只需要把 \(h/2\) 放前面算就行了,即 \(h/2*(a+b)\) 。(也可以用int128计算结果后强转unsigned long long输出,Python虽然内置高精度,但是本题多测卡掉了)

G-代码实现

#include <bits/stdc++.h>using u64 = unsigned long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);int t;std::cin >> t;while (t--) {u64 a, b, h;std::cin >> a >> b >> h;std::cout << h / 2 * (a + b) << "\n";}
}

D-解题思路

按照题意模拟即可,本题卡了ceil,需要用(a+b-1)/b进行向上取整,注意数据范围,本题需要long long

D-代码实现

#include <bits/stdc++.h>using i64 = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);int n;std::cin >> n;i64 ans;std::cin >> ans;for (int i = 1; i < n; i++) {int x;std::cin >> x;if (ans >= x) {ans = (ans + x - 1) / x;} else {ans = ans + x;}}std::cout << ans;
}

E-解题思路

按照题意模拟即可,看谁的牌先为空就输出答案。

E-代码实现

#include <bits/stdc++.h>using i64 = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);std::string sa, sb, sc;std::cin >> sa >> sb >> sc;std::map<char, std::string> mp{{'a', sa}, {'b', sb}, {'c', sc}};char ans = 'a';while (!mp[ans].empty()) {char c = mp[ans].front();mp[ans].erase(mp[ans].begin());ans = c;}std::cout << (char)toupper(ans);
}
# Python写水题的简短代码可以学习一下
dic = {'a': list(input()), 'b':list(input()), 'c':list(input())}
c = 'a'
while dic[c]:c = dic[c].pop(0)
print(c.upper())

H-解题思路

范围相当小,纯暴力计算答案即可。

H-代码实现

#include <bits/stdc++.h>int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);int n, ans = 1e9;std::cin >> n;std::vector<int> a(n);for (int i = 0; i < n; i++) {std::cin >> a[i];}for (int i = -100; i <= 100; i++) {int t = 0;for (int j = 0; j < n; j++) {t += (a[j] - i) * (a[j] - i);}ans = std::min(ans, t);}std::cout << ans;
}

F-解题思路

范围相当小,纯暴力计算答案即可,注意第三个值可以用前两个值直接算出来,不要三层循环(不要将值放到容器中统计长度,这样会mle)。

F-代码实现

#include<bits/stdc++.h>using i64 = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);int k, s, cnt = 0;std::cin >> k >> s;for (int x = 0; x <= k; x++) {for (int y = 0; y <= k; y++) {if (0 <= s - x - y && s - x - y <= k) {cnt++;}}}std::cout << cnt;
}

A-解题思路

因为不会同时不喜欢1-9,所以其实最终的答案是不会大于10n的,而n的范围是1e4,所以从n开始+1遍历就行了。

A-代码实现

#include <bits/stdc++.h>int main(){std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);int n, k;std::cin >> n >> k;std::set<char> st;for (int i = 0; i < k; i++) {char ch;std::cin >> ch;st.insert(ch);}int ans = n;while (1) {int f = 0;std::string s = std::to_string(ans);for (auto ch: s) {if (st.count(ch)) {f = 1;break;}}if (f) {ans++;} else {std::cout << ans;break;}}
}
# Python写水题的简短代码可以学习一下
n, k = map(int, input().split())
d = set(input().split())
ans = n
while set(str(ans)) & d:ans += 1
print(ans)

B-解题思路

范围很小可以直接dfs爆搜,将符号插在每个数字间的情况全考虑一遍即可

B-代码实现

#include <bits/stdc++.h>using i64 = long long;
i64 ans = 0;void dfs(std::string s, int pos, i64 num, i64 sum) {if(pos == s.size()) {  // pos是考虑了多少个数字,如果等于size说明全考虑了ans += sum + num;return;}// num是最新的加号后面的那个数字,sum是前面所有数字运算后的和dfs(s, pos + 1,  num * 10 + (s[pos] - '0'), sum); // 不插入加号dfs(s, pos + 1, s[pos] - '0', sum + num);  // 插入加号
}int main(){std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);std::string s;std::cin >> s;dfs(s, 1, s[0] - '0', 0);std::cout << ans << "\n";
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

20222420 2024-2025-1 《网络与系统攻防技术》实验二实验报告

20222420 2024-2025-1 《网络与系统攻防技术》实验二实验报告 1.实验内容 1.1 本周学习内容 1.1.1 后门介绍后门概念:不经过正常认证流程而访问系统的通道 后门类型:编译器、操作系统、应用程序中的后门,潜伏于OS或伪装成APP的后门程序1.1.2 后门案例编译器后门:Xcode 操作…

tms fnc ui

tms fnc uitms fnc ui 这组界面控件,支持DELPHI的VCL和FMX,还支持FPC的LCL。 1)TTMSFNCNavigationPanel2)TTMSFNCTileList3)本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/18490245

第6课 测试用例设计

1.黑盒测试方法2.白盒测试方法术语一: • 动态测试(dynamic testing):通过运行软件的组 件或 系统来测试软件 • 静态测试(static testing):对组件的规格说明书 进行 评审,对静态代码进行走查 • 正式评审(formal review):对评审过程及需求文 档的 一种特定评审 • …

转载 兔兔电脑机器码修改工具1.0

使用说明: 1.关闭**毒软件(1.易语言编写可能会误报 2.需要修改系统信息可能会被拦截); 2.管理员运行; 3.根据需要修改机器码(部分系统需要运行兼容性初始化) 4.修改主板会屏蔽网卡,所以要先修改网卡然后再修改主板; 5.重启电脑即可恢复,网卡修改不会恢复,需要手动改…

机器学习基本介绍

1、人工智能概述 人工智能发展必备三要素:数据 算法 计算力 CPU,GPU,TPU计算力之CPU、GPU对比:CPU主要适合I\O密集型的任务GPU主要适合计算密集型任务 1.1、工智能、机器学习和深度学习的关系人工智能和机器学习,深度学习的关系:机器学习是人工智能的一个实现途径深度学习…

考场环境 NoiLinux 测试

觉得还是有必要提前练一下 用的是官网的 NoiLinux.iso 全程断网下载 虽然不知道实机预安装系统时是不是断网的 NoiLinux,但是保险一点还是选了断网省选的时候,Windows 里只有画图和 Dev-C++分辨率非常构式,需要手动调分辨率,咱们电脑是 1920*1080(没找到适配这个电脑的分辨…

面试题速刷 - 知识广度2

有哪些前端攻击?如何预防? XSS 跨站脚本攻击预防:尖括号替换,Vue中用插值{}不会发生XSS攻击。 CSRF 跨站请求伪造预防:服务端严格控制跨域,验证机制二次确认 SameSite禁止第三方cookie 点击劫持演示一下:预防: 1.判断两个iframe域名是否一致 2.让当前网页只在自己ifram…