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 场周赛未完结的主要内容,如果未能解决你的问题,请参考以下文章

Acwing第 70 场周赛未完结

Acwing第 70 场周赛未完结

Acwing第 70 场周赛未完结

Acwing第 65 场周赛未完结

Acwing第 65 场周赛未完结

Acwing第 65 场周赛未完结