2021年团体程序设计天梯赛-题解

article/2025/7/7 9:50:33

题面暂无
先给出代码,题解稍后补充

附上成绩
在这里插入图片描述

目录

  • L1-1
  • L1-2
  • L1-3
  • L1-4
  • L1-5
  • L1-6
  • L1-7
  • L1-8
  • L2-1
  • L2-2
  • L2-3
  • L2-4
  • L3-1
  • L3-2
  • L3-3

L1-1

print('To iterate is human, to recurse divine.')

L1-2

#include <bits/stdc++.h>
using namespace std;
int n;
int k, m;
int main() {scanf("%d", &n);scanf("%d%d", &k, &m);int ans = n - k * m;printf("%d\n", ans);return 0;
}

L1-3

#include <bits/stdc++.h>
using namespace std;
string s;
int main() {cin >> s;if (s.length() == 4) {if (s.substr(0, 2) < "22") {cout << "20" << s.substr(0, 2) << "-" << s.substr(2, 2) << endl;} else {cout << "19" << s.substr(0, 2) << "-" << s.substr(2, 2) << endl;}} else {cout << s.substr(0, 4) << "-" << s.substr(4, 2) << endl;}return 0;
}

L1-4

#include <bits/stdc++.h>
using namespace std;
int n, m;
double p;
int main() {scanf("%d%d", &n, &m);for (int i = 0; i < n; ++i) {scanf("%lf", &p);if (p < m) {printf("On Sale! %.1lf\n", p);}}return 0;
}

L1-5

#include <bits/stdc++.h>
#define N 24
using namespace std;
int a[N], op;
int main() {for (int i = 0; i < N; ++i) {scanf("%d", &a[i]);}while (~scanf("%d", &op) && op >= 0 && op <= 23) {if (a[op] > 50) {printf("%d Yes\n", a[op]);} else {printf("%d No\n", a[op]);}}return 0;
}

L1-6

#include <bits/stdc++.h>
#define N 31
using namespace std;
int n, m, pos;
string tim[N];
bool qiandao[N];
int main() {scanf("%d%d", &n, &m);getchar();for (int i = 0; i < n; ++i) {getline(cin, tim[i]);int len = tim[i].length();for (int j = 0; j < len; ++j) {if (tim[i].substr(j, 7) == "qiandao" ||tim[i].substr(j, 4) == "easy") {qiandao[i] = true;break;}}}while (pos < n && m) {if (!qiandao[pos]) {--m;}++pos;}while (qiandao[pos]) {++pos;}if (pos == n) {printf("Wo AK le\n");} else {cout << tim[pos] << endl;}return 0;
}

L1-7

#include <bits/stdc++.h>
#define N 20004
using namespace std;
int n;
int a[N];
int minn = 1e8, cnt1;
int maxx = -1, cnt2;
int main() {scanf("%d", &n);for (int i = 0; i < n; ++i) {scanf("%d", &a[i]);if (a[i] <= minn) {if (a[i] < minn) {minn = a[i];cnt1 = 0;}++cnt1;}if (a[i] >= maxx) {if (a[i] > maxx) {maxx = a[i];cnt2 = 0;}++cnt2;}}printf("%d %d\n", minn, cnt1);printf("%d %d\n", maxx, cnt2);return 0;
}

L1-8

#include <bits/stdc++.h>
#define N 2003
using namespace std;
int n, a[N], p = 3;
int main() {scanf("%d%d", &a[1], &a[2]);scanf("%d", &n);for (int i = 1; i <= n && p <= n; ++i) {int tmp = a[i] * a[i + 1];if (tmp >= 10) {a[p++] = tmp / 10;a[p++] = tmp % 10;} else {a[p++] = tmp;}}for (int i = 1; i <= n; ++i) {printf(" %d" + !(i - 1), a[i]);}printf("\n");return 0;
}

L2-1

#include <bits/stdc++.h>
#define N 102
#define M 1003
using namespace std;
int n, m, smax, op;
char g[N][M];
string kuang, ans;
int cnt[N];
int main() {scanf("%d%d%d", &n, &m, &smax);for (int i = 1; i <= n; ++i) {for (int j = 1; j <= m; ++j) {scanf(" %c", &g[i][j]);}}while (~scanf("%d", &op) && op != -1) {if (op == 0) {if (cnt[0]) {ans += kuang[--cnt[0]];}} else {if (cnt[op] < m) {if (cnt[0] == smax) {ans += kuang[--cnt[0]];}if (cnt[0] < kuang.length()) {kuang[cnt[0]] = g[op][++cnt[op]];} else {kuang += g[op][++cnt[op]];}cnt[0]++;}}}cout << ans << endl;return 0;
}

