传送门
题意:
思路:
每步可加kik^iki,也可以跳过不加,看能否构成给定数组
数组中的0是不需要处理的
我们直接一步一步把数分解即可,看要用到的i是否够用,每个i只能用一次
做的过程:
假设k=9,有一个数是b[i]=93+94+959^3+9^4+9^593+94+95
int l=0;//要用的幂次
while(1){
while(b[i]%k==0){
b[i]/=k;
l++;
}// l=3 b[i]=1+9+9^2
if(p[l]!=1){
flag=0;
break;
}
p[l]=0;
b[i]--;//b[i]=9+9^2,然后继续循环处理b[i]即可
if(b[i]%k!=0){
flag=0;
break;
}
if(b[i]==0)break;
}
代码:
#include
#include
#include
#include
#include
#include
#include
作者:_Alexander
CodeForces
rated
round
div