
各省省选
文章平均质量分 60
zsyzClb
这个作者很懒,什么都没留下…
展开
-
loj2040「SHOI2015」零件组装机
(这道题可能是我退役前做的最后一道省选题了。。。)这个零件肯定是合并了n-1次。自己搞一搞可以发现,编号最大的零件在每一次合并都是处在大的那一个零件的,即编号最大的那个零件每次都合并一个比它小的零件。然后我们就可以通过最后一个点找到与该零件合并的所有零件,并对这些零件跑相同的做法。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include原创 2020-11-06 15:07:02 · 277 阅读 · 0 评论 -
loj2038「SHOI2015」超能粒子炮・改(卢卡斯的理解和延伸+数位dp)
我们发现暴力+裸的卢卡斯可以骗到50分所以就应该朝卢卡斯的方向去想。卢卡斯是把n,k拆成两个p进制数进行统计的。注意到如果在某一位ai>nia_i>n_iai>ni,a表示当前的数,n就是给定的n,那么这个数就肯定是0。所以在p进制时n就是k的限制。有可以发现这和数位dp很像,所以用数位dp求解就行了。#include <cstdio>#include <cstring>#include <iostream>#include <原创 2020-11-05 16:29:31 · 179 阅读 · 0 评论 -
loj2037「SHOI2015」脑洞治疗仪(又发现了一个新的玄学问题!)
这不就是一个线段树无脑码农题吗?做过can you answer this questions?肯定会觉得这题很简单c:1的个数lm:左边脑洞的大小rm:右边脑洞的大小dat:最大脑洞的大小[l,r]左右区间其他线段树怎么打就怎么打有意思的是,我在loj提交的时候(洛谷不会),把快读的void改成了int就会全部tle,后面改过来就直接a了。#include <cstdio>#include <cstring>#include <iostream>原创 2020-11-05 10:05:27 · 230 阅读 · 0 评论 -
loj2033「SDOI2016」生成魔咒
答案是所有height之和很容易想到直接用后缀数组暴力骗60分#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include <algorithm>#define FOR(i, x, y) for (int i = x; i <= y; i++)#define DOW(i, x, y) for (int i = x; i >=原创 2020-11-04 10:02:15 · 148 阅读 · 0 评论 -
loj2032.[SDOI2016]游戏(李超线段树)
这道题是裸的熟练剖分+李超线段树(公式改一下就行了)我想手推一波用线段树维护线段,但是实力不够,所以只好去%一波题解。李超线段树的思想就是维护当前区间内当x=mid时最大的线段,修改分成logn个区间每个区间下传logn次,查询nlogn#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#define l原创 2020-11-02 20:12:22 · 160 阅读 · 0 评论 -
loj2018. 「AHOI / HNOI2017」单旋
因为不能直接打spaly,所以我们先手动模拟一次,找找性质。题目说的很明白,旋转的必须是最小的或者最大的。举最小的为例,它旋转到根节点并不会破坏原来的结构,而是将自己的右儿子变为父亲的左儿子,然后认根节点为右儿子,自己成为根节点,那么这个旋转只需要O(1)。对于插入操作,直觉告诉我会和前驱后继有关,后面发现真的是找前驱后继中深度大的那个点认父亲。删除的话就是旋转以后直接删除。还有维护深度,我们发现每次修改都是区间修改,所以对关键值离散化以后用线段树处理(不用管没出现的值),前驱后继就用stl的set原创 2020-10-14 10:33:33 · 192 阅读 · 0 评论 -
Loj2014「SCOI2016」萌萌哒
很容易想到暴力的做法,每次把每个询问相对的点并查集合并。#include <cstdio>#include <cstring>#define LL long longusing namespace std;const int N = 1e5 + 10;const LL P = 1e9 + 7; int fa[N];int findfa(int x) { return x == fa[x] ? x : fa[x] = findfa(fa[x]); }LL pow原创 2020-10-12 16:18:13 · 161 阅读 · 0 评论 -
loj2013「SCOI2016」幸运数字
求最大异或和肯定是要用线性基的,在树上的话就要加一个倍增并且要合并线性基,不过这样的时间复杂度O(q∗logn∗612)O(q*\log n*61^2)O(q∗logn∗612),还好常数比较小而且跑不满就卡过去了。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#define LL long long原创 2020-10-12 09:46:51 · 172 阅读 · 0 评论 -
LOJ2012「SCOI2016」背单词
一个很好想的贪心题(但居然花了我一个晚上的时间AC)。1.我们肯定不能让一个字符串的后缀在它的后面。因为没有相同的字符串,所以不用考虑这种情况。2.如果a是b的后缀,b是c的后缀,那么我们一定会让让a在b的前面,b在c的前面(不一定连在一起)。3.举个例子,a,aa,aaa,b,bb,我们把a,aa,aaa放在一起,b,bb放在一起,很明显,b,bb要放在a,aa,aaa的前面(你得假设第0个字符串是空,为任何一个字符串的后缀)。ba,baa,baaa,bb,bbb,bbbb同理。所以给每个字符串一原创 2020-10-11 21:37:51 · 134 阅读 · 0 评论 -
loj2011「SCOI2015」情报传递
终于见到了一道水题一眼看过去就是主席树因为修改很麻烦,所以我们直接预处理一下假设士兵开始执行任务的时间是ai,现在询问的时间是t,限定是c,那么求的就是满足ai<=j−c−1a_i<=j-c-1ai<=j−c−1的i的个数然后就把树上的每一个节点建一条链,然后将他的父亲合并下来,询问的时候计算[1,j-c-1]的个数就行了#include <cstdio>#include <cstring>#include <cstdlib>#incl原创 2020-06-20 11:54:19 · 209 阅读 · 0 评论 -
Loj2010「SCOI2015」小凸解密码
这道题很明显使用线段树来做。我们让线段树维护b对于修改操作,我们只需要修改四个点对于查询操作,可以想到二分答案,我们把b复制一倍放在末尾,只需要判断[x+mid,x+n-mid]中是否有一段被大于0的数包围的一串0,因为要考虑边界问题,所以把判断的区间改成[x+mid-1,x+n-mid+1]更加便于维护和查找#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream&原创 2020-06-20 10:15:46 · 213 阅读 · 0 评论 -
Loj2009「SCOI2015」小凸玩密室
仔细观察以后可以发现,关于电灯有以下几个性质:1根节点不是1,也就是每个点都可能为根节点,这就意味着不能用O(N^2)的做法,只能考虑O(NlogN)或者O(N)2所有点亮的灯都是连在一起的3对于一个已经点亮的点,它的左右子树只有3种可能:没有染色,已经全部染完,正在染色4当你准备将一个点染色的时候,上一个染色的点可能是它的父亲或者它父亲拥有的另外一棵子树的叶子节点根据这几个性质,可以想到dp状态:dp[i][j][0]表示将第i个点的子树全部点亮并且上去点亮i的第j个祖先所需的最小费用原创 2020-06-13 11:54:36 · 210 阅读 · 0 评论 -
loj2007「SCOI2015」国旗计划
一道很有意思的贪心+倍增的题目。首先我们要把环变成链(复制一倍放到末尾去)。这道题有一个非常巧妙的性质:任意一个区间都没有别的被包含(假如这一道题有包含的话就要把被包含的那个区间给去掉)。也就是说把把每一个士兵的区间左端点从小到大排序后,右端点也是从小到大排好序的。然后我们从贪心的角度思考,对于一个士兵,接应他的人一定是在能接应到的情况下左端点最大的。然后就很好做了,考虑一下倍增,nxt[x...原创 2020-04-11 18:24:02 · 218 阅读 · 0 评论 -
loj2006「SCOI2015」小凸玩矩阵
题目说使第k大最小,很容易想到二分。二分以后,我们就要判断是否能够选出n-k+1个<=mid的数。又因为每行每列都只能选一个数,我记得这种问题以前学匈牙利算法的时候做过,所以当存在ai,j<=mida_{i,j}<=midai,j<=mid的时候,我们从i向j连边,然后跑一次匈牙利算法,看看最大匹配是否>=n-k+1即可参考代码#include <cs...原创 2020-04-11 15:15:07 · 186 阅读 · 0 评论 -
loj2005「SDOI2017」相关分析
很明显是要推公式啊,然后用线段树维护。以下我们将∑i=lr\sum_{i=l}^r∑i=lr看成∑\sum∑把操作1的公式化简一下,就可以得到需要维护的有∑xi\sum x_i∑xi∑yi\sum y_i∑yi∑xi∗yi\sum x_i*y_i∑xi∗yi∑xi2\sum x_i^2∑xi2这四种。然后用上求和公式和平方和公式就可以很容易的得到操作二和操作三分别是:...原创 2020-04-09 22:21:55 · 140 阅读 · 0 评论 -
loj2004[SDOI2017]硬币游戏
求概率的题我只见过两种(做题太少),最后就是用高斯消元或者dp来求解的。引理一:结尾包含一个长度为L的指定串并(不含别的指定串)的概率为12L\frac{1}{2^L}2L1证明:很简单,只看结尾,结果有2n2^n2n种等可能情况,满足条件的只有一种所有概率就是12L\frac{1}{2^L}2L1假设x0x_0x0为一个任意长度但不包含任意一个给定序列的概率,xix_ixi表示...原创 2020-04-08 23:20:04 · 262 阅读 · 0 评论 -
Loj2003「SDOI2017」新生舞会
这道题太明显了,一眼看过去就知道是0/1分数规划。先用二分枚举mid,假设mid就是c我们要判断的是a1+a2+...+anb1+b2+...+bn>=c\frac{a_1+a_2+...+a_n}{b_1+b2+...+b_n}>=cb1+b2+...+bna1+a2+...+an>=c然后我们就可以把分母乘到c上面去,得到a1+a2+...+an>...原创 2020-04-07 21:34:44 · 172 阅读 · 0 评论 -
loj2002「SDOI2017」序列计数
这一道题可以很容易的想出O(nm)O(n^m)O(nm)的做法,这种做法理论上可以用天河二号在1h之内算出结果(????)排除暴力的解法,既然不能直接算出结果, 那么我们可以利用减法算出结果。因为要求了至少有一个质数,和是p的倍数,所以可以用所有和为p的倍数的 - 和为p的倍数且没有质数的假设f[i][j]f[i][j]f[i][j]为其它满足条件的长度为i,和%P为j的序列的个数,容易得出这...原创 2020-04-06 19:29:47 · 203 阅读 · 0 评论 -
loj2001「SDOI2017」树点涂色
这道题是真的妙,感觉做完这一题,我对LCT的理解又加深了一点。题解:操作一我们发现这一个操作就是把树中某个节点到根节点的路径上的所有节点变成一样的颜色,又因为这棵树上有一个性质,同样颜色的点连接起来一定会是一条链,就可以想到LCT的access函数。所以我们将同种颜色的点看成LCT中同一棵splay上的点。操作二因为LCT已经维护了颜色了,所以我们不能再用LCT来维护路径之间的权值了。于...原创 2020-04-06 15:02:44 · 202 阅读 · 0 评论 -
loj2000「SDOI2017」数字表格
在不开题解的情况下,成功骗了30分,以下是骗分的代码#include <cstdio>#include <cstring>#include <iostream>#include <cmath>using namespace std;typedef long long LL;const int N = 1e3 + 6, P = 1e9 +...原创 2020-04-05 23:31:56 · 203 阅读 · 0 评论 -
[ZJOI2004]嗅探器
题目描述原题来自:ZJOI 2004某军搞信息对抗实战演习,红军成功地侵入了蓝军的内部网络,蓝军共有两个信息中心,红军计划在某台中间服务器上安装一个嗅探器,从而能够侦听到两个信息中心互相交换的所有信息,但是蓝军的网络相当的庞大,数据包从一个信息中心传到另一个信息中心可以不止有一条通路。现在需要你尽快地解决这个问题,应该把嗅探器安装在哪个中间服务器上才能保证所有的数据包都能被捕获?输入格...原创 2018-12-21 12:43:27 · 920 阅读 · 0 评论 -
[TJOI2011]构造矩阵
题目描述要求构造一个n*m的01矩阵,满足每一行中1的个数分别为r[1],r[2]……r[n],每一列中1的个数为c[1],c[2]……c[m]。在此基础上要求字典序最小。两个矩阵比较字典序时先比较第一行,第一行相等再比较第二行……输入输出格式输入格式: 第一行输入两个整数n,m第二行输入n个整数r[1],r[2]……r[n]第三行输入m个整数c[1],c[2]……...原创 2018-12-16 16:06:15 · 1156 阅读 · 0 评论 -
[AHOI2008]Y型项链
题目描述欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心。现在他们正在玩比赛串项链的游戏,谁串的最快就能得到优厚的奖品。这可不是普通的项链,而是一种Y型项链,项链的最中间有一颗大珍珠作为结合点,从大珍珠上连出来3条由各种宝石串起来的链子。比赛的规则是这样的:每次可以从三条链子中某一条的一端取下来一个宝石,或者安上去一个宝石,称为一次操作,经过若干次操作,最终使得三条链子完全相同。想要...原创 2018-12-22 09:47:48 · 1045 阅读 · 0 评论 -
[HNOI/AHOI2018]道路
题目就去洛谷看把 这一道题是一道很明显的树形dp,其实也不算很难我们在dfs中定义root , x , y root 表示当前的点 , x表示没翻新的公路的条数,y表示没翻新的铁路的条数并且定义一个 dp[][][]记录三个量记住:千万不能memset,千万不能memset,千万不能memset,否则你会死的难看于是所以的dp就被赋值为0,只要判断值不为...原创 2018-12-22 10:37:05 · 294 阅读 · 0 评论 -
[SCOI2006]城堡
题目描述为了救出心爱的公主Julie,Billy来到了恶魔的城堡。经过了三天三夜的浴血奋战,魔王殿已近在咫尺。这是一条狭长的通道,Billy在位置0,而魔王殿在位置n+1。在每个单位时间,Billy可以往左或往右移动一个单位,或者原地不动。每个格子的上方都有石头周期性的往下砸,格子i的周期为ci。对于格子i上方的石头,可以用ci个整数来描述:h[1], h[2], …, h[ci],表示在...原创 2018-12-28 13:15:54 · 295 阅读 · 0 评论 -
洛谷P2545 [AHOI2004]实验基地
题目描述 输入输出格式输入格式: 第一行有一个整数N(3<N<2000),表示登陆地带的大小是2×N。随后的两行每一行有N个整数(其绝对值不超过10^6),表示对应的矩形土地的适用度评估值,各个整数之间用一个空格隔开。 输出格式: 只有一行输出,为整数M,即所确定的实验基地的适用度。 输入输出样例输入样例#1: 4-1 2 -...原创 2018-12-18 12:56:21 · 265 阅读 · 0 评论 -
[TJOI2013]黄金矿工
题目描述小A最近迷上了在上课时玩《黄金矿工》这款游戏。为了避免被老师发现,他必须小心翼翼,因此他总是输。在输掉自己所有的金币后,他向你求助。每个黄金可以看做一个点(没有体积)。现在给出你N个黄金的坐标,挖到它们所需要的时间以及它们的价值。有些黄金在同一条直线上,这时候你必须按顺序挖。你可以瞬间把钩子转到任意角度。请你帮助小A算出在时间T内他最多可以得到多少价值的金子。输入输出格式输入格...原创 2019-01-03 13:17:10 · 695 阅读 · 0 评论 -
洛谷P4047 [JSOI2010]部落划分
N个野人居住的地点(可以看作是平面上的坐标)。我们知道,同一个部落的野人总是生活在附近。我们把两个部落的距离,定义为部落中距离最近的那两个居住点的距离。聪聪还获得了一个有意义的信息——这些野人总共被分为了K个部落!这真是个好消息。聪聪希望从这些信息里挖掘出所有部落的详细信息。他正在尝试这样一种算法:对于任意一种部落划分的方法,都能够求出两个部落之间的距离,聪聪希望求出一种部落划分的方法,使靠得...原创 2019-01-24 14:33:35 · 355 阅读 · 0 评论 -
P4289 [HAOI2008]移动玩具
题目描述在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动时只能将玩具向上下左右四个方向移动,并且移动的位置不能有玩具,请你用最少的移动次数将初始的玩具状态移动到某人心中的目标状态。输入输出格式输入格式: 前4行表示玩具的初始状态,每行4个数字1或0,1表示方格中放置了玩具,0表示没有放置玩具。接着是一个空行。接下来4行表示玩具的...原创 2019-01-19 14:51:46 · 506 阅读 · 0 评论 -
P1131 [ZJOI2007]时态同步
题目描述小Q在电子工艺实习课上学习焊接电路板。一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3进行标号。电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点,都存在且仅存在一条通路(通路指连接两个元件的导线序列)。在电路板上存在一个特殊的元件称为“激发器”。当激发器工作后,产生一个激励电流,通过导线传向每一个它所连接的节点。而中间节点接收到激励电流后,...原创 2019-01-24 16:07:50 · 249 阅读 · 0 评论 -
SDOI2006仓库管理员的烦恼
题目描述仓库管理员M最近一直很烦恼,因为他的上司给了他一个艰难的任务:让他尽快想出一种合理的方案,把公司的仓库整理好。已知公司共有n个仓库和n种货物,由于公司进货时没能很好的归好类,使得大部分的仓库里面同时装有多种货物,这就给搬运工作人员搬运货物时带来了很多的麻烦。仓库管理员M的任务就是设计一种合理的方案,把仓库里面的货物重新整理,把相同的货物放到同一个仓库,以便于日后的管理,在整理过...原创 2019-03-08 12:46:21 · 416 阅读 · 0 评论 -
[TJOI2012]防御
题目描述在一个塔防小游戏中,有很多防线。 每条防线由一排n个独立的防御体[1 : n]进行防御。游戏过程中,会不断有敌人对防线进行攻击,每次攻击会指定防御体[l : r]进行攻击力为a的攻击。 第一防线具有护甲,护甲承受攻击后,对应的防御体所受到的伤害为攻击力,但护甲承受的伤害总量到达一定程度后就会破碎,此时防御体所受的伤害加倍。 目前第一防线的力量充足,玩家致力于对后面的防线的建设,不过...原创 2018-12-15 09:51:40 · 341 阅读 · 0 评论