L2-2

#include <bits/stdc++.h>
#define N 10004
using namespace std;
int n, u;
int in[N], out[N];
struct Edge {int v, nxt;
} e[N];
int head[N], cnt;
void addedge(int u, int v) {e[++cnt].v = v;e[cnt].nxt = head[u];head[u] = cnt;
}
struct Node {int v, dfn;Node() {}Node(int _v, int _dfn) : v(_v), dfn(_dfn) {}bool operator<(const Node &y) const {if (dfn == y.dfn) return v < y.v;return dfn > y.dfn;}
};
vector<Node> g[N];
int dfn[N];
int s, t;
bool vis[N];
int main() {scanf("%d", &n);for (int v = 0; v < n; ++v) {scanf("%d", &out[v]);for (int j = 0; j < out[v]; ++j) {scanf("%d", &u);++in[u];g[v].push_back(Node(u, 0));addedge(u, v);}}queue<int> q;for (int i = 0; i < n; ++i) {if (!out[i]) {q.push(i);dfn[i] = 1;vis[i] = true;}}while (!q.empty()) {u = q.front();q.pop();for (int i = head[u]; i; i = e[i].nxt) {int v = e[i].v;dfn[v] = max(dfn[v], dfn[u] + 1);if (!vis[v]) {q.push(v);vis[v] = true;}}}for (int i = 0; i < n; ++i) {if (in[i] == 0) {s = i;break;}}cout << dfn[s] << endl;cout << s;while (g[s].size()) {for (int i = 0; i < g[s].size(); ++i) {g[s][i].dfn = dfn[g[s][i].v];}sort(g[s].begin(), g[s].end());s = g[s][0].v;cout << " " << s;}cout << endl;return 0;
}

L2-3

#include <bits/stdc++.h>
#define N 102
using namespace std;
int n, m;
struct Node {int a[N];bool operator<(const Node &y) const {int p = 1;while (p <= m && a[p] == y.a[p]) {++p;}return a[p] < y.a[p];}
};
map<Node, int> mp;
struct ANS {int a[N];ANS() {}ANS(int cnt, const int _a[N]) {a[0] = cnt;for (int i = 1; i <= m; ++i) {a[i] = _a[i];}}bool operator<(const ANS &y) const {if (a[0] == y.a[0]) {int p = 1;while (p <= m && a[p] == y.a[p]) {++p;}return a[p] < y.a[p];}return a[0] > y.a[0];}
};
vector<ANS> ans;
int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; ++i) {Node tmp;for (int j = 1; j <= m; ++j) {scanf("%d", &tmp.a[j]);}++mp[tmp];}cout << mp.size() << endl;for (map<Node, int>::iterator iter = mp.begin(); iter != mp.end(); ++iter) {ans.push_back(ANS(iter->second, iter->first.a));}sort(ans.begin(), ans.end());for (int i = 0; i < ans.size(); ++i) {cout << ans[i].a[0];for (int j = 1; j <= m; ++j) {cout << " " << ans[i].a[j];}cout << endl;}return 0;
}

L2-4

#include <bits/stdc++.h>
#define N 100005
using namespace std;
int n, m, tmp, op, p = 1;
int k[N], save[102];
vector<int> g[N];
int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; ++i) {scanf("%d", &k[i]);for (int j = 0; j < k[i]; ++j) {scanf("%d", &tmp);g[i].push_back(tmp);}}for (int i = 0; i < m; ++i) {scanf("%d%d", &op, &tmp);if (op == 0) {p = g[p][tmp - 1];} else if (op == 1) {save[tmp] = p;printf("%d\n", p);} else if (op == 2) {p = save[tmp];}}printf("%d\n", p);return 0;
}

L3-1

L3-2

