codeforces 233B Non-square Equation 思维题
来源:互联网 发布:glov卸妆巾 知乎 编辑:程序博客网 时间:2024/06/05 00:51
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.
blablabla:
正常思路当然就是直接枚举x看是否符合条件,但是枚举x计算量太大耗时太长。转变思路便是枚举s(x)的值。需要注意这些值的范围。
我还是应该仔细看看unsigned怎么用。。。
n是10的18次幂 ,x必小于根下x 最大的x=999999999 s(x)=81;所以只需要枚举1到81的s(x);
已知 s(x) 和 n
用到了个简单的求根公式
#include<cstdio> #include<cmath> typedef __int64 LL; int judge(int s) { int sum=0; while(s) { sum+=s%10; s/=10; } return sum; } int main() { LL n; scanf("%I64d",&n); double a; int i,b,flag=1; for(i=1;i<=81;++i) { a=(sqrt(i*i+4*n)-i)/2; b=(int)a; if(b==a&&judge(b)==i) { printf("%d\n",b); flag=0; break; } } if(flag) printf("-1\n"); return 0; }
- 【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
- 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(数学推导)
- HDU5288
- 九度OJ 题目1015:还是A+B
- MyEclipse10下开发第一个Hibernate小程序
- 僵尸进程和孤儿进程
- 《疯狂JAVA讲义》之七——java源文件综述
- codeforces 233B Non-square Equation 思维题
- Ubuntu安装Rstudio
- golang string 和 int 的互相转换
- 解决APP开发百度地图定位一直失败的问题
- CSDN日报20170415 ——《谈谈程序员的焦虑感》
- Heap-Find Median from Data Stream
- 【应用实例】Arduino视频监控机器人小车
- android自动化测试CTS源码分析之二
- 【p1443-马的遍历】解题记录