CF1674C的题解
有意思的题目。
还是比较好想的。
先考虑 -1
的情况,可以想到,如果 a
的话,那么这个新的 a
又能被下一个
剩下的,还是有两种情况:
-
如果
只有一个字符a
,那么 无论怎么被替换都是一样的(全部都是a
),所以,这种情况输出1
。 -
如果不是第
1
种情况,那么最终的答案就为:其实上面这个式子很好理解,只要从
里分别选出 个, 个, 个,......, 个a
出来被替换就是最后的方案数。根据组合数的定义,可以知道上面的式子就是
。为了加快效率,可以使用
cmath
的pow
函数,也可以先预处理所有的 的值。
code
#include<cstdio>
#include<cstring>
int q;
char s[100],t[100];
unsigned long long pow[100];
void init()
{
pow[0]=1;
for(int i=1;i<=50;i++) pow[i]=pow[i-1]*2;
}
int main()
{
init();
scanf("%d",&q);
while(q--)
{
scanf(" %s %s",s+1,t+1);
int le=strlen(s+1);
int len=strlen(t+1);
//-1
if(len>1)
{
bool yes=0;
for(int i=1;i<=len;i++)
if(t[i]=='a')
{
yes=1;
break;
}
if(yes)
{
printf("-1\n");
continue;
}
else printf("%lld\n",pow[le]);
}
else
{
if(t[1]=='a') printf("1\n");
else printf("%lld\n",pow[le]);
}
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构