linkkkk
Codeforces Round #742 (Div. 2) C. Carrying Conundrum
题意:
算加法的时候进位变成向前面两个位置进位,问组成的方案数
的个数,要求
是正整数并且
思路:
因为是向前两个位置进位,奇数位和偶数位是不影响的,分开考虑就行。
比如,奇数位是
,偶数位是
。两个数相加组成
的方案数有两种,组成
的方案数都
种,所以是
种,最后减去奇数全为
和偶数全为
的情况
代码:
int main() {
int _=read;
while(_--){
string s;cin>>s;
int cnt0=0,cnt1=0;
for(int i=0;i<s.size();i++)
if(i%2) cnt0=cnt0*10+(s[i]-'0');
else cnt1=cnt1*10+(s[i]-'0');
//cout<<cnt0<<" "<<cnt1<<" "<<s<<endl;
cnt0++,cnt1++;
printf("%d\n",cnt0*cnt1-2);
}
return 0;
}