Acwing第 57 场周赛未完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 57 场周赛未完结相关的知识,希望对你有一定的参考价值。
懒了,只做俩题。第三题懒的看了
https://www.acwing.com/activity/content/competition/problem_list/1974/
目录
4485. 比大小
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*5+10;
typedef long long int LL;
LL n,m,s1,s2,a[N],b[N];
int main(void)
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i],s1+=a[i];
for(int i=1;i<=n;i++) cin>>b[i],s2+=b[i];
if(s1>=s2) puts("Yes");
else puts("No");
return 0;
4486. 数字操作【数学】
数学题,刚开始以为dfs或者最短路建图可做。后来一想就是数学思维题。
经过操作后最小的数一定是这些质数因子的乘积,那么关键问题就是在于求次数。
#include<bits/stdc++.h>
using namespace std;
void solve()
int n; cin>>n;
if(n==1)
puts("1 0");
return;
vector< pair<int,int> >ve;
int ans=1,cnt=0,flag=0,maxv=0;
for(int i=2;i<=n/i;i++)
int s=0;
while(n%i==0) s++,n/=i;
if(s) ve.push_back(i,s),ans*=i;
if(n!=1) ve.push_back(n,1),ans*=n;
map<int,int>mp,st;
for(int i=1;i<=25;i++) mp[pow(2,i)]++;
for(int i=0;i<ve.size();i++)
st[ve[i].second]++;
if(!mp[ve[i].second]) flag=1;//不是 2,4,8这种数
maxv=max(maxv,ve[i].second);
for(int i=1;i<=25;i++)
if(pow(2,i)>=maxv)
cnt=i;
break;
if(st.size()!=1) flag=1;//数的种类多于1
if(maxv==1) cout<<ans<<" "<<0<<endl;//已经是最简的了
else cout<<ans<<" "<<cnt+flag;
int main(void)
solve();
return 0;
以上是关于Acwing第 57 场周赛未完结的主要内容,如果未能解决你的问题,请参考以下文章