2025寒假天梯赛训练1

news/2025/1/26 11:03:43/文章来源:https://www.cnblogs.com/Kescholar/p/18691586

2025寒假天梯赛训练1

7-1 心理阴影面积

思路

用一半的面积减去一个梯形和一个三角形面积即可。

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int a, b;cin >> a >> b;cout << (5000 - (100 - a) * 50 - b * 50) << "\n";return 0;
}

7-2 人与神

思路

直接输出即可。

代码

To iterate is human, to recurse divine.

7-3 通讯录的录入与显示

思路

按题意输出即可。

注意记录编号可能为负数

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n;cin >> n;vector<array<string,5>> s(n);for(auto &x : s){for(int i = 0;i < 5;i ++){cin >> x[i];}}	int k;cin >> k;while(k--){int x;cin >> x;if(x >= n || x < 0){cout << "Not Found\n";}else{cout << s[x][0] << " " << s[x][3] << " " << s[x][4] << " " << s[x][2] << " " << s[x][1] << "\n";}}return 0;
}

7-4 算术入门之加减乘除

思路

按题意要求输出即可。

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int a,b;cin >> a >> b;cout << a << " + " << b << " = " << a + b << "\n"	;cout << a << " - " << b << " = " << a - b << "\n"	;cout << a << " * " << b << " = " << a * b << "\n"	;if(a % b == 0){cout << a << " / " << b << " = " << a / b << "\n"	;}else{cout << fixed << setprecision(2) << a << " / " << b << " = " << a * 1.0 / b << "\n"	;}return 0;
}

7-5 出生年

思路

按题意模拟。

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int a,b;cin >> a >> b;int cs = a;while(1){set<int> has;if(a < 1000){has.insert(0);}int t = a;while(t){has.insert(t%10);t/=10;}if(has.size() == b){printf("%d %04d\n",a-cs,a);break;}a ++;}return 0;
}

7-6 九宫格输入法

思路

按题意模拟。

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);vector<string> s{"0 ","1,.?!","2ABC","3DEF","4GHI","5JKL","6MNO","7PQRS","8TUV","9WXYZ"};string x;while (cin >> x) {int a = x[0] - '0';int b = x.size();b--;b %= (int)s[a].size();cout << s[a][b];}return 0;
}

7-7 螺旋方阵

思路

按题意模拟。

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n;cin >> n;vector a(n + 1, vector(n + 1, 0));int has = 0, x = 1, y = 0;while (has < n * n) {while(y + 1 <= n && !a[x][y + 1]){y ++;a[x][y] = ++has;}while(x + 1 <= n && !a[x + 1][y]){x ++;a[x][y] = ++has;}while(y - 1 >= 1 && !a[x][y - 1]){y --;a[x][y] = ++has;}while(x - 1 >= 1 && !a[x-1][y]){x --;a[x][y] = ++has;}}for(int i = 1;i <= n;i ++){for(int j = 1;j <= n;j ++){cout << setw(3) << a[i][j];}cout << "\n";}return 0;
}

7-8 抓老鼠啊~亏了还是赚了?

思路

有点需要注意细节的模拟。

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);string s;cin >> s;int happy = 0, nohappy = 0, sad = 0;int nai = 0, now = 0;string ans = "";auto clear = [&]() {happy--;happy = max(happy, 0);nohappy--;nohappy = max(nohappy, 0);sad--;sad = max(sad, 0);};for (int i = 0; i < s.size() - 1; i ++) {if (s[i] == 'X') {if (happy || (!nohappy && !sad)) {ans += "U";nohappy = 2;} else {ans += "-";}} else if (s[i] == 'T') {if (happy || (!nohappy && !sad)) {ans += "D";now += 7;sad = 3;} else {ans += "-";}} else {if (happy || (!nohappy && !sad)) {ans += "!";now -= 3;happy = 3;} else {ans += "-";}}clear();}cout << ans << "\n" << now << "\n" ;return 0;
}

7-9 Windows消息队列

思路

用优先队列维护优先级即可。

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n;cin >> n;priority_queue<pair<int, string>,vector<pair<int, string>>,greater<pair<int, string>>> Q;while (n--) {string x;cin >> x;if (x == "GET") {if (Q.empty()) {cout << "EMPTY QUEUE!\n";} else {auto [_, s] = Q.top();Q.pop();cout << s << "\n";}} else {int m;cin >> x >> m;Q.emplace(m, x);}}return 0;
}

