首页 > 其他分享 >Codeforces Round 644 (Div. 3) D. Buying Shovels(数论)

Codeforces Round 644 (Div. 3) D. Buying Shovels(数论)

时间:2023-03-22 21:48:13浏览次数:67  
标签:const 包装 LL Codeforces 644 铲子 Div Shovels 999999733

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

D. Buying Shovels

题目大意:

一个人想买正好n把铲子。店内有k种包装的铲子:第i种包装正好由i把铲子组成(1≤i≤k)。这家商店有无限数量的包装。

选择一种类型的包装,然后购买几个(一个或多个)。

为了准确得到n把铲子,需要购买的最小包装数量是多少?
input 
5
8 7
8 1
6 10
999999733 999999732
999999733 999999733
output 
2
8
1
999999733
1

详解见代码内部

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18,MINN=-MAXN;
const LL N=2e6+10,M=4004;
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);
    int T=1;
    cin>>T;
    while(T--)
    {
        LL n,m;
        cin>>n>>m;
        if(n<=m) cout<<"1"<<endl;
        else if(m==1) cout<<n<<endl;
        else
        {
            //想买n个铲子,m种包装(每个包装有i个铲子)
            LL maxn=n;//初始化需要n个,也就是只买第一种
            for(int i=1;i*i<=n&&i<=m;i++)//找出处在条件内的最大公约数
            {
                if(n%i==0)
                {
                    maxn=min(maxn,n/i);
                    //如果更大的数字(另一半)也符合条件的话,也参与比较运算
                    if(n/i<=m) maxn=min(maxn,n/(n/i));
                }
            }
            cout<<maxn<<endl;
        }
    }
    return 0;
}

标签:const,包装,LL,Codeforces,644,铲子,Div,Shovels,999999733
From: https://www.cnblogs.com/Vivian-0918/p/17245554.html

相关文章

  • Codeforces Round 859 (Div
    F.BouncyBall给定\(n×m\)矩形,起点\(st\),终点\(ed\),有一小球从起点出发,每次可以选择4个方向,如果碰到边界就反弹,询问最后能否到达终点题解:\(DFS\)+\(map\)记录状......
  • Edu Round 板刷计划 1. Educational Codeforces Round 1 题解
    ChangeLog:2023.03.21开坑。A-TrickySum简单题。注意到\(n\)以内\(2\)的幂次只有\(O(\logn)\)个,因此只要先算出\(1\)~\(n\)里所有数的和再减去\(2\)......
  • Codeforces Round 368 (Div. 2) D. Persistent Bookcase 主席树维护bitset
    在学主席树时找到了这道题本来yyyy了一个二维的主席树这种东西,然后发现很多信息好像维护不了观察到n和m都很小,考虑把一整行看成一个节点,开一个bitset然后区间取反、单点......
  • Codeforces Round 857 (Div. 2) C-The Very Beautiful Blanket
    题目地址题意:构造一个二维数组,使得任意一个4*4的子矩阵满足:A11⊕A12⊕A21⊕A22=A33⊕A34⊕A43⊕A44A13⊕A14⊕A23⊕A24=A31⊕A32⊕A41⊕A42Solution(思路来源:知乎xioac......
  • 整个div居中,不是div中的内容居中
    首先,在jsp前面加入<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">......
  • Codeforces Round 859 (Div. 4)
    A.PlusorMinus#include<bits/stdc++.h>usingnamespacestd;int32_tmain(){ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);i......
  • CF 1368B Codeforces Subsequences
    题目地址题意:给你一个数n,构造一个字符串,使得至少有n个子串为codeforcesSolution用贪心的思想肯定是只在codeforces基础上修改对于每个字符,对答案的贡献都是乘以字符的......
  • CF855 Div3 VP 游记
    比赛链接好长时间不写博文了甚至快忘记了(今天水一发Div3游记,在Div4比赛之前。第一次VP,当然得选一个简单点的了,打了50分钟多一点。排名不错,400多。$T1$:开始时......
  • Codeforces Round 858 (Div. 2)
    Preface这场CF打的好难受啊,A刚开始忘记切换语言了CE了两发,B漏了一种情况挂了一发,C纯靠暴力找性质,D比赛时没人写我题目都没仔细看然后E本来秒出了解法,结果就是因为unorder......
  • Educational Codeforces Round 115 (Rated for Div. 2)(D,E)
    EducationalCodeforcesRound115(RatedforDiv.2)(D,E)DD题目给出\(n\)个问题,每个问题都会有一个主题和一个难度,并且没有两个题目的问题和主题都是一样的,我们需要选......