#include <bits/stdc++.h>
#define N 100005
using namespace std;
int n, m, tmp;
int cut[N], k[N];
bool vis[N];
vector<int> ct[N];
vector<int> ans(N);
bool dfs(int paper, int num_cut, int now_paper) {if (paper == m && num_cut == n) {return true;}bool flag = false;for (int i = 1; i <= m; ++i) {if (vis[i]) continue;bool fuhe = true;int j;for (j = 0; j < k[i]; ++j) {if (cut[num_cut + j] != ct[i][j]) {fuhe = false;break;}}if (!fuhe) continue;vis[i] = true;ans[paper] = i;flag = dfs(paper + 1, num_cut + k[i] - 1, i);if (flag) {break;}vis[i] = false;}return flag;
}
int main() {scanf("%d", &n);for (int i = 0; i < n; ++i) {scanf("%d", &cut[i]);}scanf("%d", &m);for (int i = 1; i <= m; ++i) {scanf("%d", &k[i]);for (int j = 0; j < k[i]; ++j) {scanf("%d", &tmp);ct[i].push_back(tmp);}}dfs(0, 0, 0);for (int i = 0; i < m; ++i) {printf(" %d" + !i, ans[i]);}printf("\n");return 0;
}

L3-3


http://chatgpt.dhexx.cn/article/yNjayime.shtml

相关文章

2018年 团体程序设计天梯赛——题解集

前言&#xff1a; Hello各位童学大家好&#xff01;&#x1f60a;&#x1f60a;&#xff0c;茫茫题海你我相遇即是缘分呐&#xff0c;或许日复一日的刷题已经让你感到疲惫甚至厌倦了&#xff0c;但是我们真的真的已经达到了我们自身极限了吗&#xff1f;少一点自我感动&#xf…

2021团体程序设计天梯赛题解

先贴成绩 今年L1的题偏基础&#xff0c;比赛用了一个小时切完了&#xff0c;&#xff08;算上PTA系统网络错误崩了20分钟和BW傻等…QAQ&#xff09;L2顺着做的&#xff0c;L2-1模拟过了去看L2-2&#xff0c;并查集写完数据跑错了&#xff0c;调了一个小时发现题目说明唯一前驱&…

2020年团体程序设计天梯赛-总决赛【个人部分题解】

第一次打这个&#xff0c;我以为是团体赛&#xff0c;实际上就是10个人单独打&#xff0c;然后分数相加&#xff0c;一个队的也不能交流&#xff0c;这不就是个人赛嘛… 个人比赛结果&#xff1a; 团队比赛结果&#xff1a; 团队国一&#xff0c;个人国二&#xff0c;还行。…

2022年团体程序设计天梯赛记录(部分题解)

自我总结 今年(大一)第一次参加天梯赛&#xff0c;没什么经验&#xff0c;人也比较菜&#xff0c;今年的部分题光看懂题就花了大部分时间&#xff0c;好吧&#xff0c;我阅读理解确实有点差劲&#xff0c;只写出了前十道题&#xff08;后面的题没时间写了&#xff09;&#xff…

2022团体程序设计天梯赛L1

目录&#xff08;这个链接有点牛马&#xff0c;不建议点&#xff0c;给我整无语了&#xff09; L1-081 今天我要赢 Question: Solve: AC Code&#xff1a; ​​​​​​​ L1-082 种钻石 Question: Solve: AC Code&#xff1a; L1-083 谁能…

PT新手问题汇总

小心触电首发于 HDC 论坛&#xff0c;如需转载&#xff0c;请注明出处&#xff0c;谢谢&#xff01; 转自内站 000 新手问题汇总 原帖地址: http://hdchina.org/forums.php?actionviewtopic&topicid14212&page2##233144 1、什么叫PT&#xff1f; 2、分享 率跟我有…

xvid 详解 代码分析 编译等

1. Xvid参数详解 众所周知&#xff0c;Mencoder以其极高的压缩速率和不错的画质赢得了很多朋友的认同&#xff01; 原来用Mencoder压缩Xvid的AVI都是使用Xvid编码器的默认设置&#xff0c;现在我来给大家冲冲电&#xff0c;讲解一下怎样使用Mencoder命令行高级参数制作Xvid编…

《安全屋》第一季华丽登场,一桩划算的数据“买卖”

影响数据公开和共享的最主要阻碍&#xff0c;一是数据所有权问题&#xff0c;二是数据安全问题。那么&#xff0c;有没有一种方式&#xff0c;可以将数据的所有权和使用权分离&#xff0c;同时又能最大程度地保护数据的安全性&#xff1f;UCloud”安全屋”解决方案应运而生。 …

