Deceive_0769 2022-11-05 16:54 采纳率: 0%
浏览 68

P8814 [CSP-J 2022] 解密(民间数据)全是RE和TLE

题目如下链接

https://www.luogu.com.cn/problem/P8814?contestId=90215#submit
我的代码放入洛谷后的结果如下

img

全是RE和TLE
我的做题思路是_暴力枚举_
先枚举出pi+qi的范围
然后在自定义函数中进行判断一系列条件
错误代码在下方


```c++
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int jxpd(int c,int s1,int s2,int s3){
    int a,b;
    bool flag=false;
    for(int i=1;i<c/2;i++){
        a=i;
        b=c-i;
        if(s1==a*b&&s2*s3==a*b-a-b+2){
            cout<<a<<" "<<b<<endl;
            flag=true;
        }
    }
    if(!flag){
        cout<<"NO"<<endl;
    }
}
int main(){
    
    int k;
    long long ed;
    cin>>k;
    for(int i=1;i<=k;i++){
        int x,y,z;
        cin>>x>>y>>z;
        ed=z*y;
        for(int j=1;j<x;j++){
            if(ed==x-j+2){
                jxpd(j,x,y,z);
//                cout<<"lhilu"<<endl;//这是我先前debug的一行代码 
            }
        }
    }
    
    return 0;
}

请问我这里该如何改呢?

  • 写回答

2条回答 默认 最新

  • 江苏的WSH2012 2023-09-08 12:51
    关注

    试试这个

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long l;
    int main(int argc, const char * argv[])
    {
        l k;
        scanf("%lld", &k);
        for (l i = 1; i <= k; ++i)
        {
            l n,e,d;
            scanf("%lld%lld%lld", &n, &e, &d);
            l x=n-e*d+2;
            l y=sqrt((n-e*d+2)*(n-e*d+2)-4*n);
                l p=(x+y)/2;
                l q=x-p;
                if (p*q==n&&e*d==(p-1)*(q-1)+1&&p&&q)printf("%lld %lld\n", min(p,q),max(p,q));
                else printf("NO\n");
        }
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月5日

悬赏问题

  • ¥15 求解答:pytorch跑yolov8神经网络受挫
  • ¥20 Js代码报错问题不知道怎么解决
  • ¥15 gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置
  • ¥15 计算决策面并仿真附上结果
  • ¥20 halcon 图像拼接
  • ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
  • ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥100 求ASMedia ASM1184e & ASM1187e 芯片datasheet/规格书