HDU 4403 A very hard Aoshu problem (DFS暴力)

2015-07-24 05:39:20 · 作者: · 浏览: 6



题意:给你一个数字字符串,问在字符串中间加‘=’、‘+’使得‘=’左右两边相等。


1212 : 1+2=1+2, 12=12;

12345666 : 12+3+45+6=66, 1+2+3+4+56=66;

#include
  
   
#include
   
     #include
    
      #include
      #include
      
        #include
       
         #include
        
          #include
         
           #include
          
            #include
           
             #include
            
              using namespace std; #define M 20005 vector
             
              Ga,Gb; char s[50]; int l,len,ans; int a[M],b[M]; int num[55][55]; int get_num(int x,int y) { int sum=0; for(int i=x;i<=y;i++) sum=sum*10+s[i]-'0'; return sum; } void dfs2(int i,int lsum,int rsum) { if(i>=len) { if(lsum==rsum) ans++; return; } for(int k=i;k
              
               =l) dfs2(i,sum,0); for(int k=i;k