8 条题解

  • 0
    @ 2024-7-15 14:19:26

    看似很难,实则是一道水题

    由 $b=\left\lfloor \frac{a}{n} \right\rfloor , c=\left\lfloor \frac{b}{m} \right\rfloor$,得$ c=\left\lfloor \frac{\left\lfloor \frac{a}{n} \right\rfloor}{m} \right\rfloor=\left\lfloor \frac{a}{nm} \right\rfloor$,

    所以 ac1\left\lfloor \frac{a}{c} \right\rfloor\ge1

    再考虑其他无解:

    如果 $\left\lfloor \frac{a}{\left\lfloor \frac{a}{c} \right\rfloor} \right\rfloor\gt c$,则找不到 nmnm

    证明:略

    接下来考虑如何求解。

    最简单的解是 b=cb=c。(当 n=nm,m=1n=nm,m=1 时,bb 可以 =c=c)

    故代码如下:

    #include<bits/stdc++.h>
    using namespace std;
    //a/n/m=c
    signed main(){
    	long long t,a,b,c;
    	scanf("%lld",&t);
    	while(t--){
    		scanf("%lld%lld",&a,&c);
    		if(a/c<1||a/(a/c)<=c)printf("-1\n");
    		else printf("%lld\n",c);
    	}
    } 
    

    信息

    ID
    14
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    786
    已通过
    208
    上传者