思路:。。。乱搞数据结构??

提交:1次

题解:

观察到除了单点就是全局操作,所以我们维护一个全局加法标记add和乘法标记mul和答案sum。

单点修改时,比如我们要把 \(pos\) 位置改成 \(y\) ,实际上我们应该储存 \(x\) , 且 \(y=mul*x+add\) ,即我们储存的是逆标记操作后的值。

同时要注意全体赋值后标记和 unordered_map 的清空。

代码:自带大常数

#include<bits/stdc++.h>
#define ll long long
#define R register int
using namespace std;
namespace Luitaryi {
inline int g() { R x=0,f=1;
register char ch; while(!isdigit(ch=getchar())) f=ch=='-'?-1:f;
do x=x*10+(ch^48); while(isdigit(ch=getchar())); return x*f;
} const int N=100010,M=1e7+19;
int A,B,n,q,t,add,mul,sum,Inv[M],cvl,ans;
unordered_map<int,int> d;
struct node {int op,p,vl;}a[N];
inline void calc(int x) {
if(a[x].op==1) {
R tmp=a[x].vl,dec; tmp=1ll*((tmp-add)%M+M)%M*Inv[mul]%M;
if(d.count(a[x].p)) dec=(1ll*d[a[x].p]*mul+add)%M;
else dec=(1ll*mul*cvl+add)%M;
d[a[x].p]=tmp; sum=(1ll*sum+a[x].vl-dec+M)%M;
} if(a[x].op==2) add=(add+a[x].vl)%M,sum=(sum+1ll*n*a[x].vl)%M;
if(a[x].op==3) add=1ll*add*a[x].vl%M,mul=1ll*mul*a[x].vl%M,sum=1ll*sum*a[x].vl%M;
if(a[x].op==4) d.clear(),cvl=a[x].vl,add=0,mul=1,sum=1ll*n*a[x].vl%M;
if(a[x].op==5) {
if(!d.count(a[x].vl)) ans=(ans+1ll*mul*cvl+add)%M;
else ans=(ans+1ll*mul*d[a[x].vl]+add)%M;
} if(a[x].op==6) ans=(ans+sum)%M;
}
inline void main() {
Inv[1]=1; for(R i=2;i<M;++i) Inv[i]=M-1ll*M/i*Inv[M%i]%M;
n=g(),q=g(); for(R i=1;i<=q;++i) {
a[i].op=g(); if(a[i].op==1) a[i].p=g();
else if(a[i].op==6) continue; a[i].vl=(g()%M+M)%M;
} t=g(); for(R i=1;i<=t;++i) {
A=g(),B=g();
for(R j=1,c;j<=q;++j)
c=(A+1ll*j*B)%q+1,calc(c);
} printf("%d\n",(ans%M+M)%M);
}
} signed main() {Luitaryi::main(); return 0;}

2019.09.15

61

最新文章

  1. 鼠标的change事件
  2. CentOS 7 最小化安装的无线网络配置
  3. 根据屏幕大小动态设置字体rem
  4. Orcale与jfinal的添加时间问题
  5. c++中级 STL基础学习(二)
  6. cJSON应用举例
  7. asp.net实现文件解压和压缩
  8. asp.net mvc开发的社区产品相关开发文档分享
  9. 【Objective-C】4-空指针和野指针
  10. TTB 基本
  11. ASP.NET MVC2.0学习笔记:路由设置
  12. MySQL的loop循环函数的demo
  13. 在IntelliJ IDEA里创建简单的基于Maven的SpringMVC项目
  14. 2017年BackBox5和Ubuntu16.04.1国内更新源
  15. Windows使用tail命令跟踪日志
  16. Failed to start bean &#39;stompBrokerRelayMessageHandler&#39;; nested exception is java.lang.NoClassDefFoundError: reactor/io/codec/Codec
  17. spring cloud(学习笔记)高可用注册中心(Eureka)的实现(二)
  18. jQuery.ajax()调用asp.net后台方法(非常重要)
  19. BZOJ5101[POI2018]Pow&#243;dź——并查集
  20. VS2015 工具箱 保存位置

热门文章

  1. Python--读取数据库
  2. 模块 os 和 sys
  3. web&amp;http协议&amp;django初识
  4. 原来你是这样的PaaS!
  5. 本地Pycharm将spark程序发送到远端spark集群进行处理
  6. 12.java中参数传递机制---形参和实参
  7. 谷歌浏览器调试手机app内置网页
  8. 十年阿里顶级架构师教你怎么使用Java来搭建微服务
  9. 怎么处理Win10系统更新提示代码0x80070057的错误?
  10. Linux命令——cp、rm、mv、touch、file、dir