第三周 3.14 --- 3.20

新的一周><

3.14

cf 635d D - Factory Repairs

用自己的办法wa了两发之后,才明白一神和wtw 说的是什么 T_T

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 using namespace std;
 6
 7 typedef long long LL;
 8 const int maxn = 2e5+5;
 9 int n,k,a,b,q;
10 LL sq[4*maxn],sh[4*maxn],s[4*maxn];
11 int L[maxn],R[maxn];
12 int p,v,ql,qr;
13
14 void Push_up(int o){
15     s[o] = s[o<<1] + s[o<<1|1];
16     sq[o] = sq[o<<1]+sq[o<<1|1];
17     sh[o] = sh[o<<1]+sh[o<<1|1];
18 }
19
20 void Update(int o,int l,int r){
21     if(l == r){
22         s[o] += 1LL*v;
23         sq[o] = s[o];sh[o] = s[o];
24         if(sq[o] > b) sq[o] = b;
25         if(sh[o] > a) sh[o] = a;
26         return;
27     }
28     int mid = (l+r)/2;
29     if(p <= mid) Update(o<<1,l,mid);
30     else Update(o<<1|1,mid+1,r);
31     Push_up(o);
32 }
33
34 LL queryq(int o,int l,int r){
35     if(ql <= l && r <= qr){
36         return sq[o];
37     }
38     int mid = (l+r)/2;
39     LL ans = 0LL;
40     if(ql <= mid) ans += queryq(o<<1,l,mid);
41     if(qr > mid) ans += queryq(o<<1|1,mid+1,r);
42     return ans;
43 }
44
45 LL queryh(int o,int l,int r){
46     if(ql <= l && r <= qr){
47         return sh[o];
48     }
49     int mid = (l+r)/2;
50     LL ans = 0LL;
51     if(ql <= mid) ans += queryh(o<<1,l,mid);
52     if(qr > mid) ans += queryh(o<<1|1,mid+1,r);
53     return ans;
54 }
55
56 void solve(){
57     int cmd,dd,aa,pp;
58     memset(sq,0,sizeof(sq));
59     memset(sh,0,sizeof(sh));
60     memset(s,0,sizeof(s));
61     for(int i = 1;i <= q;i++){
62         scanf("%d",&cmd);
63         if(cmd == 1){
64             scanf("%d %d",&p,&v);
65             Update(1,1,n);
66         }
67         else{
68             scanf("%d",&pp);
69             LL qian = 0LL,hou = 0LL,res = 0LL;
70             ql = 1;qr = pp-1;
71             if(qr >= ql) qian = queryq(1,1,n);
72             ql = pp+k;qr = n;
73             hou = queryh(1,1,n);
74             res = qian + hou;
75         //    printf("qian = %I64d hou = %I64d res = %I64d\n",qian,hou,res);
76             printf("%I64d\n",res);
77         }
78     }
79 }
80
81 int main(){
82     while(scanf("%d %d %d %d %d",&n,&k,&a,&b,&q) != EOF){
83         solve();
84     }
85     return 0;
86 }

时间: 2024-10-14 03:53:04

第三周 3.14 --- 3.20的相关文章

Linux 基础入门 第一周9.14~9.20

第一节 Linux系统简介 Linux——操作系统 1.使多个用户从不同的终端同时操作主机(分时操作系统): 2.MINIX是一个功能有限的类似于UNIX的操作系统(UNIX 实现了 TCP/IP 协议栈): 3.Linux 本身只是操作系统的内核. 4.内核是使其他程序能够运行的基础.它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序实际上都运行在内核之上. 5.一些必需的程序:命令行解释器(shell)——用于用户交互和编写 shell 脚本(.bat文件). 6.平台大都为开源

第三周-第14章节-Python3.5-函数式编程

# pcj#函数def funct1(): '''this is funct1''' print("in the funct1") return 0 #return 表示结束函数与返回值 #过程 过程无返回值 .即可以表达为,过程就是没有返回值的函数def funct2(): '''this is funct2''' print("in the funct2") # 调用:funct1()funct2()x=funct1() # x,表示接到funct1的返回值y=

