题意:

解释题意不如直接把这个题粘贴过来,因为题目很短题意很容易懂。

Give you three integers n, A and B. 

Then we define Si = Ai mod B and Ti = Min{ Sk | i-A <= k <= i, k >= 1}

Your task is to calculate the product of Ti (1 <= i <= n) mod B.

 

Input

Each line will contain three integers n(1 <= n <= 107),A and B(1 <= A, B <= 231-1). 

Process to end of file.

 

Output

For each case, output the answer in a single line.

 

Sample Input

1 2 3

2 3 4

3 4 5

4 5 6

5 6 7

 

Sample Output

2

3

4

5

6

思路:

      比较简单的一个单调队列题目,我们可以建立一个单调递增的单调队列,开一个1000W的数组,不用怕报内存,内存够,然后我们每次都把一个新值进队列,然后把队尾比这个值大于等于的出队,对头把下标之差大于A的出队就行了,每次都是把一个新的值放进队列,然后在对头拿一个最小的来作为当前的T,然后一边更新,一边拿,一边记录答案就行了,O(n)的时间复杂度,1000W的,可以过(不过感觉还是有点险,但这个题目都O(n)了在过不了,那估计就设计到转换什么的了,那我就做不了了,嘿嘿)。

#include<stdio.h>

#include<string.h>

#define N 10000005

typedef struct

{

   int id;

   __int64 num;

}NODE;

NODE Q[N];

int tou ,wei;

__int64 A ,B ,n;

void insert(int id ,__int64 num)

{

   for(int i = wei ;i > tou ;i --)

   {

      if(Q[wei].num >= num) wei --;

      else break;

   }

   Q[++wei].num = num;

   Q[wei].id = id;

   for(int i = tou + 1 ;i <= wei ;i ++)

   if(id - Q[i].id > A) tou ++;

   else break;

}

int main ()

{

   while(~scanf("%d %I64d %I64d" ,&n ,&A ,&B))

   {

      __int64 now = A % B;

      __int64 Ans = 1;

      tou = wei = 0;

      for(int i = 1 ;i <= n ;i ++)

      {

         insert(i ,now);

         Ans = (Ans * Q[tou+1].num) % B;

         now = now * A % B;

      }

      printf("%I64d\n" ,Ans);

   }

   return 0;

}

         

hdu3706基础的单调队列的更多相关文章

  1. hdu3706单调队列

    很基础的单调队列 #include<map> #include<set> #include<cmath> #include<queue> #includ ...

  2. POJ 2823 单调队列入门水题

    最最基础的单调队列题目.一个单增一个单减.还是可以借此好好理解一下单调队列的. #include <stdio.h> #include <string.h> #include ...

  3. POJ2823 单调队列

    POJ2823 http://poj.org/problem?id=2823 最基础的单调队列,说是数据结构,其实就是一种更新数组数据的方法. 之前还准备用deque,超时了,直接head,tail快 ...

  4. 单调队列&单调栈 基础

    参考博客https://www.cnblogs.com/tham/p/8038828.html 例题  poj 2823 Sliding Window Time Limit: 12000MS   Me ...

  5. BZOJ 1047: [HAOI2007]理想的正方形( 单调队列 )

    单调队列..先对每一行扫一次维护以每个点(x, y)为结尾的长度为n的最大最小值.然后再对每一列扫一次, 在之前的基础上维护(x, y)为结尾的长度为n的最大最小值. 时间复杂度O(ab) (话说还是 ...

  6. [小明打联盟][斜率/单调队列 优化dp][背包]

    链接:https://ac.nowcoder.com/acm/problem/14553来源:牛客网 题目描述 小明很喜欢打游戏,现在已知一个新英雄即将推出,他同样拥有四个技能,其中三个小技能的释放时 ...

  7. 洛谷P2900 [USACO08MAR]土地征用Land Acquisition(动态规划,斜率优化,决策单调性,线性规划,单调队列)

    洛谷题目传送门 用两种不一样的思路立体地理解斜率优化,你值得拥有. 题意分析 既然所有的土地都要买,那么我们可以考虑到,如果一块土地的宽和高(其实是蒟蒻把长方形立在了平面上)都比另一块要小,那么肯定是 ...

  8. DP的各种优化(动态规划,决策单调性,斜率优化,带权二分,单调栈,单调队列)

    前缀和优化 当DP过程中需要反复从一个求和式转移的话,可以先把它预处理一下.运算一般都要满足可减性. 比较naive就不展开了. 题目 [Todo]洛谷P2513 [HAOI2009]逆序对数列 [D ...

  9. 洛谷P1776 宝物筛选_NOI导刊2010提高(02)(多重背包,单调队列)

    为了学习单调队列优化DP奔向了此题... 基础的多重背包就不展开了.设\(f_{i,j}\)为选前\(i\)个物品,重量不超过\(j\)的最大价值,\(w\)为重量,\(v\)为价值(蒟蒻有强迫症,特 ...

随机推荐

  1. shell脚本,mysql数据库的备份-2[mysqldump]

    # 数据库IPIP=127.0.0.1# 数据库端口PORT=3306# 数据库用户USER=root# 数据库密码PASSWORD=****# 要备份的数据库TARGET_DB=database_n ...

  2. [源码分析] 消息队列 Kombu 之 Consumer

    [源码分析] 消息队列 Kombu 之 Consumer 目录 [源码分析] 消息队列 Kombu 之 Consumer 0x00 摘要 0x01 综述功能 0x02 示例代码 0x03 定义 3.1 ...

  3. Codeforces Round #574 (Div. 2) D2. Submarine in the Rybinsk Sea (hard edition) 【计算贡献】

    一.题目 D2. Submarine in the Rybinsk Sea (hard edition) 二.分析 相比于简单版本,它的复杂地方在于对于不同长度,可能对每个点的贡献可能是有差异的. 但 ...

  4. vim宏录制的操作

    1:在vim编辑器normal模式下输入qa(其中a为vim的寄存器) 2:此时在按i进入插入模式,vim编辑器下方则会出现正在录制字样,此时便可以开始操作. 3:需要录制的操作完成后,在normal ...

  5. SpringSecurity实战记录(一)开胃菜:基于内存的表单登录小Demo搭建

    Ps:本次搭建基于Maven管理工具的版本,Gradle版本可以通过gradle init --type pom命令在pom.xml路径下转化为Gradle版本(如下图) (1)构建工具IDEA In ...

  6. Java并发编程之同步辅助类

    CountDownLatch 在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待,基于AbstractQueuedSynchronizer实现,state初始化为count,每cou ...

  7. webgoat白盒审计+漏洞测试

    前言 小白,记录,有问题可以交流 乖乖放上参考链接: https://www.freebuf.com/column/221947.html https://www.sec-un.org/java代码审 ...

  8. 从新建文件夹开始构建UtopiaEngine(1)

    序言 在苦等了半年多之后,我终于开始了向往已久的实时NPR游戏引擎项目--Utopia Engine,这半年多一直为了构建这个引擎在做很多准备:多线程.动态链接库.脚本引擎.立即渲染GUI--统统吃了 ...

  9. Springboot进行Http接口交互实现邮件告警

    本项目采用idea编辑器,依赖maven环境,相关搭建请自行百度一.引入相关依赖    本文Http接口交互使用hutool工具类与阿里FastJson解析报文. <dependencies&g ...

  10. 从谷歌CRE谈起,运维如何培养服务意识?

    从谷歌CRE谈起,运维如何培养服务意识? 2016年10月,谷歌云平台博客(Google Cloud Platform Blog)上更新了一篇文章,谷歌宣布了一个新的专业岗位,CRE(Customer ...