题意:给你一个数字字符串,问在字符串中间加‘=’、‘+’使得‘=’左右两边相等。
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