第三周博客问题总结

1.学会了```的用法 一开始并没有成功,后来发现是因为输入法没有切换成英文,今后这样的问题要避免出现.--20145106 2.问题:教材86页,Guess的代码,猜数字,不知道原先没有设定好一个数字,为什么可以在0-9之间猜中一个数 解答:百度了(Math.random()10)这行代码的意思,知道了(Math.random())的意思是在[0,1)之间随机产生一个数字,10,所以变成了[0,10)之间随机产生一个数字,所以可以进行猜数字 --20145123 3.IntegerCache.

三周第三次课(12月27日) 3.7 su命令 3.8 sudo命令 3.9 限制root远程登录

三周第三次课(12月27日)3.7 su命令3.8 sudo命令3.9 限制root远程登录 su命令: 用户和工作组管理: su命令用于切换当前用户身份到其他用户身份, 变更时须输入所要变更的用户帐号与密码. 语法: su(选项)(参数) 选项: -c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份: -f或--fast:适用于csh与tsch,使shell不用去读取启动文件: -l或--login:改变身份时,也同时变更工作目录,以及HOME,SHE

王之泰201771010131《面向对象程序设计(java)》第三周学习总结

王之泰201771010131<面向对象程序设计(java)>第三周学习总结 第一部分:理论知识复习部分 第一章 回顾了Java"白皮书"的关键性语句,再次理解了以前未理解的句子.对Java语言的十多种特性又有了更深刻的理解和不同角度的体会. 第二章 继续使用eclipse实验开发程序,在jdk源文件中仔细欣赏体会了标准代码的范例,以此来规范自己的编写风格. 第三章 第三章中复习了Java的基本语法,着重复习了运算符的使用和文件的输入输出,深刻理解了例如:控制流程语句等五种

赵栋 201771010137 第三周学习总结

自主学习任务 1. 复习课程第1-3章学习内容 2. 回顾实验三中实验题1<2018秋季西北师范大学面向对象程序设计(Java)(ch1-ch3)测试题1>,对照测试题参考答案,反思修改本人答卷的错误内容: 3.完成实验2与实验3: 4.修改置顶博文<面向对象程序设计课程学习进度条>,记录第三周个人编程水平提升参数 第一部分:复习第一到三章 1.第一章 复习了Java语言的优点,发展简史,以及Java语言的关键术语和"白皮书"的特性,对Java的了解更加深刻了一

杨其菊201771010134《面向对象程序设计(Java)》第三周学习总结

<面向对象程序设计(Java)>第三周学习总结 第一部分:理论知识 这周课程没有新进度,由于感觉对基础语法的不熟悉,复习了一遍前三章的细碎知识,学到一些之前不知道的原理: 1.计算机高级语言按程序的方式可以分为两种:编译型和解释型 编译型:C,C++,Objective-C,Pascal等: 解释型:Ruby,Python, 半编译型:Visual Basic, java:既是编译型语言又是解释型语言. 2.classpath 环境变量的设置:如果使用1.5以上的版本,完全可以不用设置这个环境

第三周活动进度

学习进度表:   第三周内容 时间 周一(4:10-6:00)上课,周二晚上(8:00-9:00),周四晚上(8:00-8:30),周四下午(4:10-6:00)javaweb课程 代码行数 200行 发博客量 3篇 了解到的知识 随机数的产生,四则运算的开发思路(分解),简单的数据库创建表. 周活动详细记录表: 日期/内容 写代码 上网查方法 上课 看书(构建执法) 3.6 2小时(150行)大概完成   2小时   3.7   查询缺失功能的方法   1小时 3.8         3.9

20145207《Java程序设计》第三周学习总结

20145207<Java程序设计>第三周学习总结 教材学习内容总结 这部分可能要扒一些课本而上的东西了.在第三章中,知道了Java可区分为基本类型和类类型两大类型系统,其中类类型也称为参考类型.在这一周主要学习了类类型. 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制. 简单来说,类是对象的设计图,对象是类的实例. 要深刻理解对象的含义,例如Clothes c1 = new Clot