首页 > 其他分享 >Codeforces Round #834 (Div. 3) D. Make It Round(贪心/数论)

Codeforces Round #834 (Div. 3) D. Make It Round(贪心/数论)

时间:2023-01-14 17:33:26浏览次数:64  
标签:10 834 Make two while five Round LL

https://codeforces.com/contest/1759/problem/D

题目大意:

给定一个数字n,要求扩大至多m倍,求最大的并且最多0的数字。
input 
10
6 11
5 43
13 5
4 16
10050 12345
2 6
4 30
25 10
2 81
1 7
output 
60
200
65
60
120600000
10
100
200
100
7

详解见代码内注释

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=1000200,M=4002;
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    cin>>T;
    while(T--)
    {
        LL n,m;
        cin>>n>>m;
        LL two=0,five=0,ans=1;
        //计算n里面由多少个2和5组成
	LL x=n;
	while(x%2==0)
        {
            x/=2;
            two++;
        }
        x=n;
        while(x%5==0)
        {
            x/=5;
            five++;
        }
        //如果5的个数多的话,多出来的用倍数2去匹配
        //注意扩大倍数不能超过m
        while(five>two&&ans*2<=m)
        {
            five--;
            ans*=2;
        }
        //如果2的个数多的话,多出来的用倍数5去匹配
        //注意扩大倍数不能超过m
        while(five<two&&ans*5<=m)
        {
            two--;
            ans*=5;
        }
        //剩下都是10的,直接在不超过最大限制的范围内进行扩大
        while(ans*10<=m)
        {
            ans*=10;
        }
        //答案就是n*(m/ans*ans)为最大倍数且0最多
        cout<<n*(m/ans*ans)<<endl;
    }
    return 0;
}
 

标签:10,834,Make,two,while,five,Round,LL
From: https://www.cnblogs.com/Vivian-0918/p/17052199.html

相关文章

  • 【Linux操作系统】自动化编译make和Makefile
    文章目录​​一.make/makefile简介​​​​1.什么是make,makefile?​​​​2.为什么要有make/makefile?​​​​二.makefile文件规则​​​​1.基本规则​​​​2.举一个例......
  • Educational Codeforces Round 110 C(最长连续字串,dp),D(左右子树继承贡献dp)
    C.UnstableString题目大意:给定一个长度为n的字符串且只包括'0','1','?',其中如果一个字串是由01交替组成的则称谓不稳定的,如果碰到'?'则可以将其转化为0/1,求不稳定的......
  • Cmake项目结构
    -project-CMakeLists.txt-include/-project/*.h-src/-CMakeLists.txt-*.cpp-apps/-CMakeLists.txt-app.cpp-tests/CMakeLists.txttest.cpp-extern/googletes......
  • Codeforces Round #843 (Div. 2) F. Laboratory on Pluto
    题目链接首先看问题一(算最小周长),并没有用题解的神奇结论,而是直接整除分块枚举\((n-1)/x\),取对应的最小x,在\(\sqrtn\)种可能内取最优的(能暴力算为什么要考虑结论呢)然而最......
  • Educational Codeforces Round 13
    EducationalCodeforcesRound13AJohnyLikesNumbers做法:假设答案为\(t*k\)考虑$(t-1)*k$,所以答案显然为$n-n$\(\%\)$k+k$代码:voidsolve(){in......
  • Educational Codeforces Round 16
    EducationalCodeforcesRound16https://codeforces.com/contest/7104/6:ABCEA.KingMoves#include<bits/stdc++.h>usingnamespacestd;intcnt,ans;intmain......
  • Codeforces Round #713 (Div. 3) E. Permutation by Sum(贪心)
    本来手痒想自己开把div3练手来着,佬儿叫住我组队打,就换了这场,听说除了G数学,F也是模拟,其它的都是大模拟:)模拟人可以狠狠冲,注意细节即可https://codeforces.com/contest/......
  • Educational Codeforces Round 141 (Rated for Div. 2)(持续更新)
    Preface打的跟shi一样竟然还能上分的说,C一开始写的跟shi一样WA了好几发然后D看一眼没思路就只能去肝E了,结果写了半天还是TLE第14个点,直接心态爆炸A.MakeitBeautiful......
  • Codeforces Round #843 (Div. 2)解题报告
    第一篇文章\ovo/AProblem:把只含有ab的字符串分成三份,使中间的字符串字典序是并列最大或最小,求一种方案Solution:假设前两个字符相同,让前两个字符串长度均为1,这两个字符......
  • Codeforces Round #809 (Div. 2)
    题目链接A核心思路就是一个简单的模拟,没什么好说的,居然做了我十五分钟。还是太菜了。//Problem:A.AnotherStringMinimizationProblem//Contest:Codeforces-......