Codeforces758D---Ability To Convert
来源:互联网 发布:面向对象编程的优势 编辑:程序博客网 时间:2024/06/06 07:07
Ability To Convert
Alexander is learning how to convert numbers from the decimal system to any other, however, he doesn't know English letters, so he writes any number only as a decimal number, it means that instead of the letter A he will write the number 10. Thus, by converting the number 475 from decimal to hexadecimal system, he gets 11311 (475 = 1·162 + 13·161 + 11·160). Alexander lived calmly until he tried to convert the number back to the decimal number system.
Alexander remembers that he worked with little numbers so he asks to find the minimum decimal number so that by converting it to the system with the base n he will get the number k.
The first line contains the integer n (2 ≤ n ≤ 109). The second line contains the integer k (0 ≤ k < 1060), it is guaranteed that the number k contains no more than 60 symbols. All digits in the second line are strictly less than n.
Alexander guarantees that the answer exists and does not exceed 1018.
The number k doesn't contain leading zeros.
Print the number x (0 ≤ x ≤ 1018) — the answer to the problem.
1312
12
1611311
475
20999
3789
172016
594
In the first example 12 could be obtained by converting two numbers to the system with base 13: 12 = 12·130 or 15 = 1·131 + 2·130.
想法:快速幂+模拟
代码:
#include<stdio.h>
#include<string.h>
long long quick1(long long x,long long n)
{
long long a=x;
long long ans=1;
while(n)
{
if(n&1)
ans=ans*a;
a=a*a;
n>>=1;
}
return ans;
}
int main()
{
long long n;
char c[100];
while(scanf("%d",&n)!=EOF)
{
scanf("%s",c);
long long len=strlen(c);
long long now=0;
long long i;
long long ans=0;
long long f1;
for(i=len-1;i>=0;i--)
{
long long now1=c[i]-'0';
long long g=1;
f1=i;
while(i-1>=0&&now1+(c[i-1]-'0')*quick1(10,g)<n&&now1+1*quick1(10,g)<n)
{
now1=now1+(c[i-1]-'0')*quick1(10,g);
g++;
i--;
if(c[i]!='0')
f1=i;
}
i=f1;
ans+=now1*quick1(n,now);
now++;
}
printf("%lld\n",ans);
}
return 0;
}
- Codeforces758D Ability To Convert
- Codeforces758D---Ability To Convert
- Ability To Convert
- Ability To Convert
- codeforces 758 D. Ability To Convert
- codeforces 392 div2 D ability to convert
- 【Codeforces 758 D Ability To Convert】
- Codeforces 758D-Ability To Convert
- Codeforces 758D Ability To Convert 【贪心】
- cf 758 D Ability To Convert (dp)
- codeforces 758D-D - Ability To Convert 数学细节题
- Codeforces Round #392 (Div. 2)D Ability To Convert
- Codeforces Round #392 (Div. 2) D Ability To Convert
- Codeforces Round #392 (Div. 2)Ability To Convert
- Codeforces Round #392 (Div. 2)-D. Ability To Convert(贪心+dp)
- Codeforces Round #392(Div. 2) D Ability To Convert【贪心+谨慎】
- CF758D---Ability To Convert(模拟+贪心思想(仅仅是思想))
- Homing pigeons share our ability to build knowledge across generations
- 【C语言】动态内存分配
- web开发常见安全问题(SQL注入、XSS攻击、CSRF攻击)
- Priject Euler problem 1:multiples of 3 or 5
- 数据结构:数组队列
- 程序猿必须知道的一些有用的(外国)网站
- Codeforces758D---Ability To Convert
- 深度学习(一)深度学习学习资料
- 简洁Java之道
- Linux 学习-" "(双引号)与 ' '(单引号)的区别
- Sorting Information with Comparable -Swift中实例的排序问题
- Docker源码分析(四)之Docker Server
- Log4cpp 库安装及使用
- JS的面向对象-工厂方式-原型-继承
- 数据结构:链表队列