【HDOJ】2451 Simple Addition Expression
2014-08-12 00:31
351 查看
递推,但是要注意细节。题目的意思,就是求s(x) = i+(i+1)+(i+2),i<n。该表达中计算过程中CA恒为0(包括中间值)的情况。根据所求可推得。
1-10: 3
1-100: 3*4
1-1000: 3*4*4
1-10000: 3*4*4*4
1-10^n: 3*4^(n-1)。
并且需要注意,一旦发现某一位大于3,则应立即跳出累加的循环。比如,f(133) = 24,f(143) = 24。同时,单独讨论个位的情况。28行的break处理该种情况。
1-10: 3
1-100: 3*4
1-1000: 3*4*4
1-10000: 3*4*4*4
1-10^n: 3*4^(n-1)。
并且需要注意,一旦发现某一位大于3,则应立即跳出累加的循环。比如,f(133) = 24,f(143) = 24。同时,单独讨论个位的情况。28行的break处理该种情况。
#include <cstdio> #include <cstring> __int64 pre[11]; char buf[15]; int main() { int i, k, len; __int64 ans; pre[0] = 1; pre[1] = 1; for (i=2; i<11; ++i) pre[i] = pre[i-1]<<2; while (scanf("%s", buf) != EOF) { len = strlen(buf); ans = 0; for (i=0; i<len; ++i) { k = buf[i] - '0'; if (i == len-1) { if (k > 3) ans += 3; else ans += k; } else if (k > 3) { ans += pre[len-i]*3; break; } else ans += k*pre[len-i-1]*3; } printf("%I64d\n", ans); } return 0; }
相关文章推荐
- 【HDOJ】2451 Simple Addition Expression
- hdoj 2451 Simple Addition Expression
- HDOJ 2451 Simple Addition Expression
- hdu 2451 Simple Addition Expression(数位DP )成败在于细节
- hdu 2451 Simple Addition Expression 数论
- 组合数学第一发 hdu 2451 Simple Addition Expression
- hdu 2451 Simple Addition Expression(数位DP )成败在于细节
- HDU 2451 Simple Addition Expression
- hdu 2451 Simple Addition Expression
- hdu 2451 Simple Addition Expression(数位dp)
- HDU 2451 Simple Addition Expression
- HDU 2451 Simple Addition Expression(找规律,考验智商)
- hdu 2451 Simple Addition Expression(数位统计)
- 组合数学第一发 hdu 2451 Simple Addition Expression
- HDU 2451 Simple Addition Expression 组合数学
- [数位dp] hdu 2451 Simple Addition Expression
- 【DFS】hdu2451 Simple Addition Expression
- HDU2451:Simple Addition Expression
- HDU Simple Addition Expression
- HDU2451 Simple Addition Expression