评测机是真的老了。。。
我的脑力也老了。。。
昨天写完T3之后感觉脑子就留在那了,直到现在还感觉自己神志不清。。。
T1OJ上过了(跑得挺慢但是的确过了),但是文件评测同样是开O2居然只剩下70分。。。
T3全是1.02秒左右的TLE掉了25分。。。
没什么想说的,脑子不在。
for循环用加法实现乘法。大神操作我自己都看不懂。
论玩STL会变成什么样子。int映射为vector再迭代器遍历。
然而那个map除了增加复杂度什么用都没有。。。
T1:小W的魔术
这次还真的没有打表找规律。直接按照定义式子就出来了。
“枚举”左边匹配了i位,为了防止重复,第i+1位不能匹配。然后累加所有合法的串。
1 #include<cstdio> 2 #define mod 998244353 3 #define LL long long 4 LL qpow(LL b,LL t,LL a=1){for(;t;t>>=1,b=b*b%mod)if(t&1)a=a*b%mod;return a;} 5 long long n,ans;int l;char s[1000005]; 6 main(){ 7 freopen("magic.in","r",stdin); 8 freopen("magic.out","w",stdout); 9 scanf("%lld%s",&n,s+1); 10 while(s[l+1])l++; 11 if(n==l)return printf("%lld\n",qpow(26,n)-1),0; 12 for(int i=0;i<l;++i)ans=(ans+25*qpow(26,n-l-1))%mod; 13 printf("%lld\n",(qpow(26,n)-(ans+qpow(26,n-l))+mod+mod)%mod); 14 }