博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LibreOJ #541. 「LibreOJ NOIP Round #1」七曜圣贤(单调队列)
阅读量:4594 次
发布时间:2019-06-09

本文共 1360 字,大约阅读时间需要 4 分钟。

  被以前自己瞎YY的东西坑了T T...单调队列的确是可以维护这种操作的....

  显然这题可以转化成维护不在车上的东西的最小值, 支持插入和删去最早出现的值,然后就可以用单调队列了T T

#include
#include
#include
#include
#include
#define ll long long#define uint unsigned intusing namespace std;const int maxn=20000010, inf=1e9;int n, m, a, b, d, T, l, r, L, R, up, fir, firans;int p[maxn], h[maxn], q[maxn];uint ans_sum, cur_ans; bool fly[maxn], car[maxn];namespace IO{ int c; unsigned int seed; unsigned int randnum(){ seed^=seed<<13; seed^=seed>>17; seed^=seed<<5; return seed; } inline int read(int &x){scanf("%d",&x);return x;} inline void init_case(int &m,int &a,int &b,int &d,int p[]){ scanf("%d%u%d%d%d%d",&m,&seed,&a,&b,&c,&d); for(int i=1;i<=m;i++){ if(randnum()%c==0) p[i]=-1; else p[i]=randnum()%b; } } inline void update_ans(unsigned int &ans_sum,unsigned int cur_ans,int no){ const static unsigned int mod=998244353; ans_sum^=(long long)no*(no+7)%mod*cur_ans%mod; }}using IO::read;using IO::init_case;using IO::update_ans;inline void qpush(int x){ while(L<=R && q[R]>=x) R--; q[++R]=x;}inline int min(int a, int b){
return a
View Code

转载于:https://www.cnblogs.com/Sakits/p/7791475.html

你可能感兴趣的文章
Django简介
查看>>
习题2-6排列(permutation)
查看>>
Mybatis基本配置(一)
查看>>
[js高手之路]this知多少
查看>>
Android攻城狮布局动画
查看>>
正则表达式零宽断言详解(?=,?<=,?!,?<!)
查看>>
20145205 《Java程序设计》实验报告三:敏捷开发与XP实践
查看>>
利用Spring.NET实现WCF的AOP编程
查看>>
第三方,解决模型无法在获取网络数据之后传值问题
查看>>
对比 Git 与 SVN,这篇讲的很易懂
查看>>
【snmp】Linux开启snmp及查询
查看>>
CSU 1532: JuQueen(线段树)
查看>>
设定MyEclipse编辑代码区域文字的大小及非keyword的字体、字形和颜色
查看>>
LeetCode【6】. ZigZag Conversion --思路图解与java实现
查看>>
git 合并分支
查看>>
NSNotification与NSNotificationCenter
查看>>
qt 中文乱码 处理QByteArray类型里含中文的数据
查看>>
跨库事务一致性问题的解决方式(例)
查看>>
ios build时,Undefined symbols for architecture xxx问题的总结
查看>>
20140704,七月微软安全补丁的通知
查看>>