Problem 2102 Solve equation

Accept: 881    Submit: 2065

Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

You are given two positive integers A and B in Base C. For the equation:

A=k*B+d

We know there always existing many non-negative pairs (k, d) that satisfy the equation above. Now in this problem, we want to maximize k.

For example, A="123" and B="100", C=10. So both A and B are in Base 10. Then we have:

(1) A=0*B+123

(2) A=1*B+23

As we want to maximize k, we finally get one solution: (1, 23)

The range of C is between 2 and 16, and we use 'a', 'b', 'c', 'd', 'e', 'f' to represent 10, 11, 12, 13, 14, 15, respectively.

 Input

The first line of the input contains an integer T (T≤10), indicating the number of test cases.

Then T cases, for any case, only 3 positive integers A, B and C (2≤C≤16) in a single line. You can assume that in Base 10, both A and B is less than 2^31.

 Output

For each test case, output the solution “(k,d)” to the equation in Base 10.

 Sample Input

3
2bc 33f 16
123 100 10
1 1 2

 Sample Output

(0,700)
(1,23)
(1,0)

题目意思很好懂吧,然而做的时候就卡在了进制转换这,特意去百度了一下怎么转10进制;

网上是这样给的:

假如一个数abcdef,是x进制数,转10进制就是a*x^5+b*x^4+c*x^3+d*x^2+e*x^1+f*x^0;看懂了吧,当时还真这样用for循环遍历了一遍,还真对,运行结果及其他测试样例也都没错,但这思路代码活生生CE了6遍;

CE:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<ctype.h>
using namespace std;
int main()
{
int t,a,b,c,x1,x2;
char aa[55],bb[55];
scanf("%d",&t);
while(t--)
{
memset(aa,'0',sizeof(aa));
memset(bb,'0',sizeof(bb));
a=b=0;
scanf("%s%s%d",aa,bb,&c);
x1=strlen(aa);
x2=strlen(bb);
int x11=x1,x22=x2;
if(c==10)
{
for(int i=0;i<x1;i++)
a=a*10+(aa[i]-'0');
for(int i=0;i<x2;i++)
b=b*10+(bb[i]-'0');
}
else
{
for(int i=0;i<x1;i++)
{
if(islower(aa[i]))
a+=(aa[i]-'a'+10)*pow(c,x11-i-1);
else
a+=(aa[i]-'0')*(pow(c,(x11-i-1)));
}
for(int i=0;i<x2;i++)
{
if(islower(bb[i]))
b+=(bb[i]-'0'+10)*(pow(c,(x22-i-1)));//记得pow好像适用于double,可能要用pow(double(c),_);
else
b+=(bb[i]-'0')*(pow(c,(x22-i-1)));
}
}
int k=a/b,d=a-k*b;
printf("(%d,%d)\n",k,d);
}
return 0;
}

就这样浪费了一个水题;

看以AC的代码发现他们都是这样转10进制的: 字符串a输入,假如长度x,是c进制数,那么转10进制   int aa=0;

(1)      for(i=0;i<x;i++)

aa=aa*10+(aa[i]-'0')//字符串本身代表的就是10进制数;

(2)

for(i=0;i<x;i++)

aa=aa*10+(aa[i]-'a'+10)//字符串本身代表的不是10进制数,,,,,百度上怎么没有,,亿脸懵逼;;;

AC:

<span style="font-size:18px;">#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<ctype.h>
using namespace std;
int main()
{
int t,a,b,c,x1,x2;
char aa[55],bb[55];
scanf("%d",&t);
while(t--)
{
a=b=0;
scanf("%s%s%d",aa,bb,&c);
x1=strlen(aa);
x2=strlen(bb);
for(int i=0; i<x1; i++)
{
if(islower(aa[i]))
a=a*c+(aa[i]-'a')+10;
else
a=a*c+(aa[i]-'0');
}
for(int i=0; i<x2; i++)
{
if(islower(bb[i]))
b=b*c+(bb[i]-'a')+10;
else
b=b*c+(bb[i]-'0');
}
int k=a/b,d=a-k*b;
printf("(%d,%d)\n",k,d);
}
return 0;
}</span>

