(HDU 5802)2016 Multi-University Training Contest 6 Windows 10 (贪心)
2016-08-06 20:54
567 查看
思路
为什么贪心题/搜索题也可以这么难TAT对于给定的n,m,如果n≤m可以直接给出答案
对于n>m的情况
答案会出现在一直往下减再往上加和一直往下减休息几次再减之中
如果cur>tar的情况,可以一直往下减
休息一下的次数可以用来抵消往上加的次数
题目说不能减到0以下,是指如果减了会小于0,那么音量变成0(不是说不能减)
任何时候执行加法效果都是一样的
代码
#include <bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define rep(i,a,b) for(int i=a;i<b;i++) #define debug(a) printf("a =: %d\n",a); const int INF=0x3f3f3f3f; const int maxn=1e6+50; const int Mod=1000000007; const double PI=acos(-1); typedef long long ll; using namespace std; int main() { #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif int T,cur,tar; scanf("%d",&T); while(T--){ scanf("%d %d",&cur,&tar); if (cur<=tar) printf("%d\n", tar-cur); else{ int ans=INF,waitCnt=0,downCnt=0; int x=1; while(cur>=tar){ // cout<<cur<<" "<<tar<<endl; downCnt++; cur-=x; x<<=1; if (cur<=tar){ if (tar-cur<=waitCnt){ ans=min(ans,downCnt+waitCnt); }else{ ans=min(ans,downCnt+max(tar-max(cur,0),waitCnt)); //wait waitCnt++; x>>=1; cur+=x; x=1; downCnt--; } } } printf("%d\n",ans); } } return 0; }
相关文章推荐
- hdu 5802 Windows 10(2016 Multi-University Training Contest 6——贪心+dfs)
- 贪心——Windows10 ( HDU 5802 ) ( 2016 Multi-University Training Contest 6 1010 )
- 2016 Multi-University Training Contest 10 [HDU 5861] Road (线段树区间更新+差分数组)
- 2017 Multi-University Training Contest 10 1008 Monkeys&& HDU 6178 (贪心+超级读入挂fread)
- HDU 5861 Road (线段树) 2016 Multi-University Training Contest 10
- 2017 Multi-University Training Contest 10 && HDU 6178 Monkeys 【贪心||树形DP】
- 2017 Multi-University Training Contest 10 1010 Schedule && HDU 6180 (贪心)
- 贪心 ( HDU 5821 )——2016 Multi-University Training Contest 8 1001
- HDU 5860 Death Sequence (递推 + 约瑟夫环 + 思维)——2016 Multi-University Training Contest 10
- hdu 5867 Water problem(2016 Multi-University Training Contest 10——水题)
- hdu 5821 Ball(2016 Multi-University Training Contest 8——贪心+排序)
- hdu 5861Road(2016 Multi-University Training Contest 10——线段树+扫描线)
- hdu 5858 Hard problem(2016 Multi-University Training Contest 10——数学题)
- 贪心——HDU 5813 ( 2016 Multi-University Training Contest 7 1005 )
- hdu 5802 2016 Multi-University Training Contest 6(dfs)
- (HDU 5813)2016 Multi-University Training Contest 7 Elegant Construction (贪心、图论)
- hdu 5860 Death Sequence(2016 Multi-University Training Contest 10——递推)
- hdu 5733 tetrahedron(2016 Multi-University Training Contest 1计算几何)
- 2015 Multi-University Training Contest 10(hdu 5406 - hdu 5416)
- 2016 Multi-University Training Contest 1 1001 hdu 5723 DFS+并查集最小生树