L1-1 人与神 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652352
题目大意:输出一行"To iterate is human, to recurse divine."

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

L1-2 两小时学完C语言 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652353
题目大意:输出还剩下多少页数没有读完,总体减去已读即可
已读为读的天数乘以每天读的页数

#include<iostream>
using namespace std;
int main(){int a,b,c;cin>>a>>b>>c;cout<<a-b*c;return 0;
}

L1-3 强迫症 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652354
题目大意:将时间格式化
首先不能影响正确的时间
其次对22年开始划分

#include<iostream>
#include<cstdio>
using namespace std;
int main(){int n,y;cin>>n;y=n%100;n/=100;if(n<22)n+=2000;else if(n<100)n+=1900;printf("%02d-%02d",n,y);return 0;
}

L1-4 降价提醒机器人 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652355
题目大意:一旦有降价便输出一行

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

L1-5 大笨钟的心情 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652356
题目大意:将每天的心情存入,然后每次读取当时的心情,如果大于50便输出

#include<iostream>
using namespace std;
int p[25];
int main(){for(int i=0;i<24;i++)cin>>p[i];int x;while(cin>>x)if(x<24&&x>=0)if(p[x]>50)cout<<p[x]<<" Yes\n";else cout<<p[x]<<" No\n";return 0;
}

L1-6 吉老师的回归 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652357
题目大意:如果题目中带有简单和签到便跳过,反之记录,如果写的题目超过了他的过题数,他便ak了,反之输出记录的过题数

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){int n,m;string s;vector<string> p;cin>>n>>m;getchar();while(n--){getline(cin,s);if(s.find("easy")!=-1)continue;if(s.find("qiandao")!=-1)continue;p.push_back(s);}if(p.size()<=m)cout<<"Wo AK le";else cout<<p[m];return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char s[510];
int main(){int n,m;scanf("%d %d",&n,&m);while(n--){getchar();scanf("%[^\n]",s+1);int len=strlen(s+1);for(int i=1;i<len;i++)if(s[i]=='e'&&s[i+1]=='a'&&s[i+2]=='s'&&s[i+3]=='y')break;else if(s[i]=='q'&&s[i+1]=='i'&&s[i+2]=='a'&&s[i+3]=='n'&&s[i+4]=='d'&&s[i+5]=='a'&&s[i+6]=='o')break;else if(i==len-1){m--;break;}if(m<0){printf("%s",s+1);return 0;}}printf("Wo AK le");
}

L1-7 天梯赛的善良 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652358
题目大意:每次有最大最小值便更新数目和值

#include<iostream>
const int INF=0x3f3f3f3f;
int mmin=INF,cntmmin=0,mmax=-INF,cntmmax=0;
using namespace std;
int main(){int x,n;cin>>n;for(int i=0;i<n;i++){cin>>x;if(x>mmax){cntmmax=1;mmax=x;}else if(x==mmax)cntmmax++;if(x<mmin){cntmmin=1;mmin=x;}else if(x==mmin)cntmmin++;}cout<<mmin<<" "<<cntmmin<<endl;cout<<mmax<<" "<<cntmmax<<endl;return 0;
}

L1-8 乘法口诀数列 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652359
题目大意:输出乘法表

#include<iostream>
using namespace std;
const int N=2e3+7;
int s[N];
int main(){int n;cin>>s[0]>>s[1]>>n;for(int i=0,j=2;i<=n;i++){int a=s[i]*s[i+1];if(a<10)s[j++]=a;else s[j++]=a/10,s[j++]=a%10;}for(int i=0;i<n;i++)cout<<s[i]<<" ";return 0;
}

L2-1 包装机 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652360
题目大意:用一个栈保存框,传送带可以用队列存也可以用栈存,然后模拟即可

#include<iostream>
#include<stack>
using namespace std;
const int N=1e2+7;
stack<char> p[N],st;
char str[100010];
int main(){int n,m,k;cin>>n>>m>>k;string s;for(int i=1;i<=n;i++){cin>>s;for(int j=m;j;j--)p[i].push(s[j-1]);}int x,cnt=0;while(cin>>x,x!=-1)if(!x){if(st.size())str[cnt++]=st.top(),st.pop();}else{if(p[x].size()){if(st.size()==k)str[cnt++]=st.top(),st.pop();st.push(p[x].top());p[x].pop();}}str[cnt]='\0';cout<<str;return 0;
}

L2-2 病毒溯源 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652361
题目大意:因为没有重复感染,所以成了树的深度搜索,用拓扑排序减少重复搜索

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int N=1e4+7;
vector<int> t,p,s[N];
int b[N];
int dfs(int i){b[i]=1;if(!s[i].size()&&p.size()<t.size())p=t;for(int j=0;j<s[i].size();j++){t.push_back(s[i][j]);dfs(s[i][j]);t.pop_back();}
}
int main(){int n;cin>>n;for(int i=0;i<n;i++){int m,x;cin>>m;for(int j=0;j<m;j++){cin>>x;s[i].push_back(x);}sort(s[i].begin(),s[i].end());}for(int i=0;i<n;i++){t.push_back(i);if(!b[i])dfs(i);t.pop_back();}cout<<p.size()<<"\n";for(int i:p)cout<<i<<" ";return 0;
}

L2-3 清点代码库 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652362
题目大意:将一个数组记录一个hash值,然后保存,有利于快速比对是否重复,这里我用map缩短代码

#include<iostream>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
map<vector<int>,int> m;
const int N=1e4+7;
vector<pair<int,vector<int>>> s;
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int n,k,x;cin>>n>>k;while(n--){vector<int> t;for(int j=0;j<k;j++){cin>>x;t.push_back(x);}m[t]++;}for(auto [a,b]:m)s.push_back({-b,a});sort(s.begin(),s.end());cout<<s.size()<<"\n";for(int i=0;i<s.size();i++){cout<<-s[i].first;for(int j=0;j<s[i].second.size();j++)cout<<" "<<s[i].second[j];cout<<"\n";}
}

