hdu5802Windows 10(贪心+dfs)
来源:互联网 发布:网络直播招聘 编辑:程序博客网 时间:2024/06/05 06:00
题目大意
调节音量s到t,上升音量每秒只能上升1,下降音量每秒为2*x,x为上一次下降的音量,如果下降时休息或者上升音量则x置为1,音量最低为0
思路就是贪心的去选,每次下降到终点上的最近一点,或者终点下的一点,取得一个最小值就好。这题题意没弄明白,WA了好几发。
AC代码:
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;typedef long long ll;const ll inf=1<<30;ll sum[50],p,q,ans;void init(){ ll res=1; sum[0]=0,sum[1]=1; for(int i=2;i<=32;i++){ res=res*2; sum[i]=sum[i-1]+res; }}ll dfs(ll x,int step,int stop){if(x==q)return step;int k=0; while(x-sum[k]>q)k++;//cout<<k<<endl; if(x-sum[k]==q)return step+k;ll up=q-max((ll)0,x-sum[k]);ll res=k+max((ll)0,up-stop);return min(step+res,dfs(x-sum[k-1],step+k,stop+1));}int main(){ int t; scanf("%d",&t);init(); while(t--){ ans=inf; scanf("%lld%lld",&p,&q);if(q>=p){printf("%lld\n",q-p);continue;} printf("%lld\n",dfs(p,0,0)); }}
0 0
- hdu5802Windows 10(贪心+dfs)
- HDU5802 Windows 10[贪心+DFS]
- hdu 5802 Windows 10 (贪心+dfs)
- HDU-5802-Windows 10-贪心+dfs
- HDU 5802 Windows 10(贪心+DFS)
- 【HDOJ5802】Windows 10 (贪心 + dfs)
- 【HDU5802】Windows 10 (贪心 + dfs)
- HDU-5802-Windows 10(DFS+贪心)
- HDU 5802 Windows 10(贪心+dfs)
- HDU 5802 Windows 10 (贪心+DFS)
- poj1014--贪心算法,dfs
- poj3900The Robbery(贪心+dfs)
- poj3659 dfs+贪心
- 阶乘之和【DFS】【贪心】
- trie+dfs+贪心 big
- HDU 5802-J - Windows 10 -贪心+模拟+dfs
- UVa 1267 Network (DFS&贪心)
- Sticks(DFS+剪枝+贪心)
- UART接口
- 建造者模式(Builder)及其应用
- 面向对象相关知识点总结
- Java8大排序算法-冒泡排序
- SDK的设计
- hdu5802Windows 10(贪心+dfs)
- EM-最大期望算法
- 个人学习_Android MVP
- gdb相关
- RedHat 5下安装oracle netca找不到命令
- Linux驱动程序中的file,inode,file_operations三大结构体
- JDK与Tomcat环境变量的配置
- 插件开发之360 DroidPlugin源码分析(二)Hook机制
- php中通过post和get传递数组的方法