[CSP-S模拟测试]:慢无止境的八月(乱搞)
题目传送门(内部题102)
输入格式
第一行三个正整数$n,k,q$,分别表示数列长度,操作长度和修改个数。
第二行$n$个数,表示给出的终止数列。
接下来$q$行,每行两个数$pos,dx$,表示将$a[pos]$加上$dx$,注意$dx$可能是负数。
输出格式
输出共有$q+1$行,分别是初始时和每次修改后的答案。如果凉宫可以取胜,输出$Yes$,否则输出$No$。
样例
样例输入:
5 2 5
1 1 1 2 1
3 −1
1 −1
3 1
3 1
1 −1
样例输出:
Yes
No
No
No
Yes
No
数据范围与提示
样例解释:
初始时,可以通过对$[1,2],[3,4],[4,5]$依次做$+1$操作得到;四次操作后,数列变为$[0,1,2,2,1]$,可以通过对$[2,3],[3,4],[4,5]$做$+1$操作得到。
数据范围:
对于$10\%$的数据,满足$n=1,q=0$。
对于$20\%$的数据,满足$n\leqslant 5,q=10$。
对于$30\%$的数据,满足$n\leqslant 18,q=10$。
对于$50\%$的数据,满足$n\leqslant 2,000,q\leqslant 2,000$。
对于$70\%$的数据,满足$n\leqslant 100,000,q\leqslant 100,000$。
对于$100\%$的数据,满足$k\leqslant n\leqslant 2\times 10^6,q\leqslant 2\times 10^6$,保证任何时候,$|a[i]|,|dx|\leqslant 10^9$。
题解
今晚是乱(mei)搞(lian)专题!
题目中的−是什么鬼?还好我眼尖一眼就看了出来。
首先,如果整个区间和不是$k$的倍数的话一定是$No$,然后我就发现大样例中$2000$组询问只有$4$个是$k$的倍数。
于是$n^2$暴力$+$剪枝直接$AC$。
时间复杂度:$\Theta(\omega n)$(其中$\omega$为询问中区间和是$k$的倍数的个数)。
期望得分:$50$分。
实际得分:$100$分。
代码时刻
#include<bits/stdc++.h>
using namespace std;
int n,k,q;
long long sum;
int a[2000010],b[2000010],s[2000010],sss;
int main()
{
scanf("%d%d%d",&n,&k,&q);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
if(!k)
{
q++;
while(q--)puts("No");
return 0;
}
if(sum%k){puts("No");goto nxt3;}
sss=0;
for(int i=1;i<=n-k+1;i++)
{
sss+=s[i];
b[i]+=a[i]-sss;
sss+=b[i];
s[i+k]-=b[i];
b[i]=0;
}
for(int i=n-k+2;i<=n;i++)
{
sss+=s[i];
b[i]+=a[i]-sss;
if(b[i]!=0){puts("No");goto nxt1;}
}
puts("Yes");
nxt1:for(int i=1;i<=n;i++)b[i]=s[i]=0;
nxt3:;
while(q--)
{
int pos,dx;
scanf("%d%d",&pos,&dx);
sum+=dx;a[pos]+=dx;
if(sum%k){puts("No");goto nxt4;}
sss=0;
for(int i=1;i<=n-k+1;i++)
{
sss+=s[i];
b[i]+=a[i]-sss;
sss+=b[i];
s[i+k]-=b[i];
b[i]=0;
}
for(int i=n-k+2;i<=n;i++)
{
sss+=s[i];
b[i]+=a[i]-sss;
if(b[i]!=0){puts("No");goto nxt2;}
}
puts("Yes");
nxt2:for(int i=1;i<=n;i++)b[i]=s[i]=0;
nxt4:;
}
return 0;
}
rp++
[CSP-S模拟测试]:慢无止境的八月(乱搞)的更多相关文章
- [CSP-S模拟测试]:统计(树状数组+乱搞)
题目传送门(内部题120) 输入格式 第一行,两个正整数$n,m$. 第二行,$n$个正整数$a_1,a_2,...,a_n$,保证$1\leqslant a_i\leqslant n$,可能存在相同 ...
- [CSP-S模拟测试]:Cicada拿衣服(暴力+乱搞)
题目传送门(内部题94) 输入格式 第一行两个整数$n,k$,代表衣服的数量和阈值. 接下来一行$n$个数,第$i$个数$a_i$表示每件衣服的愉悦值. 输出格式 输出一行$n$个数,第$i$个数为$ ...
- jzoj6003. 【THUWC2019模拟2019.1.16】Square (乱搞)
题面 题解 不难发现,如果一行最后被染色,那么这行的颜色肯定一样,如果倒数第二个被染色,那么除了被最后一个染色的覆盖的那一部分剩下的颜色肯定一样 于是题目可以转化为每一次删去一行或一列颜色相同的,问最 ...
- csp-s模拟测试99
csp-s模拟测试99 九九归一直接爆炸. $T1$一眼板子. $T2$一眼语文题(语文的唯一一次$120+$是给模拟出来的可知我的语文能力). $T3$一眼普及题. ?? Hours Later 板 ...
- csp-s模拟测试94
csp-s模拟测试94 一场简单题,打爆了.$T1$脑抽分解质因数准备分子分母消,想了半天发现$jb$互质直接上天,果断码了高精滚蛋.$T2$无脑手玩大样例,突然灵光一闪想到映射到前$K$大小的区间, ...
- 「题解」NOIP模拟测试题解乱写II(36)
毕竟考得太频繁了于是不可能每次考试都写题解.(我解释个什么劲啊又没有人看) 甚至有的题目都没有改掉.跑过来写题解一方面是总结,另一方面也是放松了. NOIP模拟测试36 T1字符 这题我完全懵逼了.就 ...
- NOIP模拟测试17&18
NOIP模拟测试17&18 17-T1 给定一个序列,选取其中一个闭区间,使得其中每个元素可以在重新排列后成为一个等比数列的子序列,问区间最长是? 特判比值为1的情况,预处理比值2~1000的 ...
- Android单元测试与模拟测试详解
测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...
- [开源]微信在线信息模拟测试工具(基于Senparc.Weixin.MP开发)
目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具 ...
随机推荐
- join函数详解
定义:join() 方法用于把数组中的所有元素放入一个字符串. 语法 : ArrayObject.join(separator) separator 可选.指定要使用的分隔符.如果省略该参数,则使 ...
- LinqToSQL3
Lambda Lambda表达式和匿名方法很相似,但Lambda表达式比匿名方法更灵活,并且语法比匿名方法更简洁. 在LINQ中可以使用Lambda表达式创建委托,这些委托将稍后执行查询时被调用. L ...
- 【原创】Java基础之Nginx缓存
1 proxy_ignore_headers 1.1 Set-Cookie By default, nginx does not caches requests with Set-Cookie. 默认 ...
- 数值或者电话号码被EXCEL转成了科学计数法,用XSSFCell 如何读取
public static Map<String, Integer> readXls() throws IOException { //用来获取每一个小号重复多次,被多少账号用了.来平均 ...
- 这不是javascript:什么?
javascript协议.<a href=“javascript:void(0):”>xxx</a>基于事件的事件,例如:<input onblur=“check():” ...
- go语言入门(5)工程管理
在工程中不会简单到只有一个源代码文件,且源文件之间会有相互的依赖关系,早期Go语言使用makefile作为工程管理的临时方案,后来的Go命令行工具的革命性之处在于彻底消除了工程文件的概念,完全用目录结 ...
- Ceph自动化部署----Ceph-ansible
目录 Ceph自动化部署----Ceph-ansible 一.前言--Ceph的几种不同的部署方式 二.使用Ceph-ansible部署Ceph Ceph自动化部署----Ceph-ansible 一 ...
- 【ios bug解决】 输入框聚焦时光标不显示
解决办法:重写user-select样式 css: user-select: text;-webkit-user-select:text;
- Cookie/Session的机制
Cookie的机制 Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能. Cookie的Domain和Path属性标识 ...
- netty-4.客户端与服务端心跳
(原) 第四篇,客户端与服务端心跳 心跳事件有三种,读空闲,写空闲,读写空闲,定义在了IdleState枚举类中,分别为READER_IDLE,WRITER_IDLE,ALL_IDLE 服务端: ma ...