Jzoj
OI
专栏包括JZOJ的题目
扩展的灰
扩展的灰(Extended Ash)
展开
-
Jzoj5636 Power
近期没有写过博客感觉要死了->重返jz深造一道区间查询的问题,因为模数不是质数,我们考虑利用指数循环节这个东西:x^k=x^(k%phi(M)+phi(M))%M 这里要求k>=phi(M)那么可以写成Ans[l,r]%M=x^(Ans[l+1,r]%phi(M))%M由于phi的迭代会在logn次收敛为1,所以我们可以直接递归来做先用线性筛筛出10^7以内的phi值,大过这个的就分解...原创 2018-04-17 19:59:10 · 260 阅读 · 0 评论 -
Jzoj5619 重围
贪心的题目,但是其实并不是特别好想我们要先将所有怪物分成两类,一类是带有正收益的,一类是带有负收益的,显然应该先击杀第一类对于第一类怪物,如果我们当前能力值足够击杀一直怪物那么我们应该立刻击杀,所以可以按照Ai来排序对于第二类怪物,如果我们最后可以将这些怪物全部击杀,那么剩下的魂力值是肯定的,记为C'那么将这个过程倒过来,我们可以视为每次消耗Bi的魂力,让后恢复Ai点魂力,这就变成原创 2018-04-17 20:09:21 · 139 阅读 · 0 评论 -
Jzoj5605 Zkb
给定一个长度为 n 的正整数序列 a 1 ...a n . 现在有 m 次操作, 分为两种:• 1 l r t: 将区间 [l,r] 降序排序 (t = 0) 或升序排序 (t = 1)• 2 l r: 询问区间 [l,r] 内元素之积的十进制下最高位雅礼集训的题目,当时因为空间开小了爆零了先考虑一下询问,我们发现并不好直接做,所以可以对原数取log10,最后询问区间和的小数部分即可让后现在问题就...原创 2018-04-17 20:17:32 · 311 阅读 · 2 评论 -
Jzoj5603 xiz
给定字符串 S 和 T。串A和串B匹配的定义改为:存在一个字符的映射,使得A应用这个映射之后等于B,且这个映射必须为一个排列。A=121, B=313,当映射为{1->3, 2->1, 3->2}时A'=B,可以匹配A=212, B=313,当映射为{1->1, 2->3, 3->2}时A'=B,可以匹配A=232, B=313,当映射为{1->2, 2->3, 3->1}时A'=原创 2018-04-17 21:50:27 · 294 阅读 · 0 评论 -
Jzoj5600 Arg
给出一个长度为 m 的序列 A, 请你求出有多少种 1...n 的排列, 满足 A 是它的一个 LIS.dp套dp好题!我们先要考虑怎么搞一个状态出来考虑做lis的两种方法:1.设f[i]表示做到i的最长子序列长度2.设f[i]表示长度为i的上升子序列最后那个数最小是多少第一种方式不好设状态,我们考虑第二种显然,如果知道f里有哪些数字,就可以还原f那么我们设一个状态原创 2018-04-17 22:06:19 · 200 阅读 · 0 评论 -
Jzoj5608 Subset
这道题非常有意思首先我们可以发现,对于一个合法的三元组我们可以找到一个大小小于3的下标集合S与之对应那么我们就来考虑找到所有合法的这样的S当|S|=1时,显然都是成立的当|S|=2时,我们只需要保证s中两个元素i,j不满足a[i]考虑计算不满足的方案,可以用cdq分治+fenwick完成当|S|=3时,我们直接计算比较困难,我们考虑两种不合法的情况1.存在一个元素x满足原创 2018-04-20 20:16:45 · 256 阅读 · 0 评论 -
Jzoj5622 table
p一道非常有意思的题目如果将第一行看做一个多项式,那么每过一行就是乘上了一个(a+bx)那么我们可以求出(a+bx)^p的逆,让后就可以求出第一行当然也可以有简单做法首先如果推下式子,很容易知道第p行到第x行的转移 (x>p)f[x][y]=∑f[p][y-i]*a^(x-p-i)*b^i*C(x-p,i) (0那么我们考虑一下怎么用第p行推出p行上面的东西我们可以原创 2018-04-20 20:31:00 · 248 阅读 · 0 评论 -
Jzoj3351 神牛养成计划2
前文再续,书接上回,话说神牛yxr成功培育出神牛细胞,可最终培育出来的生物体却让他大失所望……后来,他从某GD女神 牛处知道,原来他培育的细胞发生了基因突变,原先决定神牛特征的基因序列都被破坏了,神牛yxr很生气,但他知道基因突变有低频性,说不定还有一些优秀基因没有突变,那么他就可以用限制性核酸内切酶把它们切出来,然后再构建基因表达载体什么的,后面的你懂的。神牛yxr现在知道了N个细胞的D原创 2018-04-20 20:40:03 · 241 阅读 · 0 评论 -
Jzoj5662 尺树寸泓
平衡树的问题,很容易想到中序遍历那么我们给每一个节点记录一下中序遍历中它子树所在的区间,一次旋转显然只会改变两个节点的值对于询问我们用线段树区间求积就可以了#pragma GCC optimize("O3")#pragma G++ optimize("O3")#include#include#include#define N 200010#define M 100000原创 2018-04-20 20:49:30 · 239 阅读 · 0 评论 -
Jzoj5661 药香沁鼻
有依赖关系的树形背包,算是又积累了一种做法一个经典的做法就是设f[x][j]表示在x子树内,容量为j的最大获利那么转移可以写成 f[x][j]=max{f[x][j],f[x][j-k]+f[v][k]} v是x的子树我们在dp时记录背包的剩余空间,就可以得到80分一个更好的优化就是用dfs序,复杂度直接下降为O(nm)当然最快的做法还是直接在树上做,我们还是设f[x][j]表原创 2018-04-20 20:56:36 · 283 阅读 · 0 评论 -
Jzoj5644 凫趋雀跃
经典套路容斥题直接dp做是O(TxTyRk)的可以60分满分做法又要用到经典的容斥法我们设f[i][x][y]表示走i步,走到x,y的方案(不考虑不合法向量)设g[i][x]表示走了i步不合法的向量,走到了(x,x)的方案数二项式反演得Answer=∑(-1)^i*C(R,i)*g[i][x]*f[R-i][Tx-x][Ty-x] 考虑f如何计算,因为x,y两维是独立的原创 2018-04-20 21:06:31 · 284 阅读 · 1 评论 -
Jzoj5665 奥立卡的诗
终于又遇到SAM的题了好好玩,而且就这道题让我弄清楚了广义SAM和Trie上SAM的区别其实两者是没有多少区别的,不过Trie上SAM可以更快关于Trie上SAM,是用bfs的方法来构建的,相比起广义SAM用dfs建少了一个深度之和的部分但是如果原题给的就是Trie那么就只能用bfs了,因为dfs会被卡成O(n^2) (考虑一个扫把)回到本题,简化一下式子发现这道题求的是不同子串的原创 2018-04-20 21:18:25 · 262 阅读 · 0 评论 -
Jzoj5669 排列
有 n 个数 x1 ~xn 。你需要找出它们的一个排列,满足 m 个条件,每个条件形如 x_a 必须在x_b之前。在此基础上,你要最大化这个排列的最大子段和。神题,这里先orz一下当场切掉的神犇wjw看下数据范围,n构图方式,每个点拆开成a[i],b[i]如果x[i]>0,那么S->a[i],b[i]->T连权值为x[i]的边否则,a[i]->b[i]权值为-x[i]的边对原创 2018-04-20 21:29:29 · 231 阅读 · 0 评论 -
Jzoj5674 香槟
有一棵 n 个节点的树,初始时所有节点都为空。Alan 和 Bob 在树上玩游戏,双方轮流进行,Alan先手。每轮中,Alan 可以选择一个空节点 x,在 x 上放一个波澜哥;Bob 每轮可以选择一个空节点 y,将 y 节点以及所有与 y 相邻的节点上都放置一个面筋哥。可能存在节点既有波澜哥,又有面筋哥。当所有节点非空时,游戏结束。由于面筋哥比较得劲,Alan 和 Bob 认为如果一个节点上有原创 2018-04-20 21:43:27 · 370 阅读 · 0 评论 -
Jzoj3590 珠链
Alex喜欢玩网络游戏,认为这是智力和体力的综合锻炼。在一次游戏活动中,他意外获得了一个传说中威力极其强大的法宝:珠链。 珠链,顾名思义,就是由许多小珠子串起来的一条链。珠子有很多种颜色。Alex听说过,只有将珠链打磨纯净,珠链才能发挥最大的威力。 纯净珠链是指这样的珠链:它可以分成若干个长度相等的段,使任何两段的任何相同位置的珠子的颜色均不同,相同位置指珠子在段内的相对位置相同;而且每段原创 2018-01-22 18:54:25 · 270 阅读 · 0 评论 -
Jzoj3591 数据
现在,二维平面上有N个点。Alex 需要实现以下三种操作:1. 在点集里添加一个点;2. 给出一个点,查询它到点集里所有点的曼哈顿距离的最小值;3. 给出一个点,查询它到点集里所有点的曼哈顿距离的最大值。 两个点的曼哈顿距离定义为它们的横坐标差的绝对值与纵坐标差的绝对值的和。这么困难的问题,Alex当然不会做,只好再次请你帮忙了。树套树裸题cdq分治第二题诶,突原创 2018-01-22 19:02:15 · 254 阅读 · 0 评论 -
Jzoj5317 Func
f(1)=1 f(2x)=f(x) f(2x+1)=f(x)+f(x+1) 给出n第一道类欧算法我们考虑一个性质 f(2x+1)=f(x)+f(x+1)=f(2x)+f(2x+2)所以,显然有f(2x+1)>f(2x) f(2x+1)>f(2x+2)那么现在我们知道了f(2x+1),自然考虑枚举一个f(2x)可以按照以下形式转移:f(2x+1),f(2x)->f(x原创 2018-01-22 19:11:48 · 265 阅读 · 0 评论 -
Jzoj3528 图书馆
圣玛格丽特大图书馆是一座由石材砌成的角柱型高塔,是欧洲屈指可数的巨大书库。图书馆整面墙壁都是巨大的书架,书架与书架之间就像巨大的迷宫一般,以细窄的木制楼梯连结。大图书馆的最高处是一个绿意盎然的植物园,维多利加正在那无聊地看着书。今天,一如往常地,久城要爬上这迷宫般的楼梯给维多利加送讲义。图书馆墙壁上有N个平台,编号为1到N,入口为1号,植物园为N号。有M个连接两个不同平台的楼梯,爬每个楼梯需要原创 2018-01-22 19:18:05 · 447 阅读 · 0 评论 -
Jzoj5542 董先生的钦点
这道题在我做的前一天被wjw大佬压中了,当时随便脑洞了一个做法于是在比赛还剩3分钟的时候我把它写了一下就切了考虑一个集合S,f(S)=ΣSi 显然我们将所有的f排序之后有一个性质rank[f(S)]+rank[f(~S)]=2^N那么显然,中位数就是将全集划分为两个尽可能平均的集合的较大一部分我们考虑dp,f[i]=max(f[i-v[j]]+v[j]) ,答案即为f[S/2]原创 2018-01-24 17:27:49 · 630 阅读 · 1 评论 -
Jzoj3303 城市规划
刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了.刚才说过, 阿狸的国家有n 个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得整个国家的任意两个城市都直接或间接的连通.为了省钱, 每两个城市之间最多只能有一条直接的贸易路径. 对于两个建立路线的方案, 如果存在一个城市对, 在两个方案中是否建立路线不一样, 那么这两个方案就是不同的, 否则就是相同的. 现在你需要求出一共原创 2018-01-25 08:04:43 · 285 阅读 · 0 评论 -
Jzoj1967 聪聪可可
聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏: 由爸爸在纸上画n个“点”,并用n-1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边原创 2018-01-30 19:54:04 · 283 阅读 · 0 评论 -
Jzoj1968 设计铁路
A省有一条东西向的公路经常堵车,为解决这一问题,省政府对此展开了调查。调查后得知,这条公路两侧有很多村落,每个村落里都住着很多个信仰c教的教徒,每周日都会开着自家的车沿公路到B地去“膜拜”他们的教主,这便是堵车的原因。详细调查显示:这里总共有N个村落,并且它们都在B地的东边。编号为i的村落住有ti个信仰c教的教徒,距离B地的距离为ri(单位:公里)。 为解决这一问题,A省政府决原创 2018-01-30 20:06:36 · 213 阅读 · 0 评论 -
Jzoj2197 三核苷酸
三核苷酸是组成DNA序列的基本片段。具体来说,核苷酸一共有4种,分别用’A’,’G’,’C’,’T’来表示。而三核苷酸就是由3个核苷酸排列而成的DNA片段。三核苷酸一共有64种,分别是’AAA’,’AAG’,…,’GGG’。给定一个长度为L的DNA序列,一共可以分辨出(L-2)个三核苷酸。现在我们想用一些统计学的方法来进行一些分析,步骤如下:1.对于这(L-2)个三核苷酸,我们从左到右给予编号原创 2018-01-20 16:53:31 · 423 阅读 · 0 评论 -
Jzoj1951 布娃娃
一开始看错题目了,很容易看成i喜欢的中,让后写主席树区间第k大反过来其实也很好做,我们考虑将所有的L,R,P丢到一起考虑,分两种操作,询问和修改(是不是很像cdq分治)排个序再加上个平衡树离散化+ZKW线段树求第k大就好了(注意题目坑点:是第k大不是第k小)#pragma GCC optimize("O3")#pragma G++ optimize("O3")#includ原创 2018-01-20 17:07:25 · 356 阅读 · 0 评论 -
Jzoj2183 树
图论中的树为一个无环的无向图。给定一棵树,每个节点有一盏指示灯和一个按钮。如果节点的按扭被按了,那么该节点的灯会从熄灭变为点亮(当按之前是熄灭的),或者从点亮到熄灭(当按之前是点亮的)。并且该节点的直接邻居也发生同样的变化。 开始的时候,所有的指示灯都是熄灭的。请编程计算最少要按多少次按钮,才能让所有节点的指示灯变为点亮状态。高斯消元裸题好吧如果出到100W就不能这么做了(虽然说这题原创 2018-01-20 17:21:34 · 244 阅读 · 0 评论 -
Jzoj1973 信号塔
lanwuni接到一个任务,在C市建立N个信号塔来完成城市中的通讯任务。 假设C市是一个坐标范围[-2000000,2000000]的网格,一些整点上有用户,你也可以在整点上建立信号塔。一个点上可以建立多座。 在C市,两点之间的距离是曼哈顿距离,也就是横纵坐标差值之和。每个信号塔都有一个半径Di,表示与i曼哈顿距离不超过Di的地方都能被这个信号塔的信号覆盖到。 建立信号塔要满原创 2018-01-20 20:00:28 · 295 阅读 · 0 评论 -
Jzoj2308 聚会
Tzdin想组织一个圣诞晚会。N位女士和M位男士(M>=N)会被邀请参加这个聚会。在聚会的开始,Tzdin会派发一些写着某位男士信息的卡片给每位女士;每位女士都会收到若干张这种卡片。然后每位女士可以从她收到的卡片里挑选一位男士作为她的伴侣。我们可以认为经过Tzdin的引导,每位女士都一定可以挑选到一位男士作为他的伴侣,而每位男士最多成为1位女士的伴侣。Tzdin想知道的是,有哪些男士,无论女士们怎原创 2018-01-20 20:23:29 · 370 阅读 · 0 评论 -
Jzoj2309 辽哥游戏
张辽是一个长发飘飘的非常聪明的男孩,人人都称他为“辽哥”。辽哥喜欢玩一个有趣的电脑游戏。这个游戏开始的时候有n个碉堡,每个碉堡拥有一个防御值a和一个附加值b。玩家拥有一个初始的攻击力S。如果玩家破坏了一个碉堡,则他能得到1分。每一次,辽哥会选择一个碉堡进行攻击。所有未被破坏的碉堡会联合起来防御,因此为了破坏那个碉堡,辽哥的攻击力必须大于或者等于所有未被破坏的碉堡的防御值之和,否则辽哥就会输掉游戏。原创 2018-01-20 21:09:00 · 386 阅读 · 0 评论 -
Jzoj4209 已经没有什么好害怕的了
小Y 最近开始学习算法姿势,但是因为小R 非常BB,给了她很多B6 题,所以她觉得自己已经没有什么前途了。于是小R 给了她一些稍微简单的题,让她觉得已经没有什么好害怕的了,其中一道是这样的:给定一个长度为n 只包含左括号和右括号的序列,现在小R 想要知道经过每一个位置的合法子串有多少个。空串是一个合法的串,如果A 和B 都是合法的串,那么(A) 和AB 都是合法的串。 n又原创 2018-01-17 12:13:13 · 537 阅读 · 0 评论 -
Jzoj4210 我才不是萝莉控呢
小Y:“小R你是萝莉控吗。”小R:“...” 为了避免这个尴尬的话题,小R决定给小Y做一道题。有一个长度为n的正整数数组A,满足艾> =艾+ 1,现在构造一个数组B,令的Bi = ΣA[j] (j∈[i,n])。现在,有一个N * N的网格图,左下角坐标是(1,1),右上角坐标是(N,N)。有一个小SB正在坐标为(n,1)的位置,每一时刻,如果他现在在(x,y),他可以选择走到(x?-原创 2018-01-18 19:52:40 · 1659 阅读 · 0 评论 -
Jzoj3177 安全监控
选举越来越近了,所以总统Amabo Kcarab准备在美国计划一次旅行,并在WDC和LA进行演讲。特务为了能够保护总统的安全,需要时刻监控所有总统会经过的城市(包括WDC和LA)。当然,为了使预算不会太大,总统不会用到AF1,而会用汽车作为交通工具。并且,特务计划在总统从WDC到LA和回到WDC的旅途中安排尽可能少的需要监控的城市数目。对于这个问题,我们假设美国有N(N写一个程序计算出原创 2018-01-10 17:06:15 · 342 阅读 · 0 评论 -
Jzoj3172 贴瓷砖
A镇的主街是由N个小写字母构成,镇长准备在上面贴瓷砖,瓷砖一共有M种,第i种上面有Li个小写字母,瓷砖不能旋转也不能被分割开来,瓷砖只能贴在跟它身上的字母完全一样的地方,允许瓷砖重叠,并且同一种瓷砖的数量是无穷的。问街道有多少字母(地方)不能被瓷砖覆盖。、今天翻看题库发现这道题忘记写题解了。。。非常好的卡常题,题目也很裸,直接AC自动机+前缀和判定就好了,但是当时不知道为什么用了fen原创 2018-01-11 16:41:10 · 270 阅读 · 0 评论 -
Jzoj3169 生产汽车
如前面提到,ABC的汽车工厂有N个工人,他们在一个传送带上生产汽车,工人从左到右排列,编号依次为1到N,采用流水线模式,每个人负责自己的一部分工作。生产一台汽车需要从1号工人开始,当1号完成他的工作后,2号就会开始工作,然后是3号,最后当N号工人完成他的工作后,整个汽车生产完毕。工人们一共需要生产M台汽车,而且必须按照从1到M的顺序去生产。对于工人i,他完成自己的工作需要Ti的时间,而对于原创 2018-01-07 21:55:56 · 421 阅读 · 0 评论 -
Jzoj3176 蜘蛛侠
话说世界上有很多超级英雄:蝙蝠侠,蜘蛛侠,超人,名字都写不出来的人等等。在他们之中有一个叫Kickass。今天他想模仿蜘蛛侠,所以他选择了一排高楼来跳。具体来说,他选择了一列N幢高楼,从左到右标号为1到N。一开始他在第K幢高楼。不幸的是,Kickass能力非常有限,只能跳到向左或向右相邻的高楼,而且他要跳到的楼的高度必须不能大于他现在处在的楼的高度。Kickass不想自己看起来很渣渣,所以原创 2018-01-07 22:06:42 · 445 阅读 · 0 评论 -
Jzoj3467 最长上升子序列
维护一个序列,使它可以进行下面两种操作:1.在末尾添加一个数字x2.将整个序列变成第x次操作后的样子在每次操作后,输出当前序列的最长上升子序列的长度序列初始时为空嗯,可持久化线段树的裸题额这可是noip提高组难度的题,我们发现所有操作可以变成一棵树(离线做法老套路了)让后每次最多修改数组上的一个值(考虑二分求LIS的过程)最后改回去就好了注意dfs又卡栈(jzo原创 2017-11-25 18:58:07 · 2932 阅读 · 0 评论 -
Jzoj3162 旋转
Alice和Bob发明了一个新的旋转游戏。首先,Bob给定N个数组成的序列,并把该序列平均分配成若干个块,每块正好包含K个数(K能整除N)。第一块由第1到第K个数构成,第二块由第K+1个数到第2K个数构成,以此类推。接着,Bob要求Alice对这个序列进行一系列操作,操作有以下两种:1.把每块里面的数向左或右旋转X个位置;2.把整个序列向左或向右旋转X个位置。 注意操作2原创 2018-01-02 20:41:17 · 291 阅读 · 0 评论 -
Jzoj3163 排列
给你M个对1到N的排列的特征,特征有两种:1 x y v:排列的第x个数到第y个数之间的最大值为v2 x y v:排列的第x个数到第y个数之间的最小值为v要求你还原出这个排列(N刷水题有利于身心健康但你还不是不会做?额这想必许多人看完题目就知道怎么做了吧,才200直接二分图匹配就搞定了啊,O(NM)建图没问题(另外,2014年那时候还没有匈牙利算法吗?为什么好多人直接写原创 2018-01-02 20:47:35 · 382 阅读 · 2 评论 -
Jzoj3170 挑选玩具
ABC找到N个箱子,箱子里装着一些玩具,一共有M种玩具,编号从1到M,同一种玩具可能出现在多个箱子里。ABC决定从中选择一些箱子,把这些箱子中的玩具聚集到一起,必须保证每种玩具至少出现一次。问ABC一共有多少种选择方案 (1第三次看到这个题了,前两次都忘了怎么做了。。。好的第一眼看上去可以dp做,结果发现只能过50%数据矩阵明显不可做,让后开始考虑数学方法考虑容斥原理,原创 2018-01-03 19:32:05 · 598 阅读 · 0 评论 -
Jzoj3625 旅行(travel)
非常好的树剖模板题了,直接C颗线段树上去就好了,动态开点一次写对~#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#include#define N 100010#define mid (l+r>>1)using namespace std;struct edge{ int v,nt;原创 2017-12-13 20:29:24 · 399 阅读 · 0 评论 -
Jzoj3020 最多的约数
WZK是个数学狂热爱好者。最近他又想出了一道题目来考大家。题目很简单,给定一个正整数n,对于所有不超过n的正整数,找到包含约数最多的一个数。如果有多个这样的数,那么回答最小的那个。直接dfs即可,注意两个地方要优化:1.按照素数表的顺序递增枚举 2.每个数的幂次递减,按照贪心原则就可以知道#include#define L long longint w[500000],t;boo原创 2017-12-21 17:16:05 · 441 阅读 · 0 评论