L2-4 哲哲打游戏 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652363
题目大意:很简单,用一个数组模拟即可。

#include<iostream>
#include<vector>
using namespace std;
const int N=1e5+7;
vector<int> s[N];
int p[N];
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int n,m;cin>>n>>m;for(int i=1;i<=n;i++){int k,x;cin>>k;for(int j=0;j<k;j++){cin>>x;s[i].push_back(x);}}int v=1;while(m--){int x,j;cin>>x>>j;if(!x)v=s[v][j-1];else if(x==1)p[j]=v,cout<<v<<"\n";else v=p[j];}cout<<v;
}

L3-1 森森旅游 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652364
题目大意:由于现金只能兑换一次,并且要一次性将现金全部兑换成旅游币,将该图分为一个两个点的单源最短路,然后通过堆来寻找每一次更改汇率的最小现金额。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<set>#define endl "\n"using namespace std;
typedef long long ll;struct xy{ll x,y;inline bool operator<(const xy &b)const{return x>b.x;}
};const int N=1e5+7;
const int M=2e5+7;
const ll INF=0x3f3f3f3f3f3f3f3fll;ll dis1[N],dis2[N];ll h1[M],h2[M],ne1[M],ne2[M],e1[M],e2[M],w1[M],w2[M],idx;bool st[M];int ra[N];int n,m,k;void add(int a,int b,int c,int d){e1[++idx]=b;w1[idx]=c;ne1[idx]=h1[a];h1[a]=idx;e2[idx]=a;w2[idx]=d;ne2[idx]=h2[b];h2[b]=idx;
}void dij(int i,ll *dist,ll *w,ll *h,ll *e,ll *ne){memset(dist,0x3f,sizeof dis1);memset(st,0,sizeof st);dist[i]=0;priority_queue<xy> heap;heap.push({0,i});while(heap.size()){xy k=heap.top();heap.pop();ll var=k.y,len=k.x;if(st[var])continue;st[var]=true;for(int j=h[var];j;j=ne[j]){int en=e[j];if(dist[en]>len+w[j]){dist[en]=len+w[j];heap.push({dist[en],en});}}}
}int main(){ios::sync_with_stdio(false);cin.tie(nullptr);cin>>n>>m>>k;for(int i=0;i<m;i++){int a,b,c,d;cin>>a>>b>>c>>d;add(a,b,c,d);}dij(1,dis1,w1,h1,e1,ne1);dij(n,dis2,w2,h2,e2,ne2);for(int i=1;i<=n;i++)cin>>ra[i];multiset<ll> S;for(int i=1;i<=n;i++)if(dis1[i]!=INF&&dis2[i]!=INF){S.insert(dis1[i]+(dis2[i]+ra[i]-1)/ra[i]);}while(k--){int a,b;cin>>a>>b;if(dis1[a]!=INF&&dis2[a]!=INF){S.erase(S.find(dis1[a]+(dis2[a]+ra[a]-1)/ra[a]));ra[a]=b;S.insert(dis1[a]+(dis2[a]+ra[a]-1)/ra[a]);}cout<<*S.begin()<<endl;}return 0;
}