FZU2102Solve equation的更多相关文章

  1. CodeForces460B. Little Dima and Equation

    B. Little Dima and Equation time limit per test 1 second memory limit per test 256 megabytes input s ...

  2. ACM: FZU 2102 Solve equation - 手速题

     FZU 2102   Solve equation Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & ...

  3. HDU 5937 Equation

    题意: 有1~9数字各有a1, a2, -, a9个, 有无穷多的+和=. 问只用这些数字, 最多能组成多少个不同的等式x+y=z, 其中x,y,z∈[1,9]. 等式中只要有一个数字不一样 就是不一 ...

  4. coursera机器学习笔记-多元线性回归,normal equation

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  5. CF460B Little Dima and Equation (水题?

    Codeforces Round #262 (Div. 2) B B - Little Dima and Equation B. Little Dima and Equation time limit ...

  6. Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)

    ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, , ...

  7. ACM:HDU 2199 Can you solve this equation? 解题报告 -二分、三分

    Can you solve this equation? Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Su ...

  8. [ACM_数学] Counting Solutions to an Integral Equation (x+2y+2z=n 组合种类)

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27938#problem/E 题目大意:Given, n, count the numbe ...

  9. hdu 2199 Can you solve this equation?(二分搜索)

    Can you solve this equation? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

随机推荐

  1. 479 Largest Palindrome Product 最大回文数乘积

    你需要找到由两个 n 位数的乘积组成的最大回文数.由于结果会很大,你只需返回最大回文数 mod 1337得到的结果.示例:输入: 2输出: 987解释: 99 x 91 = 9009, 9009 % ...

  2. P2956 [USACO09OCT]机器人犁田The Robot Plow

    题目描述 Farmer John has purchased a new robotic plow in order to relieve him from the drudgery of plowi ...

  3. 如何轻松实现MySQL数据库的读写分离和负载均衡?

    配置好了 Mysql 的主从复制结构后,我们希望实现读写分离,把读操作分散到从服务器中,并且对多个从服务器能实现负载均衡.读写分离和负载均衡是 Mysql 集群的基础需求,MaxScale 就可以帮着 ...

  4. CF385C Bear and Prime Numbers

    思路: 需要对埃氏筛法的时间复杂度有正确的认识(O(nlog(log(n)))),我都以为肯定超时了,结果能过. 实现: #include <bits/stdc++.h> using na ...

  5. Koa--基于Node.js平台的下一代web开发框架的安装

    koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架. 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函 ...

  6. CentOS下JRE环境变量配置

    很多时候,我们需要在CentOS上部署tomcat,从而搭建web服务器,然JDK/JRE环境是前提,这里就记录一下,在后面的时候直接使用. 下载jre-7u80-linux-x64.tar.gz,并 ...

  7. Django请求,响应,ajax以及CSRF问题

    二.request对象常用属性: Attribute Description path 请求页面的全路径,不包括域名端口参数.例如: /users/index method 一个全大写的字符串,表示请 ...

  8. 解决selenium.common.exception.WebDriverException:Message:'chromedriver' executable needs to be in Path

    'chromedriver' executable needs to be in Path 声明:本人萌新,刚学python不久记录一下自己的坑,发出来若能帮助到一些人尽早解决问题那便是极好的,( ̄▽ ...

  9. 主席树-指针实现-找第k小数

    主席树,其实就是N颗线段树 只是他们公用了一部分节点(๑•̀ㅂ•́)و✧ 我大部分的代码是从一位大佬的那里看到的 我这个垃圾程序连Poj2104上的数据都过不了TLE so希望神犇能给我看看, 顺便给 ...

  10. 模板引擎freemarker的使用(二)

    freemarker默认配置使用时,如果传到前端的值为null或者不存在,后台会报错. 处理方法: <bean id="freemarkerConfig" class=&qu ...