CSP-J 2022 T2-解密 原题目链接 题目描述# 给定一个正整数kk,有kk次询问,每次给定三个正整数ni,ei,dini,ei,di,求两个正整数pi,qipi,qi,使ni=pi×qini=pi×qi、ei×di=(pi−1)(qi−1)+1ei×di=(pi−1)(qi−1)+1。 输入格式#...
p = i, q = n / i; if(e*d == n - q - p + 2){ if(p > q) swap(p, q); cout << p << " " << q << endl; flag = true; break; } } if(!flag) cout << "NO" << endl; } return 0; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16...
代入② 式得 p(m - p) = n ,即 p^2 - mp + n = 0 利用一元二次方程求解公式可得, 由于题中说 p,q 为正整数,所以 m^2 - 4n 必须为完全平方数, 我们令 r = \sqrt{m^2 - 4n} ,如果 r^2 = m^2 - 4n ,则说明 r 为整数, 此时 p=(m-r)/2, q=(m+r)/2 ,输出即可,否则输出...
CSP2022-T2(解密) 【题目来源】:http://oj.tfls.net/d/lnzt/p/14 【分析】由题目可知:n=p×q,e×d=(p−1)(q−1)+1,化解可得:e×d=p×q-p-q+1+1=n-p-q+2,又从题目可知:m=n-e×d+2,合并可得,m=p+q。 【20分】枚举,时间复杂度O(n*k) (实测40分) 1#include <bits/stdc++...
cout << cnt_1 << ' ' << cnt_2 << endl; return 0; } 上升点列 简单DP, `DP[i][j]` 表示以第i个点为结尾,补j个点能获取最长的序列长度。 需要考虑可以把点补在最后。 #include <bits/stdc++.h> using namespace std; typedef long long ll; ...
2022 CSP-J第二轮复赛题解 在网上看到一篇较详细的讲解,觉得讲解的非常好! 第一题:乘方 题目描述 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数和,求b 的值是多少。b即个相乘的值,例如即为个相乘,结果为。 “简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。
2022CCF非专业级软件能力认证 CSP-J/S2022第二轮认证 入门级 时间:2022年10月29日08:30∼12:00 题目名称乘方解密逻辑表达式上升点列 题目类型传统型传统型传统型传统型 目录powdecodeexprpoint 可执行文件名powdecodeexprpoint 输入文件名pow.indecode.inexpr.inpoint.in ...
T2 解密 题目描述 给定一个正整数 k ,有 k 次询问,每次给定三个正整数 n_i, e_i, d_i ,求两个正整数 p_i, q_i ,使 n_i = p_i \times q_i、 e_i \times d_i = (p_i - 1)(q_i - 1) + 1。 输入格式 第一行一个正整数 k ,表示有 k 次询问。 接下来 k 行,第 i 行三...
CSP-J 2022 题解 CSP-J 2022 第二轮 乘方、解密、逻辑表达式、上升点列 题解 T1 乘方 题目描述 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数aa和bb,求abab的值是多少。 abab即bb个aa相乘的值,例如2323即为33个22相乘,结果为2×2×2=82×2×2=8。
int k; int main() { scanf("%d",&k); for(int i=1;i<=k;i++) { long long n,d,e; scanf("%lld %lld %lld",&n,&d,&e); long long m=n-d*e+2; long long r=m/2,l=1;//因为p<=q,所以我们可以只二分左部分的区间 ...