社区讨论

如何二分?

P8814[CSP-J 2022] 解密参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mhj0ixvd
此快照首次捕获于
2025/11/03 18:44
4 个月前
此快照最后确认于
2025/11/03 18:44
4 个月前
查看原帖
my best friend说这道题得二分,他让我尝试一下pq二分,或者p+q二分,再次求问如何二分awa
CPP
#include<bits/stdc++.h>
using namespace std;
long long N,n,p,q,e,d;
int main(){
    cin >>N;
    for(long long i=1;i<=N;i++){
        bool flag=false;  
        cin >>n>>e>>d;
        long long ed=e*d;
        for(p=1;p<=sqrt(n);p++){
            q=n/p;
            if(p*q!=n){
                continue;
            }
            if(p+q==n-ed+2){
                cout<<p<<" "<<q<<endl;
                flag=true;
                break;
            }
        }
        if(!flag){
            cout<<"NO"<<endl;
        }
    }
    return 0;
 }
thx

回复

2 条回复,欢迎继续交流。

正在加载回复...