hdu 3555 Bomb 数位dp
2013-05-16 20:45
381 查看
/* hdu 2089的简化 */ #include<iostream> using namespace std; __int64 dp[22][3]; void run1() { int i; dp[0][0] = 1; dp[0][1] = dp[0][2] = 0; for( i=1; i <= 21; i++ ) { dp[i][0] = dp[i-1][0]*10 - dp[i-1][1]; dp[i][1] = dp[i-1][0]; dp[i][2] = dp[i-1][2]*10 + dp[i-1][1]; } } __int64 run(__int64 n) { int i, l=0, a[22]; __int64 s = 0; a[0] = 0; while(n) { a[++l] = n % 10; n /= 10; } a[l+1] = 0; bool p = false; for( i=l; i > 0; i-- ) { s += dp[i-1][2] * a[i]; if(p) s += dp[i-1][0] * a[i]; else if(a[i] > 4) s += dp[i-1][1]; if(a[i+1] == 4 && a[i] == 9) p = true; } if(p) s++; return s; } int main() { run1(); int n; scanf("%d", &n); while(n--) { __int64 m; scanf("%I64d", &m); printf("%I64d\n", run(m)); } return 0; }
相关文章推荐
- HDU 3555 Bomb (数位DP)
- HDU - 3555 Bomb (数位DP)
- 【数位dp】HDU - 3555 Bomb
- HDU 3555 Bomb (数位dp)
- HDU 3555 Bomb(数位DP)
- HDU3555——Bomb(数位dp入门)
- HDU 3555 Bomb 【数位dp】
- hdu 3555 - Bomb [数位dp]
- HDU-3555 Bomb (数位DP)
- hdu 3555 Bomb 数位dp
- HDU 3555 Bomb(数位DP)
- hdu 3555 Bomb(数位dp)
- HDU 3555 Bomb(数位DP)
- 【数位DP】 HDU 3555 Bomb
- HDU-3555-Bomb【数位dp】
- hdu 3555 bomb 数位dp
- HDU 3555 Bomb(数位DP)
- hdu 3555 Bomb(数位DP)
- hdu 3555 Bomb (数位DP)
- HDU-3555 Bomb 数位DP