Codeforces Round #392 (Div. 2)-D. Ability To Convert
题目大意:给你一个数字 n 接下来再输入一个数字 w(<10^60),表示w这个数字是 n 进制的,
并且超过十进制也用数字表示,这样就有多种组合了,问你所有组合中(划分方案中)原来的
数字十进制最小是多少。
思路:网上说可以用贪心做,但是我感觉那个贪心比较奇怪,不是很理解,还是用dp靠谱。
用dp[ i ] 表示从到第 i 个数字为止,最小十进制数最小是多少。
初始状态 dp[ 0 ]=0。然后我们枚举起点向后更新。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll inf=1e18;
char s[];
int n;
ll dp[];
int main()
{
cin>>n;
scanf("%s",s+);
int len=strlen(s+);
for(int i=;i<=len;i++) dp[i]=inf;
dp[]=;
for(int i=;i<=len;i++)
{
if(s[i]=='')//起始值不能为0,所以单独一位。
{
dp[i]=min(dp[i],n*dp[i-]);
continue;
}
ll now=;
for(int j=i;j<=len;j++)
{
now=now*+s[j]-'';
if(now>=n) break; //超过n了
if((inf-now)/n>=dp[i-]) dp[j]=min(dp[j],dp[i-]*n+now);// 不能直接用dp[i-1]*n+now判断,会爆long long
}
}
cout<<dp[len]<<endl;
return ;
}
ps:以后遇到划分的问题,尽量考虑dp!!!!!
Codeforces Round #392 (Div. 2)-D. Ability To Convert的更多相关文章
- Codeforces Round #392 (Div. 2)-758D. Ability To Convert(贪心,细节题)
D. Ability To Convert time limit per test 1 second Cmemory limit per test 256 megabytes input standa ...
- 【动态规划】Codeforces Round #392 (Div. 2) D. Ability To Convert
D. Ability To Convert time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Codeforces Round #392 (Div. 2) F. Geometrical Progression
原题地址:http://codeforces.com/contest/758/problem/F F. Geometrical Progression time limit per test 4 se ...
- Virtual Codeforces Round #392 (Div. 2)
下午闲来无事开了一场Virtual participation 2h就过了3道水题...又跪了..这只是Div. 2啊!!! 感觉这次直接就是跪在了读题上,T1,T2读题太慢,T3还把题读错了 要是让 ...
- Codeforces Round #392 (Div. 2) - C
题目链接:http://codeforces.com/contest/758/problem/C 题意:给定N*M矩阵的教室,每个位置都有一个学生,Sergei坐在[X,Y],然后老师会问K个问题,对 ...
- Codeforces Round #392 (Div. 2) - B
题目链接:http://codeforces.com/contest/758/problem/B 题意:给定n个点灯的情况,灯只有四种颜色RBGY,然后如果某个灯坏了则用'!'表示,现在要求将坏的灯( ...
- Codeforces Round #392 (Div. 2) - A
题目链接:http://codeforces.com/contest/758/problem/A 题意:给定N个城市的福利,国王现在想让每个城市的福利都一致.问最少需要花多少钱使得N个城市的福利值都一 ...
- Codeforces Round #392 (Div. 2)
D题,给出n,k,k是n进制数,但是大于十进制时,它的表示方法仍为十进制那种,比如16进制下的15,我们可以看成就是15,或者1|5,也就是1×16+5 = 21,让你求出能表达的最小十进制数 从后面 ...
- Codeforces Round #392 (Div. 2) A B C 水 模拟 暴力
A. Holiday Of Equality time limit per test 1 second memory limit per test 256 megabytes input standa ...
随机推荐
- C#窗口防止闪烁两种方法
public class PaintIncrease { public static void SetDoubleBuffered(object obj) { Type type = obj.GetT ...
- buildroot构建项目(六)--- u-boot 2017.11 适配开发板修改 4 ---- 系统启动初始化之三
一.内存控制器 在关闭了MMU和caches 之后 就进入lowlevel_init 函数,对内存控制器进行初始化.lowlevel_init.S (board\samsung\mini2440) 1 ...
- Java SE之Java中堆内存和栈内存[转/摘]
[转/摘]1-3Java中堆内存和栈内存 注解:内存(Memory)即 内存储器,主存,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器(辅存)交换的数据. Java中把内存分为两种:栈 ...
- CentOS7_JDK安装和环境变量配置
1.下载 curl -O http://download.Oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz 2.改名 mv ...
- struct 与 class 的区别
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能. struct能包含成员函数吗? 能! struct能继承吗? 能!! s ...
- David McCullough, Jr.为韦斯利高中毕业生演讲〈你并不特别〉
Dr. Wong, Dr. Keough, Mrs.Novogroski, Ms. Curran, members of the board of education, familyand frien ...
- nodejs 访问网站并操作xpath
var xpath = require('xpath'); //引用xpath包 var dom = require('xmldom-silent').DOMParser;//引用xmldom包 va ...
- ES系列九、ES优化聚合查询之深度优先和广度优先
1.优化聚合查询示例 假设我们现在有一些关于电影的数据集,每条数据里面会有一个数组类型的字段存储表演该电影的所有演员的名字. { "actors" : [ "Fred J ...
- 【转】Source Insight中文注释为乱码的解决办法
我网上查了一堆解决办法,但是都是2017年以前的,并且都是针对于source insight 3.5及以下版本的解决方案,软件版本都到4.0了,应该有新方法出现. 干货:Source Insight ...
- SPI、IIC、IIS、UART、CAN、SDIO、GPIO、USB总线协议
SPI.IIC.IIS.UART.CAN.SDIO.GPIO总线协议 SPI(Serial Peripheral Interface:串行外设接口)SPI总线由三条信号线组成:串行时钟(SCLK).串 ...