luogu P2779 [AHOI2016初中组]黑白序列】的更多相关文章

传送门 注:本题解中下标从1开始 这题可以想出一个\(O(n^2)\)的dp,只要考虑每个偶数位置可以从前面的哪个位置加上一个"B...W..."转移过来 然而数据范围有5e5,,, 打表找规律(误),可以发现转移的时候,能够转移位置构成的集合可能会向前多一个元素,向后多一个元素,或者中间少掉一些或全部元素 简化问题,如果现在在\(i\)位置有一个W,同时前面的\(j\)位置到\(i\)之间没有W,那么在往后转移的过程中,如果转移到了\(2i-j\),那么\(j\)就无法向后贡献答案了…
题目链接:https://www.luogu.org/problemnew/show/P4462 ax+ax-1+...+ay = cntx+cnty 这样把一段序列变成两段相加跑莫队. #include <cstdio> #include <algorithm> #include <iostream> #include <cmath> using namespace std; ; , curL = , answer,a[maxn], ans[maxn],…
很有(\(bu\))质(\(hui\))量(\(xie\))的一个题目. 第一问:求最少改变几个数能把一个随机序列变成单调上升序列. \(Solution:\)似乎是一个结论?如果两个数\(A_i\)和\(A_j\)可以保留(\(i > j, A_i > A_j\)),即中间其他数都可以通过修改成为\([A_i, A_j]\)区间内的一个数,那么一定有\(i - j <= A_i - A_j\),即\(A_i - i >= A_j - j\).这个东西我们可以设为数列\(B\),求…
好久好久我都没有刷题了. 题目の传送门:https://www.luogu.org/problem/show?pid=2778 题目大意:(啥 题目讲得不够清楚?)平面内有n个以整点(就是坐标都是整数的点啦~)为圆心.互不相交或相切的圆,现给出q组询问,查询连接两个整点至少要跨过多少圆. 这题嘛,我们可以得出很显然的结论: 1. 对于一个圆,如果A和B都不在圆内,则该圆可以被忽略. 2. 对于一个圆,如果A和B都在圆内,则该圆可以被忽略. 3. 一个圆被考虑,当且仅当AB二人中有且只有一人在圆内…
题意 给定一个长度为 \(n\) 的序列 \(a\) 和 \(q\) 次操作,每次操作形如以下三种: I a b c,表示将 \([a,b]\) 内的元素加 \(c\). R a b,表示将 \([a,b]\) 内的元素变成相反数. Q a b c,表示在 \([a,b]\) 内所有选出 \(c\) 个元素的乘积之和. 对于每一个询问操作,输出答案对 \(19940417\) 取模的值. \(\texttt{Data Range:}1\leq n\leq q\leq 50000\) 题解 好题啊…
题目描述 小雪和小可可被困在了一个无限大的迷宫中. 已经知道这个迷宫有 N 堵环状的墙,如果把整个迷宫看作是一个二维平面,那么每一堵墙都是平面上一个圆.任意两个圆不相交,不重合,也不会相切, 但有可能相互包含.小雪和小可可分别被困在了 2 个不同的位置,且保证他们的位置与这些圆不重合. 他们只有破坏墙面才能穿过去. 小雪希望知道,如果他们要相见,至少要破坏掉多少堵墙?他们可以在任何位置相见. 输入输出格式 输入格式: 第一行有一个整数 N,表示有多少堵墙,保证 0<=N<=8000. 之后 N…
一道稍微要点脑子的莫队题,原来省选也会搬CF原题 首先利用\(xor\)的性质,我们可以搞一个异或前缀和的东西 每一次插入一个数,考虑它和之前已经加入的数能产生多少贡献 记一下之前的异或总值,然后还是利用异或的性质再异或一遍 这个我们再开一个数组统计一下前缀亦或值的出现次数. 但是唯一要注意的就是一些细节问题,尤其是左端点加入(or删除)的时候要减一(搞前缀和的时候左端点肯定要减一的么) 然后就可以水过了(我的代码莫队的时候写的有点骚) CODE #include<cstdio> #inclu…
这道题我一上来只会80 还是要感谢题解区大佬题解的帮助 先考虑若\(xy,xz\)为完全平方数,则\(yz\)也为完全平方数,因为\(xy*xz=x^2yz\)为完全平方数,除掉\(x^2\)就行了 所以所有两两乘积为完全平方数的数可以放在一个集合中,用并查集合并即可. 若每个并查集都是一种颜色,所以现在问题变成有\(m\)种颜色的互不相同的球,每种颜色的球有\(b_i\)个,问多少种球的排列满足同色球不相邻 先把所有球按颜色大小排个序,然后考虑dp,设\(f[i][j][k]\)表示前\(i\…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:洛谷P2777 正解:贪心 解题报告: 考虑每次的匹配情况,很容易发现,每次都是当前的取最大值,然后其余的交叉匹配,维护一个区间$max$就好了,每次移动. #include <iostream> #include <cstdio>…
一眼(万年)贪心minn设小调不出来祭 首先要保证更靠前的输出更小那么容易想到,对于之后可能入栈的元素(即栈的剩余空间仍能装下的所有元素),我们可以取其中的最小值minn,和栈顶元素$top$比较,如果minn<top我们将minn及之前的所有元素入栈,然后输出minn并且让它出栈,当然可以直接输出不入栈,这是次要的,否则一直弹出栈顶直到栈空或top>minn #include<iostream> #include<cstdio> #include<stack&g…
题目描述 小雪非常关注自行车比赛,尤其是环滨湖自行车赛.一年一度的环滨湖自行车赛,需要选手们连续比赛数日,最终按照累计得分决出冠军.今年一共有 N 位参赛选手.每一天的比赛总会决出当日的排名,第一名的选手会获得 N 点得分,第二名会获得 N-1 点得分,第三名会获得 N-2 点得分,依次类推,最后一名会获得 1 点得分.保证没有选手会排名相同. 在之前的数日较量中, N 位选手已经分别累计了一些分数.现在即将开始的是最后一天的比赛.小雪希望知道有多少位选手还有可能获得最终的冠军,也就是说还有多少…
题目链接 观察什么时候x到y之间那一段可以被统计 xorsum[x-1]^xorsum[y]=k xorsum[x-1]=xorsum[y]^k||xorsum[y]=xorsum[x-1]^k 莫队维护. #include<cstdio> #include<cstring> #include<algorithm> #include<cctype> #include<cstdlib> #include<cmath> #define m…
[题解] 为了让某个选手能够获得总分第一,就让他最后一天的得分是n,并且让别的选手的得分的最大值尽量小.于是我们先把目前积分排序,并且让他们最后一天的排名刚好与积分排名相反.即某个积分排名为X的人最后一天排名为n-X+1. 然后我们在里面找出最高总分mx. 接着依次枚举每个人,如果他的积分加上n≥mx,那么这个人就有可能获得冠军. #include<cstdio> #include<algorithm> #define N 300010 #define rg register us…
题目描述 已知一个长度为n的整数数列a1,a2,...,an,给定查询参数l.r,问在al,al+1,...,ar​区间内,有多少子序列满足异或和等于k.也就是说,对于所有的x,y (I ≤ x ≤ y ≤ r),能够满足ax⨁ax+1⨁...⨁ay=ka_x \bigoplus a_{x+1} \bigoplus ... \bigoplus a_y = kax​⨁ax+1​⨁...⨁ay​=k的x,y有多少组. 输入格式 输入文件第一行,为3个整数n,m,k. 第二行为空格分开的n个整数,即a…
清晰明了%%% Fairycastle的博客 个人习惯把size什么的存在左偏树结点内,这样在外面好写,在里面就是模板(只用修改update). 可以对比一下代码(好像也差不多-) MY CODE #include <vector> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 1000005; struct lt…
https://www.luogu.org/problemnew/show/P1631 序列a中每个数首先都和序列b中的最小元素配对(虽然好像不是很必要这么早插进来?) 每次从堆顶取出最小的和输出答案,然后尝试为这个ai配对下一个bj,要是没有的话--说明都是他一个人贡献完了. #include<bits/stdc++.h> using namespace std; typedef long long ll; int n; int a[100005]; int b[100005]; struc…
更好的阅读体验 Portal Portal1: Luogu Description 给你一个序列\(a\) 每次两个操作: 修改\(x\)位置的值为\(y\): 查询区间\([l, r]\)是否可以重排为值域上连续的一段. Input 第一行两个数\(n, m\): 第二行\(n\)个数表示\(a[i]\): 后面m行每行三个数opt x y,或者opt l r,代表操作. Output 如果可以,输出damushen: 否则输出yuanxing. Sample Input 5 5 1 2 3…
题目链接:http://uoj.ac/problem/238 题目大意: 有一个长度为n的黑白序列,告诉你所以k个极长连续黑段长度和顺序.有一些位置的颜色已知,需要判断剩下未知的位置哪些颜色 一定是白或一定是黑.保证至少存在一组解. 分析: 先猜测,根据数据范围,虽然n很大,但是k却很小,可以考虑复杂度为O(n*k)的算法.(* ̄︶ ̄) 我们再来具体看看,可以设状态: f0[i][j] 表示前i个位置能匹配j段并且i位置为白是否合法. f1[i][j] 表示前i个位置能匹配j段并且i位置为黑是否…
Problem bzoj & Luogu 题目大意: 给定序列\(\{a_i\}\),求一个严格递增序列\(\{b_i\}\),使得\(\sum \bigl |a_i-b_i\bigr|\)最小 Thought 正序:直接对应 逆序:取中位数(证明:"医院设置") 最优解一定是分段 每一段台阶式上升 每一段选取中位数 沙漏型左偏树 合并区间 选取中位数 upd:貌似不需要沙漏型? Solution 前置技能:小学奥数.可并堆 和上面类似,先不考虑严格上升,即先考虑非严格上升 序…
\([LCOI2018][WX11.1]~Tirpitz​\) 时限:1s 内存限制:131072KB 输入文件: T.in 输出文件: T.out 题目背景 王九日很颓废,这也就是他为什么这么弱的原因. 众所周知,提尔比茨(Tirpitz)又被称为"北方的孤独女王". 然而这个东西和题目并没有什么关系 题目描述 \(Felling\)和邪恶的修道者\(Neyii\)对战.十分的激烈,地球人为了纪念这场伟大的战斗.于是将这一史诗级的故事,编写成了游戏,名字叫做<黑白块> 地…
luogu 题意 给你一个序列a,长度为n,有m次操作,每次询问一个区间是否可以选出两个数它们的差为x,或者询问一个区间是否可以选出两个数它们的和为x,或者询问一个区间是否可以选出两个数它们的乘积为x ,这三个操作分别为操作1,2,3 选出的这两个数可以是同一个位置的数 所有数据\(\le 10^5\) sol 正好今天考试一道题要用到\(bitset\)就跑过来写一下. 所谓\(bitset\)其实就是一个不用手写的压位,一般用来优化暴力,复杂度\(O(\frac{n^2}{64})\)哈.(…
cf luogu 我们最终要的序列一定是前面全是0,后面全是1,假设总共\(m\)个0,那么这等价于前\(m\)位0的个数为\(m\).当然一开始可能数量没有\(m\) 那就把前\(m\)位0的数量作为状态,记\(f_{i,j}\)表示前\(i\)次操作,前\(m\)位有\(j\)个0的概率.转移的话只有两种情况会改变状态下表,第一种是前面的0和后面的1交换,这会导致\(j-1\),第二种是前面的1和后面的0交换,这会导致\(j+1\),剩下的情况都不会改变\(j\).所以就可以做到\(O(nk…
待学的习: https://www.cnblogs.com/xiao-ju-ruo-xjr/p/9149792.html 待写的题: loj#3184:「CEOI2018」斐波那契表示法 luoguP3634: [APIO2012]守卫 hdu5316: Magician luoguP4121: 双面棋盘 loj#6515:「雅礼集训 2018 Day10」贪玩蓝月 bzoj3272: Zgg吃东西 luogu polya模板 luoguP3321: [SDOI2015] 序列统计 bzoj45…
2021.08.06 P4392 Sound静音问题(ST表) [P4392 BOI2007]Sound 静音问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 序列a,求a中子序列长度为m且子序列max-min<=cha的子序列起点. PS:st表容易MLE,只需要开logm的数组,而不是logn,而且不需要记录原数组: ​ 如果没有一个子序列满足条件,输出NONE!! 分析: 裸的ST表. 代码如下: #include<cstdio> #include&l…
[luogu P3648] [APIO2014]序列分割 题目描述 小H最近迷上了一个分隔序列的游戏.在这个游戏里,小H需要将一个长度为n的非负整数序列分割成k+1个非空的子序列.为了得到k+1个子序列,小H需要重复k次以下的步骤: 1.小H首先选择一个长度超过1的序列(一开始小H只有一个长度为n的序列——也就是一开始得到的整个序列): 2.选择一个位置,并通过这个位置将这个序列分割成连续的两个非空的新序列. 每次进行上述步骤之后,小H将会得到一定的分数.这个分数为两个新序列中元素和的乘积.小H…
Luogu 3246 序列 考虑莫队,不算特别优秀,但足以通过此题. 用莫队做,先考虑在当前区间右边加入一个数对答案的影响,其他三种情况同理. 若加入新数的区间为 \([L,R]\) ,那么加的贡献就是 \([L,R],[L+1,R]\dots [R,R]\) 这些区间最小值之和. 用单调栈预处理出每个数 \(a_i\) 左边第一个比它小的数的位置 \(sl\) ,那么它被记作最小值的区间就是 \([sl+1,R],[sl+2,R]\dots[i,R]\) ,被算了 \(i-sl\) 次.那么就…
[Luogu 2023] AHOI2009 维护序列 恕我冒昧这和线段树模板二有个琴梨区别? #include <cstdio> int n,m; long long p; class SegmentTree { private: struct Node { int left,right; long long v,mul,add; Node *c[2]; Node(int l,int r):left(l),right(r),mul(1LL),add(0LL) { if(l==r) { scan…
[Luogu 1963] NOI2009 变换序列 先%Dalao's Blog 什么?二分图匹配?这个确定可以建图? 「没有建不成图的图论题,只有你想不出的建模方法.」 建图相当玄学,不过理解大约也那么奇怪. 题里面对D(x,y)的定义那一长句,一开始没看明白,但实际会发现是一个环,而对于每一个点u,符合给定距离的点都有且只有2个(v1 && v2),连u->v1 && u->v2. 对于链式前向星选手,连边的时候注意先连终点序号大的,这样才能保证遍历时从小到…
题面 好久没写博客了..最近新学了CDQ...于是就来发一发一道CDQ的练习题 看上去就是可以dp的样子. 设\(dp_{i}\)为以i结尾的最长不下降序列. 易得:\(dp_{i}\)=\(max(dp_{j})+1\)\((j<=i\)&&\(Max_{j}<=a_{i}\)&&\(a_{j}<=Min_{i})\) \(Max_{i}\)和\(Min_{i}\)表示第i个点所有变化中的最大值和最小值. 我们考虑用一个什么东西来维护这个dp. 我的第一…
前 言: 一直很想写这道括号树..毕竟是在去年折磨了我4个小时的题.... 上午小测3 T1 括号序列 前言: 原来这题是个dp啊...这几天出了好几道dp,我都没看出来,我竟然折磨菜. 考试的时候先打了个暴力,然后就开始往容斥上想.... 解析: 考虑dp. 令dp[i] 表示以i为结尾的,合法的子串数量. 令match[i] 表示进行括号匹配时,与i匹配的括号的编号. (以上i都是右括号,如果是左括号置为0即可) 然后,就有: if(match[i]) dp[i]=dp[match[i]-1…