2021年CCCC天梯赛 【部分题题解】

article/2025/7/2 0:54:20

天梯赛有三个level,第一个level基本就是语法题,第二个level是基础算法和STL库的一些应用。
第三个level就是一些难的算法。 L3的题都不是太会,有思路但是写不出来。

目录

  • L1
    • 人与神
    • 两小时学完C语言
    • 强迫症
    • 降价提醒机器人
    • 大笨钟的心情
    • 吉老师的回归
    • 天梯赛的善良
    • 乘法口诀数列
  • L2
    • 3464. 包装机 【队 / 栈 模拟】
    • 病毒溯源 【求树的最长字典序最小的链】
    • 清点代码库 【map计数 / 排序】
    • 哲哲打游戏 【模拟】

L1

人与神

在这里插入图片描述
https://www.acwing.com/problem/content/3459/

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int main(void)
{cout<<"To iterate is human, to recurse divine."<<endl;return 0;
}

两小时学完C语言

在这里插入图片描述
https://www.acwing.com/problem/content/3460/

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int main(void)
{int n,k,m; cin>>n>>k>>m;cout<<n-k*m<<endl;return 0;
}

强迫症

在这里插入图片描述
https://www.acwing.com/problem/content/3461/

#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(void)
{string s; cin>>s;int year=stoi(s.substr(0,2));if(s.size()>4){cout<<s.substr(0,4)<<"-"<<s.substr(4)<<endl;return 0;}if(year<22){cout<<20<<s.substr(0,2)<<"-"<<s.substr(2);}else{cout<<19<<s.substr(0,2)<<"-"<<s.substr(2);}return 0;
}

降价提醒机器人

在这里插入图片描述
https://www.acwing.com/problem/content/3462/

#include<cstdio>
#include<iostream>
using namespace std;
int main(void)
{int n,m; cin>>n>>m;while(n--){double x; cin>>x;if(x<m) printf("On Sale! %.1lf\n",x);}return 0;
}

大笨钟的心情

在这里插入图片描述
https://www.acwing.com/problem/content/3463/

#include<cstdio>
#include<iostream>
using namespace std;
int a[25];
int main(void)
{for(int i=0;i<24;i++) cin>>a[i];int x;while(cin>>x,x>=0&&x<=23){cout<<a[x]<<" ";if(a[x]>50) cout<<"Yes"<<endl;else cout<<"No"<<endl;}
}

吉老师的回归

在这里插入图片描述
https://www.acwing.com/problem/content/description/3464/

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main(void)
{int n,m; cin>>n>>m;int cnt=0;string ans,s;bool flag=false;getline(cin,s);for(int i=0;i<n;i++){getline(cin,s);if(s.find("qiandao")!=-1||s.find("easy")!=-1) continue;cnt++;if(cnt==m+1){ans=s;flag=true;}}if(flag) cout<<ans<<endl;else cout<<"Wo AK le"<<endl;return 0;
}

天梯赛的善良

在这里插入图片描述
https://www.acwing.com/problem/content/3465/

#include<cstdio>
#include<iostream>
#include<set>
using namespace std;
int main(void)
{multiset<int>st;int n,x; cin>>n;for(int i=0;i<n;i++) cin>>x,st.insert(x);auto a=st.begin();auto b=--st.end();cout<<*a<<" "<<st.count(*a)<<endl;cout<<*b<<" "<<st.count(*b)<<endl;
}

乘法口诀数列

在这里插入图片描述
https://www.acwing.com/problem/content/3466/

