Codeforces-----233B---Non-square Equation暴力枚举
来源:互联网 发布:java语言编译器win10 编辑:程序博客网 时间:2024/06/05 07:34
Non-square Equation
Let's consider equation:
where x, n are positive integers,s(x) is the function, equal to the sum of digits of numberx in the decimal number system.
You are given an integer n, find the smallest positive integer root of equationx, or else determine that there are no such roots.
A single line contains integer n (1 ≤ n ≤ 1018) — the equation parameter.
Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to usecin, cout streams or the%I64d specifier.
Print -1, if the equation doesn't have integer positive roots. Otherwise print such smallest integerx (x > 0), that the equation given in the statement holds.
2
1
110
10
4
-1
In the first test case x = 1 is the minimum root. Ass(1) = 1 and 12 + 1·1 - 2 = 0.
In the second test case x = 10 is the minimum root. Ass(10) = 1 + 0 = 1 and 102 + 1·10 - 110 = 0.
In the third test case the equation has no roots.
且x,n为正整数,所以遍历s(x)即可,再根据一元二次方程求根公式(-b+sqrt(b*b-4*a*c))/ 2 判断s(x)与x是否满足即可
#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<string>#include<algorithm>#include<map>#include<queue>#include<vector>#define PI acos(-1.0)#define INF 0x3f3f3f3f#define CL(a, b) memset(a, b, sizeof(a))using namespace std;typedef __int64 LL;const int MAXN = 5e5+10;const int MOD = 1e9+7; char s[50], str[50];bool judge(LL a, LL b, LL c){return a*a + a*b == c;}bool Judge(LL a, LL b){LL ans = 0;while(a){ans += a%10;a /= 10;}return ans == b;}int main(){ LL t, x, c, ans, kcase = 1; scanf("%I64d", &t);bool flag = false;for(LL i = 1; i <= 81; i++){LL v = i*i+4*t;if(sqrt(v)*sqrt(v) == v){//x为正整数,v必定是完全平方数x = (sqrt(v)-i)/2;if(judge(x, i, t) && Judge(x, i)){flag = true;break;}}}printf("%I64d\n", flag ? x : -1); return 0; }
- Codeforces-----233B---Non-square Equation暴力枚举
- CodeForces 233B Non-square Equation
- CodeForces 233B Non-square Equation
- CodeForces-233B-Non-square Equation
- CodeForces 233B. Non-square Equation【状压】
- 【codeforces 233 B Non-square Equation】+ 思维
- Codeforces 233B Non-square Equation (数学) -- 解题报告
- 【CodeForces】233B - Non-square Equation(思维)
- Codeforces 233B:Non-square Equation(数学+思维)
- Codeforces 233B Non-square Equation (数学+思维)
- CodeForces 233B Non-square Equation (数学)
- Codeforces 233B Non-square Equation(数学)
- 【Codeforces-233B】-Non-square Equation(思维,公式转换)
- codeforces 233B Non-square Equation 思维题
- Non-square Equation CodeForces
- B. Non-square Equation
- CodeForces 233B Non-square Equation(数学问题方程转化)
- 【codeforces】Non-square Equation(数学推导)
- 设置tomcat默认启动项目
- 逆向笔记2
- js与php对象数组的不同点分析以及怎样应用json数据
- 逆向笔记3
- 无法查找或打开 PDB 文件解决办法
- Codeforces-----233B---Non-square Equation暴力枚举
- Deep Learning Libraries by Language
- 结束Activity
- 关于Div弹出层无法取值的解决方法
- java集合类概述(学习笔记)
- NDK配置常见错误及解决
- tomcat系列-04-启用APR
- Re0模板系列: Floyd最短路
- Linux远程管理-SSH、VNC