hdu 3706 Second My Problem First(单调队列)
来源:互联网 发布:青岛海尔软件怎么样 编辑:程序博客网 时间:2024/05/17 21:44
http://acm.hdu.edu.cn/showproblem.php?pid=3706
题目大意就是求出T1*T2*…*Tn%B的值
其中Ti表示在大小为k的窗口中,查找最小的数字。维护一个递增的单调队列,每次累乘即可。
#include<iostream>#include<cstring>#include<queue>using namespace std;typedef long long LL;deque<pair<int,LL> > q;LL n,a,b;int main(){ while(cin>>n>>a>>b) { q.clear(); LL ans=1,tmp=1; for(int i=1;i<=n;i++) { tmp=tmp*a%b; while(!q.empty()&&q.back().second>=tmp) //维护一个递增的单调队列 q.pop_back(); q.push_back(make_pair(i,tmp)); while(!q.empty()&&q.front().first<i-a) q.pop_front(); ans=ans*q.front().second%b; } cout<<ans<<endl; } return 0;}
阅读全文
0 0
- hdu 3706 Second My Problem First(单调队列)
- hdu 3706 Second My Problem First(单调队列)
- HDU 3706 Second My Problem First 单调队列简单题
- HDU 3706 Second My Problem First 【单调队列】
- 单调队列1001 HDU 3706 Second My Problem First 单调队列入门题
- hdu3706 Second My Problem First 滑动窗口最小值 单调队列
- 单调队列(基础题) HDU3706 Second My Problem First
- hdu 3706 Second My Problem First
- HDU 3706 Second My Problem First
- HDU - 3706 Second My Problem First
- Second My Problem First HDU
- HDU 3706——Second My Problem First
- HDU3706Second My Problem First(单调队列)
- 【单调队列】HDU_3706_Second My Problem First
- hdu3706 Second My Problem First
- HDU3706-Second My Problem First
- Second My Problem First HDOJ 5th Anniversary Contest 1007
- hdu~3706(单调队列)
- 使用 Clipper 库的一些问题记录
- react1
- 遇到的防爬虫问题的解决方案
- 剑指offer——按之字形顺序打印二叉树
- 移动或复制虚拟机到其他真机后,Xshell CRT WinSCP 等客户端连不上虚拟机的解决办法
- hdu 3706 Second My Problem First(单调队列)
- php处理redis的例子
- Application的应用和生命周期
- Andrew Ng机器学习课程笔记--week11(图像识别&总结划重点)
- 大数阶乘的位数
- X9C103模块测试 阻值测试
- Jsp 记住密码
- 详解内部类--转载
- jdbc之DAO