题目记不清了,但大致题意还有印象

L2-1

NNN个传送带,一个堆栈,堆栈大小为SmaxSmaxSmax,传送带=>=>=>队列,传送带不停的往堆栈里面推东西,或是用夹子从堆栈里面取东西,STLSTLSTL模拟题,注意一个细节:当堆栈满时再往堆栈里推东西时要先把堆栈顶层的东西拿走,但是当该传送带上什么都没有的时候(即没有东西推入堆栈),就不用取出堆栈顶的东西了。

#include <bits/stdc++.h>
#define int long long
#define all(a) a.begin(), a.end()
#define fe(i, a, b) for (int i = a; i <= (b); ++i)
#define fr(i, a, b) for (int i = b; i >= (a); --i)
using namespace std;inline int in() {int s = 0, f = 0, ch = getchar();while (ch > '9' || ch < '0')f = ch == '-', ch = getchar();while (ch >= '0' && ch <= '9')s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();return f ? -s : s;
}const int N = 100010;
const int mod = 1e9 + 7;
int n, m, k;
int a[N], b[N], f[N];queue<char> q[110];
void work() {n = in(), m = in();int sm = in();fe(i, 1, n) {string s;cin >> s;// cout << s << "\n";for (auto j : s)q[i].push(j);// cout<<q[i].size()<<"\n";}stack<char> st;vector<char> ans;int x;int tot = 0;while (~scanf("%lld", &x)) {if (x == -1) {break;}b[++tot] = x;}fe(i, 1, tot) {int x = b[i];if (x == 0) {if (st.size()) {ans.push_back(st.top());st.pop();}} else {if (q[x].size()) {if (st.size() == sm) {if (st.size()) {ans.push_back(st.top());st.pop();}}st.push(q[x].front());q[x].pop();}}// if(st.size())cout<<st.top()<<"\n";}// cout << ans.size();//    cout<<st.size()<<" ";int fir = 0;for (auto i : ans) {cout << i;}
}signed main() {#ifndef ONLINE_JUDGE
//    freopen("1.in", "r", stdin);
//    freopen("1.out", "w", stdout);
#endifwork();return 0;
}

L2-2

给一堆边,保证连成的是树,先找到所有树的根,dfsdfsdfs所有的起点,找到所有的路径,对路径进行重载小于符,优先级为先看长度再字典序,遍历到所有的叶子节点时更新路径。(刚开始是把所有到叶子的路径全存起来sortsortsort,发现MLE了一个点)

#include <bits/stdc++.h>
// #define int long long
#define all(a) a.begin(), a.end()
#define fe(i, a, b) for (int i = a; i <= (b); ++i)
#define fr(i, a, b) for (int i = b; i >= (a); --i)
using namespace std;inline int in() {int s = 0, f = 0, ch = getchar();while (ch > '9' || ch < '0')f = ch == '-', ch = getchar();while (ch >= '0' && ch <= '9')s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();return f ? -s : s;
}const int N = 100010;
const int mod = 1e9 + 7;
struct node {vector<int> ve;bool operator<(const node& b) const {int l1 = ve.size(), l2 = b.ve.size();if (l1 == l2) {for (int i = 0; i < l1; ++i) {if (ve[i] == b.ve[i])continue;else {return ve[i] < b.ve[i];}}return 0;}return l1 > l2;}
};
int n, m, k;
int mx;
vector<int> g[N];
int flag[N];
node ve;
vector<vector<int> > ans;
node res;
void dfs(int x) {// cout << x << "\n";ve.ve.push_back(x);if (g[x].size() == 0) {// for (auto i : ve.ve) {//     cout << i << ' ';// }// puts("");// if (ve.size() >= mx)//     ans.push_back(ve);// mx = max(mx, ve.size());// cout << (ve > res) << "\n";if (ve < res) {res = ve;}}for (auto v : g[x]) {dfs(v);}ve.ve.pop_back();
}void work() {n = in();fe(i, 0, n - 1) {k = in();fe(j, 1, k) {int x = in();g[i].push_back(x);flag[x] = 1;// g[x].push_back(i);}}vector<int> start;fe(i, 0, n - 1) {if (flag[i] == 0) {start.push_back(i);}}for (auto i : start) {// cout << i << "\n";dfs(i);}// for (auto ve : ans) {//     for (auto i : ve) {//         cout << i << " ";//     }//     puts("");// }// sort(all(ans), [&](vector<int> a, vector<int> b) {//     int l1 = a.size(), l2 = b.size();//     if (l1 == l2) {//         for (int i = 0; i < l1; ++i) {//             if (a[i] == b[i])//                 continue;//             else {//                 return a[i] < b[i];//             }//         }//         return false;//     }//     return l1 > l2;// });// for (auto ve : ans) {//     for (auto i : ve) {//         cout << i << " ";//     }//     puts("");// }// if (ans.size()) {//     cout << ans[0].size() << "\n";//     int fir = 0;//     for (auto i : ans[0]) {//         if (fir)//             cout << " ";//         fir = 1;//         cout << i;//     }// }cout << res.ve.size() << "\n";int fir = 0;for (auto i : res.ve) {if (fir)cout << " ";fir = 1;cout << i;}
}signed main() {#ifndef ONLINE_JUDGEfreopen("1.in", "r", stdin);freopen("1.out", "w", stdout);
#endifwork();return 0;
}

L2-3

给出NNN条记录,每条记录含MMM个数字,找出相同的记录计数并排序,优先级先看个数再看字典序(好像在上一道题见过…),依旧是经典的重载运算符。

#include <bits/stdc++.h>
#define int long long
#define all(a) a.begin(), a.end()
#define fe(i, a, b) for (int i = a; i <= (b); ++i)
#define fr(i, a, b) for (int i = b; i >= (a); --i)
using namespace std;inline int in() {int s = 0, f = 0, ch = getchar();while (ch > '9' || ch < '0')f = ch == '-', ch = getchar();while (ch >= '0' && ch <= '9')s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();return f ? -s : s;
}const int N = 100010;
const int mod = 1e9 + 7;
int n, m, k;
int a[N], b[N], f[N];
vector<int> g[N];
int flag[N];
vector<int> ve;struct node {vector<int> a;int tot;bool operator<(const node& b) const {if (tot == b.tot) {int l = a.size();for (int i = 0; i < l; ++i) {if (a[i] == b.a[i])continue;return a[i] < b.a[i];}return 0;}return tot > b.tot;}
};vector<node> ans;
void work() {n = in();m = in();map<node, int> mp;fe(i, 1, n) {node ve;fe(j, 1, m) {int x = in();ve.a.push_back(x);}// ans.push_back(ve);mp[ve]++;}int tot = 0;for (auto& i : mp) {// cout << i.second << "\n";ans.push_back(i.first);ans[tot++].tot = i.second;}sort(all(ans));cout << ans.size() << "\n";for (auto i : ans) {cout << i.tot << " ";int fir = 0;for (auto j : i.a) {if (fir)cout << " ";fir = 1;cout << j;}puts("");}
}signed main() {#ifndef ONLINE_JUDGEfreopen("1.in", "r", stdin);freopen("1.out", "w", stdout);
#endifwork();return 0;
}

L2-4

最简单的一道题,大意是闯关类游戏有存档,不停的走或者存档或者调取存档,NNN个点,MMM次操作,邻接表建树,他让前进就前进,他让存档就存档,他让读档就读档,模拟就完了。

#include <bits/stdc++.h>
#define int long long
#define all(a) a.begin(), a.end()
#define fe(i, a, b) for (int i = a; i <= (b); ++i)
#define fr(i, a, b) for (int i = b; i >= (a); --i)
using namespace std;inline int in() {int s = 0, f = 0, ch = getchar();while (ch > '9' || ch < '0')f = ch == '-', ch = getchar();while (ch >= '0' && ch <= '9')s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();return f ? -s : s;
}const int N = 100010;
const int mod = 1e9 + 7;
int n, m, k;
int a[N], b[N], f[N];
vector<int> g[N];
int flag[N];
vector<int> ve;void work() {n = in();m = in();fe(i, 1, n) {k = in();fe(j, 1, k) {int x = in();g[i].push_back(x);}}int start = 1;fe(i, 1, m) {int op = in(), x = in();if (op == 0) {start = g[start][x - 1];} else if (op == 1) {f[x] = start;cout << start << "\n";} else {start = f[x];}}cout << start << "\n";
}signed main() {#ifndef ONLINE_JUDGEfreopen("1.in", "r", stdin);freopen("1.out", "w", stdout);
#endifwork();return 0;
}

2021年中国高校计算机大赛-团队程序设计天梯赛(GPLT)L2四道题相关推荐

  1. 1985年全国计算机编程大赛,关于举办2021年“中国高校计算机大赛-团体程序设计天梯赛”校内选拔赛的通知...

    程序设计能力是大学生利用计算机分析问题.解决问题的重要基础能力.为了推进该能力的培养,同时培养学生的团队合作精神,提高其综合素质,丰富校园学术气氛,促进校际交流,提高全国高校程序设计课程教学水平,教育 ...

  2. 2021年中国高校计算机大赛团体程序设计天梯赛

    2021年中国高校计算机大赛团体程序设计天梯赛 L1-1 人与神 (5 分) L1-2 两小时学完C语言 (5 分) L1-3 强迫症 (10 分) L1-4 降价提醒机器人 (10 分) L1-5 ...

  3. 2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 题解

    天梯赛 A题 总结 B题 C题 D题 E题 G题 H题 K题 A题 思路: 分两种情况: 1.除了最大的数 其他的都是与最大的数的和最大 2.最大的数与第二大的数的和最大 代码实现法一:利用pair的 ...

  4. 牛客 2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 签到题13题

    序 题号 标题 已通过代码 通过率 我的状态 A A+B Problem 点击查看 1705/4843 通过, (贪心) B Komorebi的数学课 点击查看 1372/5349 通过 (快速幂) ...

  5. 中国高校计算机大赛(天梯赛)官网,我校获2019年“中国高校计算机大赛-团体程序设计天梯赛”全国三等奖...

    2019年3月30日,由北京大学等283所高校.775支队伍.7750人参加的第四届中国高校计算机大赛-团体程序设计天梯赛胜利举行.我校计算机科学与技术学院代表队进行了长达3小时紧张编程.奋勇拼搏,最 ...

  6. 河南计算机程序大赛,中国高校计算机大赛——团体程序设计天梯赛河南大学获佳绩...

    近日,第四届中国高校计算机大赛--团体程序设计天梯赛总决赛落下帷幕,我校由软件学院.计算机与信息工程学院共同派队参赛,最终荣获全国团队一等奖1项.二等奖1项.三等奖1项,河南省团队特等奖1项.一等奖1 ...

  7. 广东省计算机教育软件比赛,“中国高校计算机大赛-团体程序设计天梯赛” 广东赛点比赛在我校顺利举办...

    "中国高校计算机大赛-团体程序设计天梯赛" 广东赛点比赛在我校顺利举办 3月31日,2018年"中国高校计算机大赛-团体程序设计天梯赛"广东赛点比赛在我校石牌校 ...

  8. 中国高校计算机大赛(天梯赛)官网,中国高校计算机大赛——团体程序设计天梯赛校内辅导通知...

    程序设计能力是大学生利用计算机分析问题.解决问题的重要基础能力.为了推进该能力的培养,提高综合素质,丰富校园学术气氛,在教务处和信息学院的支持下,拟组队参加 2018 年3月至5月举办的第三届&quo ...

  9. 重庆大学计算机专业排名全国多少名,重庆大学成功晋级中国高校计算机大赛团体程序设计天梯赛全国总决赛...

    近期,第二届中国高校计算机大赛团体程序天梯赛大区赛落下帷幕,来自全国206所高校.112个专业的4750名学生参加了本次比赛.计算机学院组织全校30名学生组成3支队伍参赛,经过3个小时的激烈角逐最终获 ...

最新文章

  1. SpringCloud断路器hystrix
  2. 如何在TensorFlow中用深度学习修复图像
  3. android读取SDCard任意路径下的文件
  4. flask之url_for()函数解析
  5. XMemcached使用示例--转
  6. QT学习:图形视图Graphics View
  7. idea搭建maven项目关于数据库连接jar包版本问题解决方案
  8. Java笔记-Spring Boot生成MD5摘要
  9. python3 collections数据类型模块
  10. 从BIO、NIO到Netty
  11. Django基础之wsgi
  12. vmware-tools安装失败
  13. shell自动化处理_相关知识整理(整理中)20210329
  14. spring框架mvc框架_5篇Spring框架书籍,通过MVC学习Spring
  15. Maximum call stack size exceeded
  16. js判断数组key是否存在
  17. 前端如何压缩图片质量
  18. cairo填充_cairo图形库
  19. 【Jupyter Notebook】在jupyter中使用数学公式
  20. 在MTK平台里,,函数kal_prompt_trace起什么作用???Kal_prompt_trace的参数有表示什么?...

热门文章

  1. 世界末日那天,我们才能拿到Lytro的光场相机
  2. Spring configuration check
  3. Mybatis配置Mapper踩过的坑
  4. Word2016论文引用
  5. C语言程序的入口真的是main方法吗?
  6. c语言中如何表示特殊字符星星,C语言如何用代码打出星星,如下知道
  7. Echarts仪表盘刻度线和标签配置
  8. 如何在html中选择wrap,jQuery wrap()方法怎么用?
  9. C语言文件的读入与写入
  10. python求二维数组的鞍点_C语言程序,找出一个二维数组的鞍点。