“构造算法”不是我要讨论的内容。
这个才是。。。
很多问题,构造解很容易。
比方说Codeforces 355A 瓦西亚和数字根 Vasya and Digital Root
一个自然数num的数根为1 + ((num - 1) % 9),但是这题。。。直接构造就好了。
数据范围10^1000 ,似乎除了数论方法就只有构造了。数论无力的我。。。
题目要求一个k位数,数根为d,直接输出d*10^k-1 即可。注意当且仅当位数为1时数根为0——此时原数
为零。
#include<stdio.h>
int main(){
int d,k;
scanf("%d%d",&k,&d);
if(d==0){
if(k==1){
printf("0");
return 0;
}
else{
puts("No solution");
return 0;
}
}
char c=d+'0';putchar(c);
for(int i=0;i<k-1;++i)putchar('0');
return 0;
}