贪心——Windows10 ( HDU 5802 ) ( 2016 Multi-University Training Contest 6 1010 )
2016-08-04 20:19
417 查看
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=5802
分析:
比赛的时候没考虑到可以用上升替代停顿的情况。。。。
题解:
直接的做法是比较 往下降,然后升回来和往下降然后停顿或者上升一些后再开始下降的取值,于是可以化成一个自问题,不断递归DFS即可。
PS:需要记录停顿的次数,然后需要向上的时候就可以用停顿不上去。
标程:
http://acm.hdu.edu.cn/showproblem.php?pid=5802
分析:
比赛的时候没考虑到可以用上升替代停顿的情况。。。。
题解:
直接的做法是比较 往下降,然后升回来和往下降然后停顿或者上升一些后再开始下降的取值,于是可以化成一个自问题,不断递归DFS即可。
PS:需要记录停顿的次数,然后需要向上的时候就可以用停顿不上去。
标程:
#include <cstdio> #include <algorithm> using namespace std; int T; long long P, Q; long long dfs(long long S, long long T, long long step, long long stop) { if (S == T) return step; long long x = 0; while (S - (1 << x) + 1 > T) x++; if (S - (1 << x) + 1 == T) return step + x; long long up = (T - max((long long)0, S - (1 << x) + 1)); long long tmp = x + max((long long)0, up - stop); return min(tmp + step, dfs(S - (1 << (x - 1)) + 1, T, step + x, stop + 1)); } int main() { scanf("%d", &T); while (T--) { scanf("%lld%lld", &P, &Q); if (Q >= P) { printf("%lld\n", Q - P); continue; } printf("%lld\n", dfs(P, Q, 0, 0)); } return 0; }
相关文章推荐
- (HDU 5802)2016 Multi-University Training Contest 6 Windows 10 (贪心)
- hdu 5802 Windows 10(2016 Multi-University Training Contest 6——贪心+dfs)
- hdu 5732 subway(2016 Multi-University Training Contest 1 1010)
- hdu 5802 2016 Multi-University Training Contest 6(dfs)
- (HDU 5813)2016 Multi-University Training Contest 7 Elegant Construction (贪心、图论)
- 最长递增子序列 ( LIS )——The All-purpose Zero ( HDU 5773 ) ( 2016 Multi-University Training Contest 4 1010 )
- hdu 5821 Ball(2016 Multi-University Training Contest 8——贪心+排序)
- 数据结构 ( 优先队列&&栈 )——HDU 5818 ( 2016 Multi-University Training Contest 7 1010 )
- 贪心——HDU 5813 ( 2016 Multi-University Training Contest 7 1005 )
- 2017 Multi-University Training Contest 10 1010 Schedule && HDU 6180 (贪心)
- 贪心 ( HDU 5821 )——2016 Multi-University Training Contest 8 1001
- 2016 Multi-University Training Contest 1 1011 hdu 5733 四面体内切球
- 2016 Multi-University Training Contest 1-1004---HDU 5726 GCD
- 2016 Multi-University Training Contest 2 hdu 5734 Acperience【推公式,数学】
- 2016 Multi-University Training Contest 1-1005---HDU 5727 Necklace(枚举+二分图匹配)
- 2016 Multi-University Training Contest 2 1005 hdu 5738 计算几何
- HDU 5733 tetrahedron (2016 Multi-University Training Contest 1 计算几何)
- 2016 Multi-University Training Contest 1-1011---HDU 5733 tetrahedron(计算几何)
- 2016 Multi-University Training Contest 2 1001 hdu 5734 暴力
- hdu 5726 GCD(2016 Multi-University Training Contest 1线段树)