Problem 2125 简单的等式

Time Limit: 1000 mSec

Memory Limit : 32768 KB

 Problem Description

现在有一个等式如下:x^2+s(x,m)x-n=0。其中s(x,m)表示把x写成m进制时,每个位数相加的和。现在,在给定n,m的情况下,求出满足等式的最小的正整数x。如果不存在,请输出-1。

 Input

有T组测试数据。以下有T(T<=100)行,每行代表一组测试数据。每个测试数据有n(1<=n<=10^18),m(2<=m<=16)。

 Output

输出T行,有1个数字,满足等式的最小的正整数x。如果不存在,请输出-1。

 Sample Input

4
4 10
110 10
15 2
432 13

 Sample Output

-1
10
3
18

我只想说这道题的后台测试数据水啊,,,题目所给的数据范围挺大的,,有超时的风险,,但思路很好想,。。。要使x*(x+sum)==n,sum=s(x,m),,从x角度出发,,x<=sqrt(n)--这个应该不用解释吧,,然后用for循环遍历看是否能找到,但限制条件是什么呢?,,我们知道,,这个数据范围(10^18)内的数转化成进制数位数和是不会超过100的,即sum不大于100;

于是便有了限制条件,, if(n/i-i>=100)    break;

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<ctype.h>
using namespace std;
int main()
{
int t,m;
long long n;
long long i;
scanf("%d",&t);
while(t--)
{
scanf("%I64d%d",&n,&m);
long long x=sqrt(n);
int f=0;
for( i=x;i>0 ; i--)
{
long long x1=i;
long long sum=0;
while(x1)
{
sum+=x1%m;
x1/=m;
}
if(i*(i+sum)==n)
{
f=1;
break;//题目已经说了输出最小的x,,但这样也能过,,无语;
}
if(n/i-i>=100)
break;
}
if(f)
printf("%I64d\n",i);
else
printf("-1\n");
}
return 0;
}

也可以从sum的角度出发,,因为sum的范围并不大,,已知m就可以还原x再判断即可;

但前提是要知道进制转换后位和不大于100;;;555555~~

Problem 2125 简单的等式(FZU),,数学题。。。的更多相关文章

  1. FZU Problem 2125 简单的等式

    思路:x绝对小于根号n,再由s(x,m)可以缩小范围.1e9十六进制大约算出每位和相加100左右.这种题直接判断范围再暴力. #include<stdio.h> #include<s ...

  2. FZU 2125 简单的等式

    Problem Description 现在有一个等式如下:x^2+s(x,m)x-n=0.其中s(x,m)表示把x写成m进制时,每个位数相加的和.现在,在给定n,m的情况下,求出满足等式的最小的正整 ...

  3. FZU 2125 简单的等式 【数学/枚举解方程式】

    现在有一个等式如下:x^2+s(x,m)x-n=0.其中s(x,m)表示把x写成m进制时,每个位数相加的和.现在,在给定n,m的情况下,求出满足等式的最小的正整数x.如果不存在,请输出-1. Inpu ...

  4. FZU 2215 Simple Polynomial Problem(简单多项式问题)

    Description 题目描述 You are given an polynomial of x consisting of only addition marks, multiplication ...

  5. FZU 2218 Simple String Problem(简单字符串问题)

    Description 题目描述 Recently, you have found your interest in string theory. Here is an interesting que ...

  6. codeforces 340C Tourist Problem(简单数学题)

    题意:固定起点是0,给出一个序列表示n个点,所有点都在一条直线上,其中每个元素代表了从起点到这个点所走的距离.已知路过某个点不算到达这个点,则从起点出发,到达所有点的方案有许多种.求所有方案走的总路程 ...

  7. poj1298 The Hardest Problem Ever 简单题

    链接:http://poj.org/problem?id=1298&lang=default&change=true 简单的入门题目也有这么强悍的技巧啊!! 书上面的代码: 很厉害有没 ...

  8. FZU2125:简单的等式

    Problem Description 如今有一个等式例如以下:x^2+s(x,m)x-n=0. 当中s(x,m)表示把x写成m进制时,每一个位数相加的和.如今,在给定n,m的情况下,求出满足等式的最 ...

  9. HDU 4627 The Unsolvable Problem(简单题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4627 题目大意:给定一个整数n(2 <= n <= 109),满足a+b=n并且[a,b] ...

随机推荐

  1. eclipse XML TAB键默认为四个空格

  2. python关于文件的一些记录

    1.文件打开: file("data.txt")或open("data.txt")注意不要漏了文件的后缀.(不加参数时,file为你默认为'r',reading ...

  3. jquery 根据文内内容获取dom

    $("table tr td:contains(5)")

  4. html5 input 标签

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content ...

  5. Web版简易五子棋

    前些时候把大三写的C++版五子棋改成Web板挂到了网上,具有一定傻瓜式智能,欢迎体验使用拍砖:http://www.zhentiyuan.com/Games/QuickFiveChess.aspx 现 ...

  6. ES-Apache Lucene

    前言 在介绍Lucene之前,我们来了解相关的历史. 有必要了解的Apache Apache软件基金会(也就是Apache Software Foundation,简称为ASF)是专门为运作一个开源软 ...

  7. android studio 定时器操作 实现定时执行相关任务

    package ipget.wenzheng.studio.ipget; import android.os.Bundle; import android.os.Handler; import and ...

  8. anzhuaggeoip

    1.因启动geoip模块,需要先安装GeoIP # wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz # tar xv ...

  9. hdu 2192 MagicBuilding

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  10. Android中单选框RadioButton的基本用法

    总结一下设置图标的三种方式: (1)button属性:主要用于图标大小要求不高,间隔要求也不高的场合. (2)background属性:主要用于能够以较大空间显示图标的场合. (3)drawableL ...