Codeforces 1110E (差分)】的更多相关文章

Greg and Array CodeForces 296C 差分数组 题意 是说有n个数,m种操作,这m种操作就是让一段区间内的数增加或则减少,然后有k种控制,这k种控制是说让m种操作中的一段区域内的操作来实际进行,问进行完k种控制后,这n个数变成了啥. 解题思路 我开始使用了最简单的差分,就是把m种操作存到结构体数组中,然后在读取k中控制时,按照要求执行之前结构体数组中的一段区间内的操作,但是这样超时了.后来一想,如果直接知道m种操作每种操作的次数不就行了,于是我们需要两个数组,一个是用来记…
E. Magic Stones time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Grigory has nn magic stones, conveniently numbered from 11 to nn. The charge of the ii-th stone is equal to cici. Sometimes G…
题面 传送门 分析 一开始考虑贪心和DP,发现不行 考虑差分: 设d[i]=c[i+1]-c[i] (i<n) 那么一次操作会如何影响差分数组呢? \(c[i]'=c[i+1]+c[i-1]-c[i]\) \(d'[i-1]=c[i]'-c[i-1]=c[i+1]-c[i]=d[i]\) \(d'[i]=c[i]-c[i-1]=d[i-1]\) 我们发现操作只是改变了差分数组中不同值的位置 因此,我们只要求出c,t对应的差分数组,并比较它们是否相同即可 注意由于c[1]和c[n]不能变,所以要判…
题目链接 听dalao说很nb,做做看(然而不小心知道题解了). \(Description\) 给定长为\(n\)的序列\(A_i\)和\(B_i\).你可以进行任意多次操作,每次操作任选一个\(i\in[2,n-1]\),把\(A_i\)变成\(A_{i-1}+A_{i+1}-A_i\). 求能否将序列\(A_i\)变成\(B_i\). \(n\leq10^5\). \(Solution\) \(A_i\to A_{i-1}+A_{i+1}-A_i\)这个形式很有趣,求出\(A_i\)的差分…
Codeforces 1110 E 题意:给定两个数组,从第一个数组开始,每次可以挑选一个数,把它变化成左右两数之和减去原来的数,问是否可以将第一个数组转化成第二个. 思路: 结论:两个数组可以互相转化的充要条件是它们差分后的数组排序后相同并且它们第一个数相同. 证明: 先证明一个引理. 引理:两个数组可以互相转化的必要条件是它们都能转化成同一个数组. 证明:假设A转化成B,C也转化成B,由于操作可逆,于是可以从A转化成B再转化成C.\(\square\) 证明原结论的充分性. 看某一次操作.…
题面 传送门 分析 先考虑\(O(nk)\)的做法,先按s从小到大排序,每个串的数显然形成了n个连续区间\([s_i+l,s_i+r]\),且这些区间的左端点升序排列,然后把区间合并就可以知道有多少个不同的数了 然后考虑优化 对于s[i]产生的区间,我们考虑s[i]和s[i+1]产生的区间之间的间隔 若\(s_i+r \leq s_{i+1}+l\),即\(r-l \leq s_{i+1}-s_i\) ​ 则说明s[i]产生的区间和s[i+1]产生的区间不相交,答案增加\((s_i+r)-(s_…
题目大意:输入n,m,k.n个数,m个区间更新标记为1~m.n次操作,每次操作有两个数x,y表示执行第x~y个区间更新. 题解:通过差分来表示某个区间更新操作执行的次数.然后用线段树来更新区间. #include<bits/stdc++.h> using namespace std; ; typedef long long ll; ll arr[N]; ll tt[N],cnt[N]; struct stu{ ll value,add; }tree[N+N+N]; ll l1[N],r1[N]…
Guessing Game 题目连接: http://codeforces.com/gym/100015/attachments Description Jaehyun has two lists of integers, namely a1,...,aN and b1,...,bM.Je!rey wants to know what these numbers are, but Jaehyun won't tell him the numbers directly. So, Je!rey as…
https://codeforces.com/problemset/problem/1070/C 题意: 有很多活动,每个活动可以在天数为$[l,r]$时,提供$C$个价格为$P$的商品 现在从第一天起,每天恰好买$K$个,到第$N$天的花费为多少? 题解: 首先考虑维护区间,即第$i$天还需要多少个,然后尝试区间求和区间更新 但是稍加思考就知道,"需要的数量"并不满足区间加法 于是改变思考方向, 显然,一个暴力的$O(n^2)$算法就是每天保存能买的所有价格和对应的数量, 这样时间和…
Adieu l'ami. Koyomi is helping Oshino, an acquaintance of his, to take care of an open space around the abandoned Eikou Cram School building, Oshino's makeshift residence. The space is represented by a rectangular grid of n × m cells, arranged into n…