AcWing 第 98 场周赛 ABC
Posted Vivian-0918
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AcWing 第 98 场周赛 ABC相关的知识,希望对你有一定的参考价值。
https://www.acwing.com/activity/content/competition/problem_list/3128/
4947. 大整数
题目大意:
给定n,k。输出n个k。
输入样例:
3 2
输出样例:
222
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18,MINN=-MAXN,INF=0x3f3f3f3f;
const LL N=1e6+10,M=2023;
const LL mod=100000007;
const double PI=3.1415926535;
#define endl \'\\n\'
int main()
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
LL T=1;
//cin>>T;
while(T--)
LL n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)
cout<<k;
return 0;
4948. 大乘积
输入样例1:
3
5 10 1
输出样例1:
50
输入样例2:
4
1 1 10 11
输出样例2:
110
输入样例3:
5
0 3 1 100 1
输出样例3:
0
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18,MINN=-MAXN,INF=0x3f3f3f3f;
const LL N=1e6+10,M=2023;
const LL mod=100000007;
const double PI=3.1415926535;
#define endl \'\\n\'
string s[N];
int main()
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
LL T=1;
//cin>>T;
while(T--)
LL n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>s[i];
LL sum=0;
string beg="1";
for(int i=1;i<=n;i++)
if(s[i]=="0")
cout<<"0";
return 0;
else
bool flag=true;
LL zero=0;
for(int j=0;j<s[i].size();j++)
if(j>=1&&s[i][j]==\'0\') zero++;
if(s[i][0]!=\'1\'||zero!=s[i].size()-1) flag=false;
if(flag==false) beg=s[i];
else sum+=s[i].size()-1;
cout<<beg;
for(int i=1;i<=sum;i++)
cout<<"0";
return 0;
4949. 末尾连续0
输入样例1:
1
输出样例1:
5
5 6 7 8 9
输入样例2:
5
输出样例2:
0
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18,MINN=-MAXN,INF=0x3f3f3f3f;
const LL N=1e6+10,M=2023;
const LL mod=100000007;
const double PI=3.1415926535;
#define endl \'\\n\'
LL mp[10];
int main()
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
LL T=1;
//cin>>T;
while(T--)
LL m;
cin>>m;
vector<LL> v;
for(LL i=1;i<=1e7;i++)
LL t=i;
while(t%2==0) mp[2]++,t/=2;
while(t%5==0) mp[5]++,t/=5;
if(min(mp[2],mp[5])==m) v.push_back(i);
cout<<v.size()<<endl;
for(int i:v)
cout<<i<<" ";
return 0;
Acwing第 59 场周赛完结
题目难度较简单,思维题为主。
https://www.acwing.com/activity/content/competition/problem_list/2015/
目录
4491. 数组操作 【思维】
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*10;
typedef long long int LL;
int a[N],s[N],temp,n;
int main(void)
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i],s[i]=s[i-1]+a[i],temp=min(temp,s[i]);
cout<<s[n]-temp;
return 0;
4492. 减法操作【思维】
质数的话,一步数到位。偶数的话次数就是除以2。其他情况则是因子都是质奇数。
那么暴力的找最小的减,此时一个奇数-一个奇数。结果就变偶数了下一步就直接一步到位了。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*10;
typedef long long int LL;
LL n,cnt;
void solve(LL n)
while(n)
if(n%2==0)
cnt+=n/2;
break;
for(LL i=3;i<=n;i+=2)
if(n%i==0)
cnt++;
n-=i;
break;
bool check(LL n)
if(n==1) return true;
for(LL i=2;i<=n/i;i++) if(n%i==0) return false;
return true;
int main(void)
cin>>n;
if(check(n)) cout<<1<<endl;
else solve(n),cout<<cnt<<endl;
return 0;
4493. 环形连通分量【找干净的环】
cf的某次的原题,当时的做法忘了咋做了。又写了一种写法。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*5+10;
int p[N],st[N],d[N],n,m;
int find(int x)
if(x!=p[x]) p[x]=find(p[x]);
return p[x];
vector< pair<int,int> >ve;
int main(void)
cin>>n>>m;
for(int i=1;i<=n;i++) p[i]=i;
int cnt=0;
while(m--)
int a,b; cin>>a>>b;
d[a]++,d[b]++;
ve.push_back(a,b);
for(int i=1;i<=n;i++) if(d[i]>2) st[i]=1;//标记为坏的
for(int i=0;i<ve.size();i++)
int a=ve[i].first,b=ve[i].second;
if(find(a)==find(b)&&!st[find(a)]) cnt++;//是一个环 且无多余的边
else
if(st[find(a)]) st[find(b)]=1;//合并前将好坏合并
p[find(a)]=find(b);
cout<<cnt;
return 0;
以上是关于AcWing 第 98 场周赛 ABC的主要内容,如果未能解决你的问题,请参考以下文章