题解:P11568 「chaynOI R1 T1」一维数组
yu1128_AKIOI
·
·
题解
思路
好像输出 n 个 1 和 m 个 1 即可。理由如下。
设一个数(若干个 1)为 10^{a}+10^{a-1}+…+10^0,另一个数(若干个 1)为 10^{b}+10^{b-1}+…+10^0。
则 nm=(10^a+10^{a-1}+10^{a-2}+…+10^0)(10^b+10^{b-1}+10^{b-2}+…+10^0)
=10^{a+b}+10^{a+b-1}+…10^a+10^{a+b-1}+10^{a+b-2}+…+10^{a-1}+…10^b+10^{b-1}+…10^0
=10^{a+b}+2\times 10^{a+b-1}+3\times 10^{a+b-2}+…+3\times 10^2+2\times 10^1+10^0
=123…321
好像是个回文数。
然而,当中间某一项系数 >10 时,前一项就会进位,使其不为回文数。
那就只能把中间的 1 改为 0。
这样,nm=(10^a+1)(10^b+1)
=10^{a+b}+10^a+10^b+1
注意特判 $n,m=1$ 的情况。
## 代码
```cpp
#include<iostream>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
if(n==1) cout<<1;
else{
cout<<1;
while((--n)>1) cout<<0;
cout<<1;
}
cout<<" ";
if(m==1) cout<<1;
else{
cout<<1;
while((--m)>1) cout<<0;
cout<<1;
}
}