首页 > 代码库 > 【HDOJ】4403 A very hard Aoshu problem
【HDOJ】4403 A very hard Aoshu problem
HASH+暴力。
1 /* 4403 */ 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 #include <cstdlib> 6 #include <map> 7 using namespace std; 8 9 #define MAXN 5510 11 map<int, int> tb[2];12 char s[MAXN];13 14 int get(int b, int e) {15 int ret = 0;16 17 for (int i=b; i<e; ++i)18 ret = 10*ret + s[i] - ‘0‘;19 20 return ret;21 }22 23 void myfill(int b, int e, int v, int in) {24 int tmp = 0;25 26 if (b == e)27 tb[in][v]++;28 29 for (int i=b; i<e; ++i) {30 tmp = 10 * tmp + s[i] - ‘0‘;31 myfill(i+1, e, v+tmp, in);32 }33 }34 35 int main() {36 int len;37 int i, j, k, tmp;38 int x, y;39 int ans;40 41 #ifndef ONLINE_JUDGE42 freopen("data.in", "r", stdin);43 #endif44 45 while (scanf("%s", s)!=EOF && s[0]!=‘E‘) {46 len = strlen(s);47 ans = 0;48 for (i=1; i<len; ++i) {49 tb[0].clear();50 tb[1].clear();51 myfill(0, i, 0, 0);52 myfill(i, len, 0, 1);53 for (map<int, int>::iterator iter=tb[0].begin(); iter!=tb[0].end(); iter++)54 ans += iter->second * tb[1][iter->first];55 }56 printf("%d\n", ans);57 }58 59 return 0;60 }
【HDOJ】4403 A very hard Aoshu problem
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。