
杂题
HOWARLI
自己选择的路,就算跪着也要走完!
展开
-
【JZOJ 5887】【NOIP2018模拟9.27】作业
Description小L在完成他的集合论作业时遇到了这样一题:一颗n个节点的树,定义F(u,d)为到u距离不超过d的点组成的集合,求不同的F(u,d)的数量。Solution先抛出结论:Ans=∑min(fx+2,gx)Ans=\sum min(f_x+2,g_x)Ans=∑min(fx+2,gx)fxf_xfx表示当然点子树中,距离最远的点的距离(经过边数)gxg_xgx表示...原创 2018-09-28 22:07:10 · 674 阅读 · 1 评论 -
【JZOJ 5431】【NOIP2017提高A组集训10.28】序列操作
Description一开始有n个非负整数hi,接下来会进行m次操作,第i次操作给出一个数c[i],要求你选出c[i]个大于零的数并将它们减去1。 问最多可以进行多少轮操作后无法操作(即没有c[i]个大于零的数)Solution暴力显然,就是每次找出前c[i]大的那些数,把他们都-1 (S), 那么这个就用Splay来维护即可,但显然,不用Splay,直接用一棵线段树,不过在处理前段相同的数的时原创 2017-10-29 21:14:31 · 577 阅读 · 0 评论 -
【JZOJ 5428】【NOIP2017提高A组集训10.27】查询
Description给出一个长度为n的序列a[] 给出q组询问,每组询问形如Solution其实打一个不要太暴力的暴力即可, 暴力的暴力是一位一位的跳,把它改成跳到下一个相同的即可, 一样的询问用哈希判断啦,复杂度:O(n2)O(n^2)Code//所以你们跑得都比我快的原因是你们不用MAP咯~#include <cstdio>#include <algorithm>#include <原创 2017-10-27 22:11:36 · 500 阅读 · 0 评论 -
【JZOJ 5249】【NOIP2017提高A组模拟8.10】文本编辑器
DescriptionSolution这道题用Splay是一道版子题, 但很遗憾,只有90分, 那O(n)怎么做呢?我们发现,对于全局的数,可以用2个栈,1个队列表示: 设两个光标位置为l,r, 两个栈分别表示l前面的数、r后面的数,队列表示l~r中间的数, 那么对于简单的移动操作,直接做即可, 对于翻转,我们发现,直接打上标记即可,在光标移动的时候判断一下即可, 当然还有特殊情况:当原创 2017-08-10 17:24:58 · 450 阅读 · 0 评论 -
【JZOJ 5284】【清华集训2017模拟】超级翻转
DescriptionSolution先枚举一个终点,跑出起点到终点的任意一条简单路径, 我们发现,只要我们在这条路径上的一个位置绕一个圈,这条路径其实就改变了, (比如:原来是(2,2)->(2,3),绕一圈是(2,2)->(2,3)->(1,3)->(1,2)->(2,2)->(2,3)) 因为经过两次的边就等于没走嘛,所以上面这个例子相当于把原路径的这个位置搞凸起来, 又因为题目只要可原创 2017-08-16 23:11:16 · 530 阅读 · 0 评论 -
【JZOJ 5241】【GDOI2018模拟8.8】苹果和雪梨
Description作为新开的水果连锁店店员,你需要把总部发给你的苹果和雪梨分组出售,从而获得最 大利润。 总部发给你的水果包括: n 个苹果,质量分别为a1,a2…an n 个雪梨,质量分别为b1,b2…bn。 你卖的是盒装水果,一盒水果包括一个苹果和一个雪梨,苹果的质量乘上雪梨的质量就 是这盒水果的价钱。把苹果雪梨配对分成总共n 盒水果后,你要把价格最高的一盒返还给 水果店总部,原创 2017-08-09 11:25:07 · 1031 阅读 · 0 评论 -
【JZOJ 5205】【GDOI2018模拟7.6】仰望星空
Description在平面上有一堆点,选一个点,以R为半径画圆,在圆内(上)的叫一类点,圆外的为二类点, 每次把一个一类点和一个二类点相连,必须保证满足以下条件: 1. 它两间距离小于等于d; 2. 设要相连的两点,二类点为A,一类点为x,其他的一类点,如果它与A的距离小于等于d,则把它加入集合S,再把S中的点两两相连,这些连线与A、x间的连线不能相交。求最大的连线数,且输出方案。Solut原创 2017-07-06 22:41:25 · 487 阅读 · 0 评论 -
【JZOJ 3864】【JSOI2014】歌剧表演
DescriptionSolution建立一堆集合,表示在同一集合中的点不能分辨出对方,显然,初始时全部数在同一集合中, 每次就把输入的数从原来的集合中独立出来,(当然,原来在同一集合中独立出来后依旧要在一个集合中), 每次分出来的时候记录一下时间,最后看一下有那些点是独立在一个集合中的,复杂度:O(∑k)O(\sum k)Code#include <cstdio>#include <cstd原创 2017-01-17 22:28:40 · 566 阅读 · 0 评论 -
【JZOJ 4939】平均值
DescriptionSolution首先了,除才逆元的情况下显然是可以合并的, 所以,当一个区间的mexmex值没有变化时,就可以吧mex值相同的r−l+1r-l+1一起结算, 设nxinx_i表示下一个与aia_i相同的数的位置,mximx_i表示mex(l,i)mex(l,i),l为枚举的左端点, 我们先枚举一个l为左端点, 那么现在,我需要吧l往右移一位,那么会对ll~(nxl−1)原创 2017-01-13 08:10:01 · 942 阅读 · 0 评论 -
【51NOD 1737】配对
Description给出一棵n个点的树,将这n个点两两配对,求所有可行的方案中配对两点间的距离的总和最大为多少。Solution贪心的想,有使距离总和最大,每条边乘上的系数就要尽量的大, 设fxf_x表示点x的儿子个数, 那每一条边能乘上的最大的系数,就是:min(n−fx,fx)\min(n-f_x,f_x)复杂度:O(n)O(n)Code#include <iostream>#inclu原创 2017-01-06 19:06:08 · 660 阅读 · 0 评论 -
【JZOJ 5432】【NOIP2017提高A组集训10.28】三元组
Description有X+Y+Z个三元组(x[i],y[i],z[i]),请你从每个三元组中挑数,并满足以下条件: 1、每个三元组中可以且仅可以选择一个数(即x[i],y[i],z[i]中的一个) 2、选择x[i]的三元组个数恰好为X 3、选择y[i]的三元组个数恰好为Y 4、选择z[i]的三元组个数恰好为Z问选出的数的和最大是多少 问选出的数的和最大是多少Solution1考虑可撤销贪原创 2017-10-29 21:49:44 · 507 阅读 · 0 评论 -
【JZOJ 5439】【NOIP2017提高A组集训10.31】Calculate
DescriptionSolution发现a的访问很小,考虑从这入手, 把所有的数按a分成1000组, 对于每一组(设a全为x),首先,T每增加x,组里的每个数一定都会贡献+1, 但显然,有可能不用增加x那么多,有些数就已经有贡献了,如:a=5,b=1a=5,b=1,当T=1的时候,它的贡献就从-1变成0 了, 发现这些数均是bmodb≤Tmodbb\mod b \leq T\mod b,原创 2017-10-31 15:30:34 · 379 阅读 · 0 评论 -
【JZOJ 5414】【NOIP2017提高A组集训10.22】幸运值
Description校庆志愿者小Z在休息时间和同学们玩卡牌游戏。一共有n张卡牌,每张卡牌上有一个数Ai,每次可以从中选出k张卡牌。一种选取方案的幸运值为这k张卡牌上数的异或和。小Z想知道所有选取方案的幸运值之和除以998244353的余数。Solution这题先拆位, 对于每一位,只有当选了单数个1时才不为0, 那就统计一下总共有多少个1,枚举选多少个,再用组合数即可, 注意组合数爆掉的情况原创 2017-10-23 22:27:39 · 621 阅读 · 0 评论 -
【JZOJ 5557】写诗
Description给出一个长度为n的排列aaa,求是否存在一个三元组(i,j,k)满足:i<j<ki<j<kiai<aj<akai<aj<aka_iaj<ai<akaj<ai<aka_jax<aiax<aia_x< a_i时,如果ai−ax)≤min(ai,n−ai)ai−ax)≤min(ai,n−a原创 2018-03-06 16:47:29 · 676 阅读 · 0 评论 -
【AtCoder】【ARC080F】Prime Flip
Description有无限多的硬币排成一排,其中有一些位置的的硬币是反面的,其他的都是正面的, 现在你每次可以翻转一个区间的所有硬币,要求区间的长度必须为奇质数, 求最少操作次数,Solution先把原序列差分,每次就只会更改两个点, 分以下的几种情况讨论: 1. 区间长度为奇质数,代价为1; 2. 区间长度为偶数,代价为2(2:5-3, 4:7-3,大于6的用哥德巴赫...原创 2018-03-11 22:33:36 · 449 阅读 · 0 评论 -
【AtCoder】【AGC009E】Eternal Average
Description有n个0,m个1,每次你从这里面取出K个数,取平均值后再把平均值放回去,求最后的答案有多少种取值。 保证(n+m-1)|kSolution把最后的答案放在K进制下考虑, 如果一个1在第x层,对答案的贡献就是在K进制下的第-x位+1, 那我们可以考虑每次把K进制数的一位+1,操作m次如果全部为1,答案显然为1, 也就是说,如果随便操作m次,最后出来的K进...原创 2018-03-01 15:36:31 · 683 阅读 · 0 评论 -
【JZOJ 5452】【NOIP2017提高A组冲刺11.5】轰炸
Description战狂也在玩《魔方王国》。他只会征兵而不会建城市,因此他决定对小奇的城市进行轰炸。 小奇有n 座城市,城市之间建立了m 条有向的地下通道。战狂会发起若干轮轰炸,每轮可以轰炸任意多个城市。 每座城市里都有战狂部署的间谍,在城市遭遇轰炸时,它们会通过地下通道撤离至其它城市。非常不幸的是,在地道里无法得知其它城市是否被轰炸,如果存在两个不同的城市i,j,它们在同一轮被轰炸,并且可以原创 2017-11-05 21:50:47 · 764 阅读 · 0 评论 -
【JZOJ 5449】【NOIP2017提高A组冲刺11.4】Pacifist
Descriptionpapyrus 喜欢谜题… 来解一道如何? 在你面前有一个被加密了的数组,其原数组是一个等差序列,你面前的则是将原数组中的所有数字都对m 取模再打乱后而得到的新数组 papyrus 给你出的谜题就是还原出原等差序列 保证数据有解,而且因为papyrus 喜欢质数,所以他给你出的谜题中的m 一定是质数Solution显然,对于等差系列的话,对于其中的一个数x,一般都会有x−原创 2017-11-05 21:45:36 · 550 阅读 · 0 评论 -
【JZOJ 5421】【NOIP2017提高A组集训10.25】嘟嘟噜
Description由于众所周知的原因, 冈部一直欠真由理一串香蕉. 为了封上真由理的嘴, 冈部承诺只要真由理回答出这个问题, 就给她买一车的香蕉: 一开始有n 个人围成一个圈, 从1 开始顺时针报数, 报出m 的人被机关处决. 然后下一个人再从1 开始报数, 直到只剩下一个人. 红莉栖: “这不就是约瑟夫问题吗…” 伦太郎: “助手你给我闭嘴!” 真由理虽然已经晕头转向了, 但听到有一原创 2017-10-25 16:25:33 · 591 阅读 · 0 评论 -
【51NOD 1551】集合交易
Description市场中有n个集合在卖。我们想买到满足以下要求的一些集合,所买到集合的个数要等于所有买到的集合合并后的元素的个数。 每个集合有相应的价格,要使买到的集合花费最小。 这里我们的集合有一个特点:对于任意整数k(k>0),k个集合的并集中,元素的个数不会小于k个。 现在让你去市场里买一些满足以上条件集合,可以一个都不买。Solution题目奇怪的条件就是保证了,对于每个集合,有一原创 2017-11-01 22:18:23 · 479 阅读 · 0 评论 -
【JZOJ 5445】【NOIP2017提高A组冲刺11.2】失格
Description胆小鬼连幸福都会害怕,碰到棉花都会受伤,有时还被幸福所伤。 ——太宰治《人间失格》回顾我的一生,一共有n个事件,每一个事件有一个幸福值p_i。 我想用n-1条线把所有的事件连起来,变成一个连通块。一条连接了事件x和事件y的线会产生min(p_x mod p_y,p_y mod p_x)的喜悦值。 日日重复同样的事,遵循着与昨日相同的惯例,若能避开猛烈的狂喜,自然也不会有悲原创 2017-11-02 15:34:27 · 416 阅读 · 0 评论 -
【JZOJ 5419】【NOIP2017提高A组集训10.24】筹备计划
Description校庆筹备组的老师们正在寻找合适的地方来举办校庆庆典。 学生们的位置和可以举办庆典的位置在x轴的正半轴取值在[1,n]的整数位置上。 老师们选择的地点是会根据参加典礼的学生位置来决定的,具体来说:定义一个位置的距离和为该位置到所有参加学生的距离之和。如果一个位置的距离和最小,且它比所有和它距离和相等的位置的位置更靠左,则老师们会选择这个位置。原创 2017-10-24 16:39:22 · 480 阅读 · 0 评论 -
【JZOJ 4932】【NOIP2017提高组模拟12.24】B
Description现在你有N个数,分别为A1,A2,…,AN,现在有M组询问需要你回答。每个询问将会给你一个L和R(L①能够在原来的N个数中选出不重复(下标不重复)的K个数,使得这K个数的和在区间[L,R]内。 ②能够在原来的N个数中选出不重复(下标不重复)的K个数,使得这K个数的和不在区间[L,R]内。Solution分两种情况来讨论: 一:符合①②,并且有k个数的和小原创 2016-12-26 20:22:39 · 579 阅读 · 0 评论 -
【JZOJ 4922】环
Description小A有一个环,环上有n个正整数。他有特殊的能力,能将环切成k段,每段包含一个或者多个数字。对于一个切分方案,小A将以如下方式计算优美程度: 首先对于每一段,求出他们的数字和。然后对于每段的和,求出他们的最大公约数,即为优美程度。 他想通过合理地使用他的特殊能力,使得切分方案的优美程度最大。Solution设:sum=∑aisum=\sum a_i 很显然,最后的每个答案一原创 2016-12-21 20:29:58 · 942 阅读 · 0 评论 -
【JZOJ 3051】单元格
Description在一个R行C列的表格里,我们要选出3个不同的单元格。但要满足如下的两个条件:(1)选中的任意两个单元格都不在同一行。(2)选中的任意两个单元格都不在同一列。假设我们选中的单元格分别是:A,B,C,那么我们定义这种选择的“费用”= f[A][B] + f[B][C] + f[C][A]。 其中f[A][B]是指单元格A到单元格B的距离,即两个单元格所在行编号的差的绝对值 + 两个原创 2016-09-05 19:39:09 · 490 阅读 · 0 评论 -
【JZOJ 4686】通讯
Description“这一切都是命运石之门的选择。” 试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短信,并由此得知了伦太郎制作出了电话微波炉(仮)。 为了掌握时间机器的技术,SERN总部必须尽快将这个消息通过地下秘密通讯网络,传达到所有分部。 SERN共有N个部门(总部编号为0),通讯网络有M条单向通讯线路,每条线路有一个固定的通讯花费Ci。 为了保密,消息的传递只能原创 2016-08-13 17:02:44 · 634 阅读 · 0 评论 -
【JZOJ 4772】运输妹子
Description小轩轩是一位非同一般的的大农(lao)场(si)主(ji),他有一大片非同一般的农田,并且坐落在一条公路旁(可以认为是数轴),在他的农田里种的东西也非同一般——不是什么水稻小麦,而是妹子。 在小轩轩的细心培育下,他的大片农田都要结出妹子啦!但是他的农田分布实在是太广阔了,他担心自己的妹子会令路过的人想入非非,于是他想要把所有农田上的妹子都集中到一个仓库里面,贮存起来。可是妹子原创 2016-09-10 14:36:23 · 457 阅读 · 0 评论 -
【JZOJ 3082】骰子游戏
Description现在先介绍一下这个闻名遐迩的骰子游戏吧。 然后我们介绍这个游戏的地图:一个R*C的网格图。 骰子一开始的状态如上图所示(即上面为 1,下面为 6,左面为 4,右面为 3,前面为 2,后面为 5),且位置在左上角。 然后重头戏来了,你需要的操作就是滚动骰子。滚动骰子当然是有轨迹的。你需要从左到右滚动到右端,然后向下滚动一格然后在向左滚动到左端,再向下一格,如此反复…直到最下原创 2016-08-18 14:53:29 · 824 阅读 · 0 评论 -
【JZOJ 4709】Matrix
DescriptionSolution每个点往下走*b,往右走*a,走到终点的方案数几对答案的贡献, 所以对于每个已知的点,直接计算对答案的影响即可 复杂度:O(n)原创 2016-08-17 19:40:10 · 561 阅读 · 0 评论 -
【Codeforces 583C】【JZOJ 4699】Password
Description 抽象题意:给出一个打乱的两两gcd矩阵,求还原原数组。 (广告)背景来自番剧《从零开始的异世界生活》Solution很显然,这个矩阵是对称的,所有如果有一个数的出现次数是奇数,它就一定在原数组中出现,(这个可以水很多分) 矩阵中最大的数一定在原数组中出现,第二大的也一定, 现在判断第三大的是否也是,那么就要消除前两个队当前的影响,也就是把前俩的gcd给删掉,原创 2016-08-16 16:30:51 · 864 阅读 · 0 评论 -
【JZOJ 4693】疯狂的火神
Description火神为了检验zone的力量,他决定单挑n个人。 由于火神训练时间有限,最多只有t分钟,所以他可以选择一部分人来单挑,由于有丽子的帮助,他得到了每个人特定的价值,每个人的价值由一个三元组(a,b,c)组成,表示如果火神在第x分钟单挑这个人(x指单挑完这个人的时间),他就会得到a-b*x的经验值,并且他需要c分钟来打倒这个人。 现在火神想知道,他最多可以得到多少经验值,由于火神原创 2016-08-15 22:48:57 · 796 阅读 · 0 评论 -
【BZOJ 2144】【JZOJ 4701】Throw
Description 抽象题意:有3个点在数轴上移动,每次移动可以把a点绕b转到a’,并且符合a~a’中无它点。Solution把3个点的位置用一个3元组来表示,(x,y,z) ,满足x<y<zx<y<z, (x,y,z)每轮的旋转有以下几种情况: 设l=y−x,r−z−yl=y-x,r-z-y 从里到外: (x,y,z)~(x−l,y−l,z)(x-l, y-l, z), (x,原创 2016-08-15 22:31:14 · 918 阅读 · 0 评论 -
【JZOJ 4629】修路
Description 抽象题意:每条边有代价,每个点被连了以后有贡献,求最小生成树的最小的代价。Solution每个点被连了以后有贡献,也就是连他们的边代价会减少, 把边的代价减两个点的aia_i以后做一遍最小生成树即可。 复杂度:O(nlog(n))Code原创 2016-07-15 14:41:33 · 635 阅读 · 0 评论 -
【JZOJ 3053】旅行
Description给定一个n行m列的字符矩阵,’.’代表空地,’X’代表障碍。移动的规则是:每秒钟以上下左右四个方向之一移动一格,不能进入障碍。计算:在空地中随机选择起点和终点(可以重合,此时最短耗时为0),从起点移动到终点最短耗时的平均值。 每一行每一列至多有1个障碍,并且障碍不在对角线方向相邻。以下矩阵是不合法的: Solution先计算出两两点的曼哈顿距离,这个可以把x,y原创 2016-09-05 20:28:26 · 1107 阅读 · 0 评论 -
【JZOJ 4694】【HDU 5283】火神的鱼
Description火神最爱的就是吃鱼了,所以某一天他来到了一个池塘边捕鱼。池塘可以看成一个二维的平面,而他的渔网可以看成一个与坐标轴平行的矩形。 池塘里的鱼不停地在水中游动,可以看成一些点。有的时候会有鱼游进渔网,有的时候也会有鱼游出渔网。所以火神不知道什么时候收网才可以抓住最多的鱼,现在他寻求你的帮助。 他对池塘里的每条鱼都给予了一个标号,分别从1到n标号,n表示池塘里鱼的总数。鱼的游动可原创 2016-08-15 14:34:58 · 1172 阅读 · 0 评论 -
【JZOJ 4782】Math
Solution因为题目只要求判断奇偶性,所以奇为1,偶为0; 如果一个数的因子数为奇,那么那个数一定是完全平方数,也就是有n√\sqrt n个, 又因为它每次都会乘上一个i,i分解以后如果一个质数的个数是偶数则无影响,如果是奇数,那么如果要组成新的完全平方数就必须要把它配成偶数的,也就是nt−−√\sqrt{n \over t}个,t是质数个数为奇的质数的乘积;复杂度:O原创 2016-09-20 12:54:35 · 463 阅读 · 0 评论 -
【JZOJ 4912】幻想
DescriptionSolution来考虑一下把每个位置的值都求出来, 想一下位置x的数可以转移到哪里去,当k=2时: 1. 在原地不动; 2. 转移到x+2kx+2^k这个位置,并值+1;咦,这个怎么这么像二进制,位置i的数值不就是i在二进制下1的个数mod 2吗, 发现这个性质在k为其他值使依旧适用, 所以,题目就变成了求L~R之间的每个数在k进制下位数之和mod k的值加上哈希的值原创 2016-12-05 19:26:30 · 487 阅读 · 0 评论 -
高精度数连续加n次1所产生的进位次数总和
有时候遇上一些神奇的题目,要求要把一个高精度数连续加n次1,这个时候复杂度就比较的难算,结论一个高精度数连续加n次1,总的进位次数一定不超过n次; 加上每次+1的复杂度, 总的复杂度不超过O(2n)O(2n)证明我们假设这个高精度数是2进制的,并且原数为0, 那么,第一位每2次产生一次进位, 第i位每2i2^i次产生一次进位, 所以,总的进位次数为:∑i=1∞n2i\sum_{i=1}^{原创 2016-12-05 19:51:48 · 832 阅读 · 0 评论 -
【JZOJ 4915】最长不下降子序列
DescriptionSolution看它K<=150K<=150,明摆着就是让你求循环节, 于是把循环节搞出来(不一定从第一个位置开始),复制平方遍,再加上余下的,搞一遍普通的LIS即可,复杂度:O(3∗1502log(1502))O(3*150^2\log(150^2))Code#include <cstdio>#include <cstdlib>#include <algorithm>原创 2016-12-14 20:48:48 · 785 阅读 · 0 评论 -
【51NOD 1622】【51NOD 算法马拉松19】集合对
Description定义集合xor操作 A xor B=A∪B-A∩B。 问有多少对(P,Q)满足 P∈A Q∈B 使得 (P xor A)xor(Q xor B)=A xor B其中P Q都是集合。 答案对1e9+7取模。例如:A ={1} ,B={1,2},A xor B = {2},枚举所有情况P Q有2种。Solution我们把两个集合想象成0,1的二进制状态, 首先这两个数值不存在原创 2016-11-02 20:16:15 · 1018 阅读 · 0 评论