7-10 名人堂与代金券

思路

考察排序。

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n,g,k;cin >> n >> g >> k;vector<pair<string,int>> a(n);int need = 0;for(auto &[x,y] : a){cin >> x >> y;if(y >= g){need += 50;}else if(y >= 60){need += 20;}}	cout << need << "\n";sort(a.begin(),a.end(),[](auto x,auto y){if(x.second != y.second) return x.second > y.second;return x.first < y.first;});int rank = 1;for(int i = 0;i < n;i ++){if(rank > k) break;cout << rank << " " << a[i].first << " " << a[i].second << "\n";while(i + 1 < n && a[i + 1].second == a[i].second){i ++;cout << rank << " " << a[i].first << " " << a[i].second << "\n";}rank = i + 2;}return 0;
}

7-11 用扑克牌计算24点

思路

答辩题。

实际要注意的细节比较多,括号的顺序可以直接列出来然后挨个判断,其余的就是暴力搜索了。

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);string a[4];for (int i = 0; i < 4; i ++) {cin >> a[i];}auto check = [&](string & s)->bool{int i = 0;auto calc = [](double x, double y, char op)->double{if (op == '+') return x + y;if (op == '-') return x - y;if (op == '*') return x * y;return x * 1.0 / y;};auto Calc = [&](auto && self)->double{char op = '+';stack<double> st;for (; i < s.size(); i++) {if (s[i] == '(') {i ++;st.push(self(self));} else if (s[i] != ')') {if (isdigit(s[i])) {int x = s[i] - '0';if (isdigit(s[i + 1])) {x = x * 10 + s[i + 1] - '0';i ++;}st.push(x);} else {op = s[i];}} else {double y = st.top();st.pop();double x = st.top();st.pop();return calc(x, y, op);}}if (st.size() > 1) {double y = st.top();st.pop();double x = st.top();st.pop();st.push(calc(x, y, op));}return st.top();};bool ok = Calc(Calc) == 24;return ok;};string p = "+-*/";string s = "((2-(3+12))+12)";sort(a, a + 4);do {for (auto x : p) {for (auto y : p) {for (auto z : p) {s = "((" + a[0] + x + a[1] + ")" + y + a[2] + ")" + z + a[3];if (check(s)) {cout << s << "\n";return 0;}s = "(" + a[0] + x + a[1] + ")" + y + "(" + a[2] + z + a[3] + ")";if (check(s)) {cout << s << "\n";return 0;}s = a[0] + x + "(" + a[1] + y + "(" + a[2] + z + a[3] + "))" ;if (check(s)) {cout << s << "\n";return 0;}s = a[0] + x + "((" + a[1] + y + a[2] + ")" + z + a[3] + ")";if (check(s)) {cout << s << "\n";return 0;}s = "(" + a[0] + x + "(" + a[1] + y + a[2] + "))" + z + a[3];if (check(s)) {cout << s << "\n";return 0;}}}}} while (next_permutation(a, a + 4));cout << "-1\n";return 0;
}

7-12 玩转二叉树

思路

先用中序前序按层还原二叉树,然后对于每一层反向输出即可。

代码

#include <bits/stdc++.h>using namespace std;using i64 = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n;cin >> n;vector<int> pre(n), mid(n);for (int i = 0; i < n; i ++) {cin >> mid[i];}for (int i = 0; i < n; i ++) {cin >> pre[i];}map<int, vector<int>> tr;int len = 0;auto dfs = [&](auto && self, int rt, int st, int ed, int len)->void{if (st > ed) {return;}int root = st;while (root < ed && pre[rt] != mid[root]) {root ++;}self(self, rt + 1, st, root - 1, len + 1);self(self, rt + root - st + 1, root + 1, ed, len + 1);tr[len].emplace_back(pre[rt]);};dfs(dfs, 0, 0, n - 1, 0);vector<int> ans;for (int i = 0; i < n; i ++) {if (tr[i].size()) {for (int j = tr[i].size() - 1; j >= 0; j --) {ans.push_back(tr[i][j]);}}}for (int i = 0; i < n; i ++) {cout << ans[i] << " \n"[i == n - 1];}return 0;
}

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

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

相关文章

语音处理 开源项目 EchoSharp