#include<cstdio>
#include<iostream>
#include<vector>
#include<stack>
using namespace std;
stack<int> st;
int a[1005];
int main(void)
{int n; cin>>a[1]>>a[2]>>n;int k=2;int i=1;while(k<=n){int temp=a[i]*a[i+1];i++;if(temp==0) st.push(0);//当前数就是0elsewhile(temp){st.push(temp%10),temp/=10;}while(st.size()){a[++k]=st.top();st.pop();}}for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;return 0;
}

简单写法:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
int main(void)
{int a,b,n; cin>>a>>b>>n;string s; s+=to_string(a)+to_string(b);int i=0;while(s.size()<n){s+=to_string((s[i]-'0')*(s[i+1]-'0'));i++;}for(int i=0;i<n;i++)  cout<<s[i]<<" ";return 0;
}

L2

3464. 包装机 【队 / 栈 模拟】

在这里插入图片描述
https://www.acwing.com/problem/content/3467/

#include<cstdio>
#include<iostream>
#include<stack>
#include<queue>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int n,m,v;
queue<int>q[105];
stack<int>st;
vector<int>ve;//拿的
int main(void)
{cin>>n>>m>>v;for(int i=1;i<=n;i++){for(int j=0;j<m;j++){char c; cin>>c;q[i].push(c);}}int op;while(cin>>op,op!=-1){if(op==0){if(st.size()==0) continue;//空int t=st.top(); st.pop();ve.push_back(t);}else{if(q[op].size()==0) continue;if(st.size()==v)//满了{int t=st.top(); st.pop();ve.push_back(t);}int temp=q[op].front(); q[op].pop();st.push(temp);}}for(int i=0;i<ve.size();i++) printf("%c",ve[i]);return 0;
}

病毒溯源 【求树的最长字典序最小的链】

在这里插入图片描述
https://www.acwing.com/problem/content/description/3468/

思路:

  • 找到入度为零的点,次点是一个根结点。
  • 遍历根节点找到字典序最小的且最长的链
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=1e4+10;
int h[N],e[N],ne[N],idx;
int son[N];
int st[N];
int n;void add(int a,int b)
{e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}int dfs(int u)
{int res=0;son[u]=-1;for(int i=h[u];i!=-1;i=ne[i]){int j=e[i];int d=dfs(j);if(res<d) res=d,son[u]=j;//短else if(res==d) son[u]=min(son[u],j);//相等,选字典序小的}return res+1;
}
int main(void)
{memset(h,-1,sizeof h);cin>>n;for(int i=0;i<n;i++){int cnt; scanf("%d",&cnt);for(int j=0;j<cnt;j++){int x; scanf("%d",&x);add(i,x);st[x]=true;//记录入度}}int root=0;while(st[root]) root++; //找到根printf("%d\n",dfs(root));printf("%d",root);while(son[root]!=-1){root=son[root];printf(" %d",root);}return 0;
}

清点代码库 【map计数 / 排序】

在这里插入图片描述
https://www.acwing.com/problem/content/3469/
TLE一个点代码:

#include<cstdio>
#include<iostream>
#include<string>
#include<map>
#include<algorithm>
#include<vector>
#include<sstream>
#include<cstring>
using namespace std;
map< vector<int>,int>mp;
vector< vector<int> > ve;
bool cmp(vector<int> a,vector<int> b)
{if(mp[a]==mp[b]){return a<b; }return mp[a]>mp[b];
}
int main(void)
{int n,m; scanf("%d%d",&n,&m);for(int i=0;i<n;i++){vector<int> line;for(int j=0;j<m;j++){int x; scanf("%d",&x);line.push_back(x);}if(mp[line]==0){ve.push_back(line);}mp[line]++;}sort(ve.begin(),ve.end(),cmp);printf("%d\n",mp.size());for(int i=0;i<ve.size();i++){printf("%d ",mp[ve[i]]);for(int j=0;j<m;j++){printf("%d",ve[i][j]);if(j!=m-1) printf(" ");}puts("");}return 0;
}

优化后的代码:

#include<cstdio>
#include<iostream>
#include<string>
#include<map>
#include<algorithm>
#include<vector>
#include<sstream>
#include<cstring>
using namespace std;
map< vector<int>,int>mp;
vector< vector<int> > ve;int main(void)
{int n,m; scanf("%d%d",&n,&m);for(int i=0;i<n;i++){vector<int> line(m+1,0);for(int j=1;j<=m;j++)//从1开始写{scanf("%d",&line[j]);}if(!mp[line]++)//没有出现过{ve.push_back(line);}}for(auto&line:ve){//将个数进入第0个位置line[0]=-mp[line];//加个负号,是将其好排序,这样递增序列也直接排好了}sort(ve.begin(),ve.end());printf("%d\n",ve.size());for(int i=0;i<ve.size();i++){printf("%d",-ve[i][0]);for(int j=1;j<=m;j++){printf(" %d",ve[i][j]);}puts("");}return 0;
}

哲哲打游戏 【模拟】

在这里插入图片描述
https://www.acwing.com/problem/content/3470/

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int N=1e5+10;
vector<int> choose[N];//选择
int read[N];//存档
int n,m;
int main(void)
{int st=1;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){int x; cin>>x;for(int j=0;j<x;j++){int a; scanf("%d",&a);choose[i].push_back(a);}}while(m--){int op,k; scanf("%d%d",&op,&k);if(op==0){st=choose[st][k-1];}if(op==1){read[k]=st;printf("%d\n",st);}if(op==2){st=read[k];}}cout<<st<<endl;return 0;
}

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

相关文章

2021年CCCC天梯赛L3 还原文件题解

题目如下 一份重要文件被撕成两半&#xff0c;其中一半还被送进了碎纸机。 我们将碎纸机里找到的纸条进行编号&#xff0c;如图 1 所示。然后根据断口的折线形状跟没有切碎的半张纸进行匹配&#xff0c;最后还原成图 2 的样子。 要求你输出还原后纸条的正确拼接顺序。 图 1…

2020CCCC天梯赛补题记录

目录 总结补题L2-035 完全二叉树的层序遍历 (25分)L2-036 网红点打卡攻略 (25分)L3-025 那就别担心了 (30分)28分版本&#xff1a;30分版本(记忆化搜索) 总结 1.口罩那题打完就只剩三十分钟了&#xff0c;之后卡在了完全二叉树的层序遍历那题&#xff0c;就没有再敢往后看&…

2021 CCCC天梯赛L1补题

前言 这次天梯赛表现没有达到预期&#xff0c;L1的分没有拿全&#xff0c;L2有2题没考虑完全&#xff0c;总之很愧疚拖了队友后腿。今天先补上L1没拿满分的题。 L1补题 前言L1-078 吉老师的回归输入样例1输出样例1输入样例2输出样例2 思路代码实现 L1-080 乘法口诀数列输入样例…

CCCC天梯赛 L2-037 包装机

CCCC天梯赛 L2-037 包装机 一种自动包装机的结构如图 1 所示。 首先机器中有 N 条轨道&#xff0c;放置了一些物品。 轨道下面有一个筐。 当某条轨道的按钮被按下时&#xff0c;活塞向左推动&#xff0c;将轨道尽头的一件物品推落筐中。 当 0 号按钮被按下时&#xff0c;机械手…

2022年CCCC天梯赛题解

L1-1今天我要赢 原题链接 代码 #include<bits/stdc.h> #define int long long #define rep(i, a, b) for(int ia;i<b;i) #define Rep(i, a, b) for(int ia;i>b;--i) using namespace std; const int N 10005; inline int read(){int s0,w1;char chgetchar();wh…

第八届cccc团体程序设计天梯赛——个人参赛总结——无代码纯粹的参赛总结

第八届cccc团体程序设计天梯赛——个人参赛总结——无代码纯粹的参赛总结 目录 第八届cccc团体程序设计天梯赛——个人参赛总结——无代码纯粹的参赛总结引言~介绍一下cccc天梯赛&#xff08;选读&#xff09;开篇介绍&#xff08;以下是个人经历部分的分享&#xff09;赛前准备…

怎样合理地营销推广App和吸引住大量的客户提高转化?

开发App进行后&#xff0c;一切应用软件都必须营销推广&#xff0c;尤其是在互联网技术收益消退的情况下&#xff0c;怎样合理地营销推广和吸引住大量的客户总流量早已变成很多互联网公司最关注的难题。 APP运用引流方法工作中看上去很繁杂&#xff0c;难度系数很大&#xff0…

APP在应用市场内该如何做推广

苹果应用商城的自然流量都是通过精品推荐&#xff0c;畅销排行榜和搜索来获取的&#xff0c;此外&#xff0c;应用名称、副标题、应用截图视频、应用描述、用户评论、下载量、用户留存率还有曝光量&#xff0c;这些都是影响ASO优化的关键因素。 为了防止一些应用堆砌热词&…

App推广拉新的6大方式,你都玩得转吗?

中国的互联网发展至今,除了App以外,公众号,小程序在微信生态中的独领风骚,快应用也像“太子”一样在11家国产手机厂商的簇拥下茁壮成长,而百度的百家号、头条的头条号、阿里的大鱼号也已经和微信开始“正面刚”。App这种古老的产品形态,正受到市场的不断冲击。 根据Quest…

什么是App推广技术?

在移动互联网红利消失殆尽、市场竞争日趋激烈的背景下,App的推广越来越难了,如何去有效的进行推广,吸引更多的用户流量,成为了众多互联网企业最为关注的问题。 而App 推广技术指的就是通过一些技术的方式来提高 App 推广效率,帮助众多互联网企业,解决 App 推广难的问题。…

如何正确推广App,实现高转化用户。

个性化深度链接技术的应用。深度链接使网页和App两者串联起来&#xff0c;减少了转换漏斗中的损失。再加上深度链接不仅能改善潜在用户的转化&#xff0c;对沉睡用户的唤醒同样也能发挥关键作用。 类型不含深度链接使用深度链接携带参数首页商品的id号&#xff0c;房间号&…

电商App:提高推广转化率的几件事

双十一将至&#xff0c;电商App获客却越来越难&#xff0c;成本越来越高。想要做好用户拉新并转化为有效用户&#xff0c;这里整理了一套拉新留存方法论&#xff0c;可以参考使用。 一、找准目标用户 首先明确用户群定位&#xff0c;可以从年龄范围、职业范围、性别、地域、消…

微信开放平台unionID 的利用(app推广转化率的解决方案)

打开微信公众号开发文档&#xff0c;开幕就是这段话。微信开放平台提供了unionID 一个用户虽然对多个公众号和应用有多个不同的OpenID&#xff0c;但他对所有这些同一开放平台账号下的公众号和应用&#xff0c;只有一个UnionID 正常的app推广方案有很多平台在做&#xff0c;费…

小程序手写板电子签名

本人已经全部处理好&#xff0c;可以直接粘贴文件使用不予要修改&#xff0c;可保存图片到本地&#xff0c;也可以转成base64位码。源码地址&#xff1a;https://download.csdn.net/download/zzsjsp/11816038

怎么制作电子签名?

随着科技的进步&#xff0c;电子签名应用的领域更广泛&#xff0c;尤其是电子签名的法律效力问题上&#xff0c;通过技术手段实现签名和签署人身份对应&#xff0c;利用不可被更改的内容形式&#xff0c;保障签名的电子文件是原文&#xff0c;广泛应用于电子商务的场景。 电子签…

电子签名的制作和使用

电子签名的制作和使用 一、在Word文档中插入手写签名生成电子签名1、准备好签名图片。2、用Word打开需要签名的文件&#xff0c;点菜单中的“插入>插图>图片”来选择已经写好的签名图片&#xff0c;插入后可以调整图片大小。3、点击菜单“格式>颜色>黑白”。4、点击…

签名涂鸦手写板

布局文件 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:…

手写签名转化为电子版

用手机拍摄手写签名 .进行裁剪为合适大小 重新着色 设置为透明色Ctrlc复制图片CtrlAltV 选择位图 将图片设置为 浮于文字上方 8.最终得到的结果

如何制作电子签名

如何制作电子签名 获取一张带有名字的图片使用python将图片修改为透明底致谢 获取一张带有名字的图片 首先&#xff0c;在白纸上写好你的名字&#xff0c;使用相机拍摄一张图片&#xff08;可以使用一些扫描软件进行拍摄&编辑&#xff0c;比较方便&#xff09;。将图片进行…

Android实现手写板和涂鸦功能

下面仿一个Android手写板和涂鸦的功能&#xff0c;直接上代码&#xff1a; write_pad.xml <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:greendroid"http://schemas.android.com/apk/res/com.cyrilmottier.android.gdcat…