Codeforces Round #462 (Div. 2) ----D

Posted hyghb

tags:

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

Codeforces Round #462 (Div. 2)

 

观察样例之后我们发现他其实很像一个k进制数,每一次我们都需要将当前位凑出一个小于k的非负整数,模拟就可以了。感觉应该会有一些细节。

 

技术分享图片
 1 #include<bits/stdc++.h>
 2 #define LL long long
 3 using namespace std;
 4 LL p;
 5 int k;
 6 int cnt;
 7 LL now;
 8 vector<int>S;
 9 int main()
10 {
11     scanf("%lld%d",&p,&k);
12     now=p;
13     while(now<0 || now>=k){
14         LL u=-now/k;
15         if(now<0&&(u*k+now!=0))u++;
16         S.push_back((int)(now+u*k));
17         now=u;
18         cnt++;
19     }
20     S.push_back((int)now);
21     cout<<cnt+1<<endl;
22     int siz=S.size();
23     for(int i=0;i<siz;i++)cout<<S[i]<<" ";
24     return 0;
25 }
View Code

 

以上是关于Codeforces Round #462 (Div. 2) ----D的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #462 (Div. 2) ----D

Codeforces Round #462 (Div. 1) BA Determined Cleanup

Codeforces Round #462 (Div. 1) A A Twisty Movement

Codeforces Round #436 E. Fire(背包dp+输出路径)

Codeforces Round #263 (Div. 2) D. Appleman and Tree 树形dp

[ACM]Codeforces Round #534 (Div. 2)