开源项目 EchoSharp(https://github.com/sandrohanea/echosharp),专为近乎实时的音频处理而设计,可为各种音频分析范围无缝编排不同的 AI 模型。EchoSharp 的架构注重灵活性和性能,通过集成语音转文本和语音活动检测组件,实现近乎实时的转录和翻译。这个开源项目目前虽然…

【重磅解密】APJifengc 语录【/重磅解密】

重磅解密APJifengc 语录我:如何评价您带领两只动物获得第一名? APJ:我是 furry。11.16我模拟 6 号,我太牛了,哦哦哦哦哦哦哦哦哦。(我不是兽。)但是我是。11.15博客园团队已经没人回了。他已经死了。11.14这不平凡博吗。(你是 furry 吗?)是是是。太是了。(补充:这种…

Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到 Guid

在软件开发中,数据库主键的选择,Guid 还是自增整数 ID,一直是一个备受开发者关注和讨论的经典话题。作为开源 ChatGPT 前端项目 Sdcb Chats 的开发者,我们在这个问题上也经历了一系列探索和演进,颇具代表性。Sdcb Chats 项目致力于打造一个强大、易用、可高度定制的 ChatG…

越界智能监测摄像机

越界智能监测摄像机将不断演进。未来,我们可以预见更多创新功能的加入,比如更强大的数据处理能力、更高效的图像识别算法以及与其他安防系统(如报警系统、无人巡逻车)的深度整合。这不仅能提升整体安保水平,还能实现信息共享,提高反应速度。加强公众对这一新兴技术的认知…

攀高行为识别摄像机

攀高行为检测识别摄像机具有显著优势。首先,其高度自动化特性大幅降低了人工监控成本,提高了工作效率;其次,通过数据记录和分析,可以为后续的安全评估和改进提供有力支持。随着科技的发展,未来的攀高行为检测识别摄像机将变得更加智能化。例如,更强大的图像处理能力、更…

火情监测摄像机

火情监测摄像机广泛应用于工业园区、高层建筑、森林防火等领域。在工业园区,由于设备密集且易燃物品众多,安装监测摄像机可以实现24小时不间断监控。一旦发现异常情况,系统会迅速通知相关人员进行处理。在高层建筑中,这种设备能够帮助消防队员快速定位起火点,为灭火行动争…

第一届启航杯网络安全大赛部分wp

第一届启航杯 WEB Easy include <?php error_reporting(0); //flag in flag.php $file=$_GET[fil e]; if(isset($file)) {if(!preg_match("/flag/i",$file)){include($file);}else{echo("no no no ~ ");} } else {highlight_file(__FILE__); }?> …

车辆冲洗监测摄像机

车辆冲洗监测摄像机是一种结合了监控摄像技术和智能分析技术的先进设备,旨在通过实时监测和分析车辆冲洗过程中的情况,识别是否存在异常或问题,并及时发出警报通知相关人员。这种摄像机在汽车服务行业、物流运输领域、环境保护等方面有着广泛的应用前景。车辆冲洗监测摄像机…

春节福利来啦!Mac用户快来抽大奖

亲爱的Mac俱乐部(MaClub)用户及所有果粉朋友们: 值此新春佳节之际,Mac俱乐部特别推出春节亲爱的Mac俱乐部(MaClub)用户及所有果粉朋友们: 值此新春佳节之际,Mac俱乐部特别推出春节抽奖活动,以回馈广大用户长期以来的支持与厚爱。我们精心准备了丰富的奖品,希望能为您…

mysql8.0无备份通过idb文件恢复数据过程、idb文件修复和tablespace id不一致处理

周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.....,当时就冒汗了,心想这个妹子怎么被... 问其原由,原来是他们公司服务器掉电,重启后单位的站点打不开了,请求支援... 妹妹说搞定请我吃临沂炒鸡,作为从业N年的…

Python高性能编程:五种核心优化技术的原理与Python代码

在性能要求较高的应用场景中,Python常因其执行速度不及C、C++或Rust等编译型语言而受到质疑。然而通过合理运用Python标准库提供的优化特性,我们可以显著提升Python代码的执行效率。本文将详细介绍几种实用的性能优化技术。 https://avoid.overfit.cn/post/d5e73b6322714603…

个人星盘 api数据接口

星盘,星盘分析,星盘查询,在线星盘,个人星盘,星座配对,占星,缘份居国学,API数据接口星座星盘,星座星盘‌是一种根据出生日期、时间和地点等信息,通过占星学原理进行星象排布和解读的方法。它通过对天体运行规律、星体属性和宫位的分析,来预测个人的性格特点、运势走向以及与他…