cf 758D - Ability To Convert
2024-09-05 16:45:48
从后往前贪心就好了。各种各样0的情况太BT了。。
(各种爆long long,f**k)
#include<bits/stdc++.h>
#define LL long long
#define N 100005
#define lowbit(x) x&(-x)
using namespace std;
inline int ra()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
LL n,m=,ans;
string s;
LL get(int l, int r)// int boom!!
{
LL sum=;
for (int i=l; i<=r; i++)
{
sum=sum*+s[i]-'';
if (sum>n) break;
}
return sum;
}
int main()
{
n=(LL)ra(); cin>>s;
int len=s.length();
int last=len-,i=len-;
while (i!=-)
{
if (s[i]!='' && get(i,last)<n)
{
i--;
if (i==-)
{
ans+=m*get(,last);
break;
}
continue;
}
if (s[i]=='')
{
int j=i;
while (j!=- && get(j,last)<n && s[j]=='') j--;
while (s[last]=='' && get(j,last)>=n) m=m*n,last--;
if (s[j]!='' && get(j,last)<n) i=j;
if (s[j]!='' && get(j,last)>=n)
{
ans+=m*get(i,last);
last=i;
m=m*n;
}
}
if (s[i]!='' && get(i,last)>=n)
{
ans+=m*get(i+,last);
last=i;
m*=n;
}
}
cout<<ans;
return ;
}
最新文章
- Android开发学习路线图
- log4j PatternLayout 输出解析
- 可变长度的Fibonacci数列
- php 解析json
- PetaPoco 使用总结(二)
- ubutu安装搜狗
- iOS开发~UI布局(三)深入理解autolayout
- D3D的内存类型
- Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的
- --@angularJS--指令与控制器之间较复杂的交互demo2
- [Swift]LeetCode888. 公平的糖果交换 | Fair Candy Swap
- 阿里云centos7成功安装和启动nginx,但是外网访问不了的解决方案
- java-递归练习
- windows+mysql集群搭建-三分钟搞定集群
- 1.7Oob方法的作用
- Hdu2040 亲和数
- py-day1-6 python 5个灰魔法 【len,index索引,for循环,切片】
- 阿里直播在线人数只统计rtmp格式的播放源
- Hbase常用操作(增删改查)
- 【慕课网实战】Spark Streaming实时流处理项目实战笔记五之铭文升级版