首页 > 代码库 > bzoj4416: [Shoi2013]阶乘字符串
bzoj4416: [Shoi2013]阶乘字符串
可以大胆猜想n>21时无解,至于依据,不开O2,1s,n<=21刚好能卡过去= =
并不会证= =
#include<cstdio>void up(int& a,int b){ a=a<b?b:a;}int test,n,m,i,j;char t[500];int f[1<<21],s[500][21];int main(){ scanf("%d",&test); while(test--){ scanf("%d%s",&n,t); if(n>21)puts("NO"); if(n>21)continue; for(m=0;t[m];++m) t[m]-=97; for(j=0;j<n;++j) s[m+1][j]=s[m][j]=m+1; for(i=m-1;~i;--i) for(j=0;j<n;++j) s[i][j]=j==t[i] ?i+1:s[i+1][j]; for(i=1;i<1<<n;++i) for(f[i]=j=0;j<n;++j) if(i&1<<j)up(f[i], s[f[i^1<<j]][j]); puts(f[~(~0<<n)] <=m?"YES":"NO"); }}
bzoj4416: [Shoi2013]阶乘字符串
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。