L3-2 还原文件 (5 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652365
题目大意:dfs加剪枝,也可以使用kmp来写,切记每次对比的长度要减1因为每一个尾结点要重复配对,剪枝。

#include<iostream>
#include<vector>
using namespace std;const int N=1e5+7;vector<int> s[N];int t[N],cnt=0;int n,m,x;bool st[N],flag=true;bool p(int i,int len){for(int k=0;k<s[i].size();k++)if(s[i][k]!=s[0][len+k])return false;return true;
}void dfs(int len){if(len==s[0].size()-1){flag=false;return ;}for(int i=1;flag&&i<=n;i++)if(!st[i]&&p(i,len)){st[i]=1;t[cnt++]=i;dfs(len+s[i].size()-1);if(!flag)return ;cnt--;st[i]=0;}
}
int main(){cin>>n;for(int i=0;i<n;i++){cin>>x;s[0].push_back(x);}cin>>n;for(int i=1;i<=n;i++){cin>>m;for(int j=0;j<m;j++){cin>>x;s[i].push_back(x);}}dfs(0);for(int i=0;i<cnt;i++)cout<<t[i]<<(i==cnt-1?"\n":" ");
}

2021年cccc天梯赛题解相关推荐

  1. 2021年CCCC天梯赛 L2清点代码库 (哈希表,数据结构)

    分析 2021年CCCC天梯赛的一道问题. 使用一个数据结构存贮所有的数组及其出现的次数. 使用哈希表mp存储数组vector<intvector< int\>vector<i ...

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

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

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

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

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

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

  5. 2022年CCCC天梯赛题解

    L1-1今天我要赢 原题链接 代码 #include<bits/stdc++.h> #define int long long #define rep(i, a, b) for(int i ...

  6. CCCC天梯赛L1-075 强迫症

    CCCC天梯赛L1-075 强迫症 小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写 199808,有的人只写 9808. 有强迫症的小强请你写个程序,把所有人的出生 ...

  7. CCCC天梯赛 L1-079 天梯赛的善良

    CCCC天梯赛 L1-079 天梯赛的善良 天梯赛是个善良的比赛.善良的命题组希望将题目难度控制在一个范围内,使得每个参赛的学生都有能做出来的题目,并且最厉害的学生也要非常努力才有可能得到高分. 于是 ...

  8. CCCC天梯赛 L2-037 包装机

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

  9. 【GPLT】 2021CCCC天梯赛题解

    更好的阅读体验:GPLT 2021CCCC天梯赛题解 L1-人与神 解题思路 直接输出To iterate is human, to recurse divine.即可 #include <io ...

最新文章

  1. Nginx搭建负载均衡集群
  2. 什么是UUID及其实现代码
  3. 实操指南 | Resource Queue如何实现对AnalyticDB PostgreSQL的资源管理?
  4. CodeForces - 1220D Alex and Julian(思维+数论)
  5. 保护 .NET Core 项目的敏感信息
  6. 第五十九期:如何在Windows 10中执行Windows Defender离线扫描?
  7. http://Live.GIGA.NET.TW/FM917/
  8. 最新尚硅谷Git和GitHub视频教程完整版
  9. 书单:《人人都是产品经理》附录书单
  10. eclipse使用git合并_Eclipse的git插件冲突合并方法
  11. 第五周:Raptor:三色球问题
  12. (sn0wbreeze保基带升级,redsnow,absinthe越狱)常用越狱工具下载:redsnow,absinthe,tinyumbrella,sn0wbreeze
  13. html录音并调用讯飞语音接口,微信小程序前台调用讯飞语音识别接口
  14. 为Latex生成的PDF设置背景色
  15. 【编程题】【Scratch二级】2019.06 飞不出去的蝴蝶
  16. 酷讯网创始人陈华离职 或因与资方关系不合
  17. 第五章 准确率、精确率与混淆矩阵
  18. pomelo分布式聊天服务器详解
  19. php oss 断点续传,断点续传上传
  20. Python(十三)文件一

热门文章

  1. iPhone 7手机系统升级iOS 12.3后的续航能力怎么样?亲测
  2. myelicpes2019初次使用设置_实况足球2019(PES2019)全图文攻略官方操作指南
  3. librtmp android编译,用librtmp构建FFMPEG for android
  4. mmkv跨进程,闭关60天学懂NDK+Flutter,好文推荐
  5. 施瓦辛格与张国宝谈石油 探寻中美能源合作
  6. python 拟合曲线 置信区间_如何从曲线获得置信区间
  7. 2020JCIM | ChemGrapher+:Optical Graph Recognition of Chemical Compoundsby Deep Learning
  8. linux服务器 图片压缩,Pngquant:Linux上压缩PNG图像的命令行实用工具
  9. cf-723C Polycarp at the Radio
  10. Shell文本处理编写单行指令的诀窍