第四届“传智杯”全国大学生IT技能大赛(练习赛)完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四届“传智杯”全国大学生IT技能大赛(练习赛)完结相关的知识,希望对你有一定的参考价值。
题目都是基础题。
T1 符合条件的数【暴力】
https://www.luogu.com.cn/problem/T211364?contestId=56279
暴力即可。
#include<bits/stdc++.h>
using namespace std;
int n,k;
bool check(int n)
int cnt=0;
while(n)
if(n%10==3) cnt++;
n/=10;
return cnt==k;
int main(void)
cin>>n>>k;
for(int i=n;;i++)
if(check(i))
cout<<i;
break;
return 0;
T2 选代表【模拟】
https://www.luogu.com.cn/problem/T211368?contestId=56279
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int cnt[N],n,x;
int main(void)
cin>>n;
for(int i=0;i<n;i++)
cin>>x;
if(!cnt[x]) cout<<x<<" ";
cnt[x]++;
return 0;
T3 成绩统计 【排序】
https://www.luogu.com.cn/problem/T211372?contestId=56279
注意向上取整,注意四舍五入即可。
#include<bits/stdc++.h>
using namespace std;
struct node
string name;
int id,a,b;
int sum;
temp;
vector<node>ve;
int n;
bool cmp(node a,node b)
if(a.sum==b.sum)
return a.id<b.id;
return a.sum>b.sum;
int main(void)
cin>>n;
for(int i=0;i<n;i++)
cin>>temp.name>>temp.a>>temp.b;
temp.id=i;
temp.b=ceil(sqrt(1.0*temp.b)*10);
temp.sum=0.6*temp.b+0.4*temp.a+0.5;
ve.push_back(temp);
sort(ve.begin(),ve.end(),cmp);
for(int i=0;i<ve.size();i++)
cout<<ve[i].name<<" "<<ve[i].sum;
if(i!=ve.size()-1) cout<<endl;
return 0;
T4 背答案 【模拟】
https://www.luogu.com.cn/problem/T211939?contestId=56279
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
unordered_map<string,int>mp;
string a[N],b[N];
int n,m;
int main(void)
cin>>n>>m;
for(int i=0;i<n;i++) cin>>a[i]>>b[i],mp[a[i]]=i;
for(int i=0;i<m;i++)
string name,temp; cin>>name;
int ans=0;
for(int j=0;j<4;j++)
cin>>temp;
if(temp==b[mp[name]]) ans=j;
cout<<char('A'+ans)<<endl;
return 0;
T5 击鼓传花 【暴力模拟】
https://www.luogu.com.cn/problem/T211943?contestId=56279
暴力模拟,注意剪枝即可。
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int st[N],n,m,k;
int main(void)
cin>>n>>m>>k;
for(int i=0;i<m;i++)
int x; cin>>x;
while(!st[x])
st[x]=1;
x=(x+k)%n;
int cnt=0;
for(int i=0;i<n;i++) if(!st[i]) cnt++;
cout<<cnt<<endl;
return 0;
#include <bits/stdc++.h>
using namespace std;
int n,m,k;
int gcd(int a,int b) return b?gcd(b,a%b):a;
int main()
cin>>n>>m>>k;
int l=gcd(n,k);
vector<bool>v(l,true);
for(int i=0;i<m;i++)
int j;cin>>j;
v[j%l]=false;
cout<<(count(v.begin(),v.end(),true))*(n/l);
以上是关于第四届“传智杯”全国大学生IT技能大赛(练习赛)完结的主要内容,如果未能解决你的问题,请参考以下文章
2021年全国职业院校技能大赛(中职组)网络安全竞赛第四套试题A模块解析(超级详细)