Acwing第 15 场周赛未完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 15 场周赛未完结相关的知识,希望对你有一定的参考价值。
3826. 青蛙跳【难度: 简单 / 知识点: 模拟】
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
int main(void)
{
int t; cin>>t;
while(t--)
{
LL a,b,k; cin>>a>>b>>k;
LL sum=0;
sum+=(a-b)*(k/2);
if(k%2) sum+=a;
cout<<sum<<endl;
}
return 0;
}
3827. 最小正整数【难度: 一般 / 知识点: 数论】
其实就是求最大的公约数。
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
LL gcd(LL a,LL b) {return b?gcd(b,a%b):a;}
int main(void)
{
int t; cin>>t;
while(t--)
{
LL a,k; cin>>a>>k;
k=pow(10,k);
cout<<a*k/gcd(a,k)<<endl;
}
return 0;
}
比赛的时候想复杂了,想的是公共的因子 2和5 一对可以凑一个10
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
LL check(LL n,LL k)
{
map<int,int>mp;
for(int i=2;i<=n/i;i++)
{
while(n%i==0) mp[i]++,n/=i;
}
if(n!=1) mp[n]++;
LL sum=1,cnt1=k,cnt2=k;
LL s1=0,s2=0;
for(auto i=mp.begin();i!=mp.end();i++)
{
if(i->first!=2&&i->first!=5) sum=sum*pow(i->first,i->second);
if(i->first==2) s1=i->second;
if(i->first==5) s2=i->second;
}
sum=sum*pow(2,max(k,s1))*pow(5,max(k,s2));
return sum;
}
int main(void)
{
int t; cin>>t;
while(t--)
{
LL n,k; cin>>n>>k;
cout<<check(n,k)<<endl;
}
return 0;
}
以上是关于Acwing第 15 场周赛未完结的主要内容,如果未能解决你的问题,请参考以下文章