单调队列(基础题) HDU3706 Second My Problem First
来源:互联网 发布:免费舆情监控软件 编辑:程序博客网 时间:2024/05/17 20:33
:点击打开链接
题意:对于S i = A i,在(1 <= i <= n)的范围内,分别求出对应i的最小Si,然后Ti的值即为n个Si的乘积;
我是看了题解才明白题意的orzorz
然后注意一点,因为a的范围就是int 的最大值,所以x要设成long long 类型不然相乘就会超int的
和前面一题不一样,这题只求最前面的那个值,和最大最小区间没关系,所以是一道基础题啦啦啦
#include<bits/stdc++.h> using namespace std;int main(){ long long n,a,b; while(~scanf("%I64d%I64d%I64d",&n,&a,&b)){ long long x=1; long long ti=1; deque<pair<int,int> >minq; for(long long i=1;i<=n;i++){ x=x*a%b; while(!minq.empty()&&minq.back().second>x){ minq.pop_back(); } minq.push_back(make_pair(i,x)); while(!minq.empty()&&minq.front().first<i-a){ minq.pop_front(); } ti=ti*(minq.front().second)%b; } printf("%I64d\n",ti); } return 0;}
0 0
- 单调队列(基础题) HDU3706 Second My Problem First
- hdu3706 Second My Problem First 滑动窗口最小值 单调队列
- hdu3706 Second My Problem First
- HDU3706-Second My Problem First
- HDU 3706 Second My Problem First 单调队列简单题
- 单调队列1001 HDU 3706 Second My Problem First 单调队列入门题
- HDU 3706 Second My Problem First 【单调队列】
- hdu 3706 Second My Problem First(单调队列)
- hdu 3706 Second My Problem First(单调队列)
- hdu3706基础的单调队列
- HDU3706Second My Problem First(单调队列)
- 【单调队列】HDU_3706_Second My Problem First
- Second My Problem First HDU
- hdu 3706 Second My Problem First
- HDU 3706 Second My Problem First
- HDU - 3706 Second My Problem First
- Second My Problem First HDOJ 5th Anniversary Contest 1007
- HDU 3706——Second My Problem First
- Android页面布局
- hibernate的hql查询语句总结
- 结构体内存字节对齐
- Studying Method
- 【HDU】 1299 Diophantus of Alexandria
- 单调队列(基础题) HDU3706 Second My Problem First
- 理解什么是游标,什么是指针
- 360网站卫士 PHP-DOS攻击脚本专杀工具使用笔记
- hdu 2639Bone Collector II(01背包求第k大)
- nyoj 285 寻找克隆人
- C++的性能优化实践 map hash_map unodered_map性能
- 用Cookie实现web网站您浏览过其他的商品
- 关于输入页面中键盘表情的设置
- [leetcode] 【数组】 89. Gray Code