HDU 5945 Fxx and game(dp+单调队列优化)
来源:互联网 发布:编辑网页的软件 编辑:程序博客网 时间:2024/06/07 15:07
题目分析
当初打bestcoder的时候我用广搜写的,并且我知道会超时,但是因为那天脑子太昏了不知道怎么优化,赛后rejudge果然tle。这道题就是用单点队列存放当前位置的前t个位置中最小的那个,代码很懂,也很容易理解,这里就不多说了。
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e6+100;const int INF = 0x3f3f3f3f;int dp[maxn], que[maxn];int main(){ int T; scanf("%d", &T); int x, k, t; while(T--){ scanf("%d%d%d", &x, &k, &t); memset(dp, INF, sizeof(dp)); int head = 0, tail = -1; dp[1] = 0; que[++tail] = 1; //单调队列里面存放的是位置 for(int i = 2; i <= x; i++){ if(i%k == 0) dp[i] = min(dp[i], dp[i/k]+1); while(head <= tail && i - que[head] > t) head++; //保证队列中只有当前位置之前的t个元素 dp[i] = min(dp[i], dp[que[head]]+1); //如果队列不位空 while(head <= tail && dp[que[tail]] > dp[i]) tail--; //保证队列为单调递增队列 que[++tail] = i; } printf("%d\n", dp[x]); } return 0;}
0 1
- HDU 5945 Fxx and game(dp+单调队列优化)
- hdu 5945 Fxx and Game dp(单调队列优化)
- 【HDU 5945】 Fxx and game 【单调队列优化dp】
- HDU 5945 Fxx and game 单调队列优化DP
- HDU 5945 Fxx and game (DP+单调队列优化)
- hdu 5495 Fxx and game(dp+单调队列优化)
- hdu 5945 Fxx and game (dp+单调队列)
- 【HDU 5945】Fxx and game(DP+单调队列)
- HDU 5945 Fxx and game(DP+单调队列)
- HDU-5945 Fxx and game (dp+单调队列)
- hdu 5945 Fxx and game(单调队列,dp)
- [hdu 5945 Fxx and game] dp+单调队列
- hdu - 5945 Fxx and game 【dp + 单调队列】
- hdu 5945 Fxx and game【dp+单调队列】
- [hdu 5945 Fxx and game] dp+单调队列
- BestCoderRound#89 HDU 5945 Fxx and game【单调队列+DP】
- HDU 5945 Fxx and game [单调队列+dp]【动态规划】
- hdu 5945 Fxx and game(dp+单调队列)
- nginx通配符哈希表
- ZABBIX实践(二) centos下的Agent端部署和安装
- Linux软件包管理器及rpm命令总结
- TextView使用
- HTTP请求
- HDU 5945 Fxx and game(dp+单调队列优化)
- JSP新闻系统之八 Servlet
- 大数据竞赛技术分享
- OpenCV基本的阈值操作
- v8世界探险(2) - 词法和语法分析
- 矩阵的快速取幂法——求类Fibonacci数列(3)
- RK驱动小结
- hdu 2602
- ceph存储 smartctl用法小结