【mpeg4】xvid参数分析

###Date: 2018.3.24 1. Xvid参数详解 众所周知&#xff0c;Mencoder以其极高的压缩速率和不错的画质赢得了很多朋友的认同&#xff01; 原来用Mencoder压缩Xvid的AVI都是使用Xvid编码器的默认设置&#xff0c;现在我来给大家冲冲电&#xff0c;讲解一下怎样使用Mencoder命令…

【音视频连载-009】第二季 FFmpeg 打造简易播放器

公众号回复&#xff1a;OpenGL&#xff0c;领取学习资源大礼包 音视频学习入门技术文章连载&#xff1a; 技术开发故事会连载【音视频连载-001】基础学习篇-SDL 介绍以及工程配置【音视频连载-002】基础学习篇-SDL 创建窗口并显示颜色【音视频连载-003】基础学习篇-SDL 消息循环…

2021-11-03 - 英文/英语简写 - 收集

1.应用场景 主要用于了解&#xff0c;知晓英文的简写, 方便进行快速的文字交流。 2.学习/操作 1.文档阅读 TBD 2.整理输出 1. Imk &#xff1a; I am okay 我没事 2. TBD&#xff1a; To be determined 待定 TBC&#xff1a; To be continued 待续 TBH&#xff1a; To be hon…

四年再看新的Apple TV

苹果2010秋季新品发布(美国西部时间9月1日上午10点)发布了一系列新产品,硬件方面包括新的iPod Shuffle、iPod Nano、iPod Touch、Apple TV,软件和服务方面包括游戏中心、iOS4.2、以及4.99美元的蓝光格式电影租赁服务和0.99美元的高清电视剧集租赁服务。这里面最让我瞩目的新…

计算机硬件设备海报高清,海报墙3.0+APP加持—芝杜ZIDOO UHD2000高清播放器体验分享...

原标题&#xff1a;海报墙3.0APP加持—芝杜ZIDOO UHD2000高清播放器体验分享 熟悉我的朋友们都知道我一大业余爱好就是折腾存储高清播放器&#xff0c;客厅新盒子的系列测评我已经写了8篇&#xff0c;最近不少人问我最近玩啥盒子&#xff0c;想让我给点建议&#xff0c;我就来分…

H5 QQ一键加群

** 手机网页唤醒加群 ** 网上教程说的全是去官网找加群组件&#xff0c;我试了下&#xff0c;怎么样都不行&#xff0c;只能唤醒。其实很简单&#xff0c;想的太复杂了 放到用户点击事件上&#xff0c;完事。

网页一键加入QQ群

三步简单实现功能&#xff1a;网页提供加入qq群按钮 让他人一键加入qq群 第一步&#xff1a;进入qq群官网&#xff1a;http://qun.qq.com/join.html 第二步&#xff1a;选择需要加入的群并生成网页代码 第三步&#xff1a;在网页中插入这段html代码 以博客园为例&#xff1a;设…

超链接 qq群一键添加

把qq群的分享连接&#xff08;在下图中查看群连接&#xff09;放到 a 标签中&#xff0c;就会自动跳转qq&#xff0c;并加群。 &#xff08;如下&#xff09; <li>点击链接加入群聊【技术资源分享】&#xff1a; <a href"https://jq.qq.com/?_wv1027&k5RV…

腾讯qq群推广“一键加群”的一个细节

刚才我们的新版产品要上线了&#xff0c;需要改一个“一键加群”的链接&#xff0c;我第一次使用这个功能&#xff0c;所以才被一个细节坑了&#xff0c;如下操作&#xff1a; 然后跳转到一个页面&#xff0c;”网页代码“地址类似&#xff1a; <a target"_blank"…

网页中的一键加QQ群、唤起QQ群聊天窗口

1.进入QQ群官网&#xff1a; https://qun.qq.com 2. 登陆QQ账号&#xff0c;点击加群组件 3. 左侧选择指定的群&#xff0c;右侧会给出一键加群的链接 4. 浏览器访问刚才复制的链接&#xff0c;点击 打开腾讯QQ 5. 成功唤起QQ群

一键加Q群的实现

打开网址 选择创建的群 选择所需要的二维码或者代码 转载于:https://www.cnblogs.com/AliliWl/p/6830953.html

qq一键加群

qq一键加群 关注微博!!