T1
随便搜
1 #include<bits/stdc++.h> 2 #define ll long long 3 using namespace std; 4 inline int read(){ 5 int x=0; bool f=1; char c=getchar(); 6 for(;!isdigit(c);c=getchar()) if(c=='-') f=0; 7 for(; isdigit(c);c=getchar()) x=(x<<3)+(x<<1)+(c^'0'); 8 if(f) return x; 9 return 0-x; 10 } 11 int T,len; 12 char c[12]; 13 ll L; 14 bool dfs2(int wz,ll cur,ll sum,bool Last){ 15 if(!(wz^len)) return sum+cur==L ? 1 : 0; 16 if(Last==1 && dfs2(wz,0,sum+cur,0)) return 1; 17 if(dfs2(wz+1,(cur<<3)+(cur<<1)+(c[wz]^'0'),sum,1)) return 1; 18 return 0; 19 } 20 bool dfs(int wz,ll cur,ll sum,bool Last){ 21 if(!(wz^len)) return 0; 22 if(Last==1){ 23 L=sum+cur; 24 if(dfs2(wz,0,0,0)) return 1; 25 } 26 if(Last==1 && dfs(wz,0,sum+cur,0)) return 1; 27 if(dfs(wz+1,(cur<<3)+(cur<<1)+(c[wz]^'0'),sum,1)) return 1; 28 return 0; 29 } 30 int main(){ 31 T=read(); 32 while(T--){ 33 scanf("%s",c); 34 len=strlen(c); 35 if(dfs(0,0,0,0)) printf("Yes\n"); 36 else printf("No\n"); 37 } 38 return 0; 39 }