cf 758D - Ability To Convert

Posted ws_ccd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cf 758D - Ability To Convert相关的知识,希望对你有一定的参考价值。

从后往前贪心就好了。各种各样0的情况太BT了。。

(各种爆long long,f**k)

 1 #include<bits/stdc++.h> 
 2 #define LL long long 
 3 #define N 100005
 4 #define lowbit(x) x&(-x)
 5 using namespace std;
 6 inline int ra()
 7 {
 8     int x=0,f=1; char ch=getchar();
 9     while (ch<0 || ch>9) {if (ch==-) f=-1; ch=getchar();}
10     while (ch>=0 && ch<=9) {x=x*10+ch-0; ch=getchar();}
11     return x*f;
12 }
13 LL n,m=1,ans;
14 string s; 
15 LL get(int l, int r)// int boom!!
16 {
17     LL sum=0;
18     for (int i=l; i<=r; i++)
19     {
20         sum=sum*10+s[i]-0;
21         if (sum>n) break;
22     }
23     return sum;
24 }
25 int main()
26 {    
27     n=(LL)ra(); cin>>s;
28     int len=s.length();
29     int last=len-1,i=len-1;
30     while (i!=-1)
31     {
32         if (s[i]!=0 && get(i,last)<n) 
33         {
34             i--;
35             if (i==-1)
36             {
37                 ans+=m*get(0,last);
38                 break;
39             }
40             continue;
41         }
42         if (s[i]==0)
43         {
44             int j=i;
45             while (j!=-1 && get(j,last)<n && s[j]==0) j--; 
46             while (s[last]==0 && get(j,last)>=n) m=m*n,last--;
47             if (s[j]!=0 && get(j,last)<n) i=j;
48             if (s[j]!=0 && get(j,last)>=n) 
49             {
50                 ans+=m*get(i,last);
51                 last=i;
52                 m=m*n;
53             }
54         }
55         if (s[i]!=0 && get(i,last)>=n)
56         {
57             ans+=m*get(i+1,last);
58             last=i;
59             m*=n;
60         }
61     }
62     cout<<ans;
63     return 0;
64 }

 

以上是关于cf 758D - Ability To Convert的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces 758D Ability To Convert(区间DP)

embody the data item with the ability to control access to itself

Codeforces-758D Ability To Convert

CodeForces 758 D Ability To Convert

「Codeforces」758D(贪心细节/dp)

Ambari:Provide ability to apply single patches on top of RU release