暴搜
Facico
生命是闪耀的此刻,不是过程,就像芳香不需要道路一样。
展开
-
【2010集训队出题】小Z的袜子
Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z原创 2016-05-07 22:44:22 · 1670 阅读 · 2 评论 -
JZOJ 4936【NOIP2017GDKOI模拟1.12】c
DescriptionSolution这题有一个很重要的限制,就是询问串的总长度不超过200000。 那么根号算法就可以了。 一共发现不会超过700个不同的,那么前300个预处理出f[i][j]的数组表示串的长度为i,1的个数为j的方案数。 然后询问串的长度超过300的就暴搜就可以了。Code#include<iostream>#include<stdio.h>#include<strin原创 2017-01-12 18:47:31 · 773 阅读 · 0 评论 -
JZOJ 4935【NOIP2017GDKOI模拟1.12】b
DescriptionSolution这就是一道构造题。 原本有个很显然的算法,就是把n分解质因数,然后每个儿子放质因子个。 但是当这些质因数很大的时候,这个就不行了。 所以有一种构造法。 当它是2的倍数的时候,就放一个2的儿子,否则就减1。Code#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>原创 2017-01-12 18:42:59 · 480 阅读 · 0 评论 -
JZOJ 3839【NOIP2014模拟9.14】Baby Step
Description从前有一个Baby。 从前还有一个网格图。 Baby 喜欢爆炸。 Baby 偶尔会炸掉网格图中的一条边(u, v)。之后他会尝试从u 走到v。 如果他成功地从u 走到v,他会很高兴;否则他会找人打架。 从第二次爆炸开始,根据Baby 此时心情的不同,Baby 会炸掉不同的边。 你被要求编写一个程序,对于每次爆炸,给出此时Baby 是否还能从u 到v。Solution原创 2017-01-14 21:41:48 · 997 阅读 · 0 评论 -
【NOIP2016提高A组集训第4场11.1】平衡的子集
Description夏令营有N个人,每个人的力气为M(i)。请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法?Solution看到范围只有20,我已开始就打暴力,我以为可以快速判断是否合法,但是失败了。 正解超级机智。 中途相遇法:首先把这20个数拆成两个数集,然后每个点有三个值-1,0,1,那么很明显就是-1就把这个数放到原创 2016-11-02 17:31:47 · 774 阅读 · 0 评论 -
【NOIP2016提高组复赛】蚯蚓
DescriptionSolution这题打暴力,用堆来做,理论上是可以拿80分,所以比赛还是打暴力好。 但是,正解又短又机智。 我们假设x1>x2x1>x2。 那么x1肯定会在x2之前就被剪断。 设x1x1被剪成p1和q1,p1=⌊px1⌋,q1=x1−⌊px1⌋p1和q1,p1=\lfloor px1\rfloor,q1=x1-\lfloor px1\rfloor 设x2x2被剪成p2原创 2016-11-29 17:29:37 · 4670 阅读 · 0 评论 -
【NOIP2016提高组复赛官】组合数问题
DescriptionSolution这道题很容易。 首先肯定要预处理,然后用矩阵前缀和。 可以用杨辉三角或者是分解质因数。 然后就没有了。Code#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=b;i++原创 2016-11-29 17:09:38 · 2308 阅读 · 0 评论 -
【NOIP2016提高组复赛】玩具谜题
DescriptionSolution这就是一道模拟题吗。 向右就加,然后mod一下。向左就减,然后mod一下。Code#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define fod(i,原创 2016-11-28 22:44:52 · 1551 阅读 · 0 评论 -
【51Nod 1109】01组成的N的倍数
Description给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且M的10进制表示只包含0或1。求最小的M。 例如:N = 4,M = 100。Solution开始用深搜做了一下,结果不行,很显然不行,打开话题看了一下,改成用广搜做了一下。可以了!!Code#include<iostream>#include<cstdio>#include<cstring>#includ原创 2016-10-30 07:46:36 · 1650 阅读 · 0 评论 -
【NOIP2016提高A组模拟】配对游戏
Description流行的跳棋游戏是在一个有m*n个方格的长方形棋盘上玩的。棋盘起初全部被动物或障碍物占满了。在一个方格中,‘X’表示一个障碍物,一个‘0’~‘9’的个位数字表示一个不同种类的动物,相同的个位数字表示相同种类的动物。一对动物只有当它们属于同一种类时才可以被消去。消去之后,他们所占的方格就成为空方格,直到游戏结束。要消去一对动物的前提条件是:这对候选动物所在的方格必须相邻,或它们之间原创 2016-10-29 16:05:23 · 819 阅读 · 0 评论 -
【NOIP2016提高A组模拟】完美标号
Description给定M个二元组(A_i, B_i),求X_1, …, X_N满足:对于任意(A_i, B_i),有|X_{A_i} - X_{B_i}| = 1成立。Solution上面题设的转换形式就是二元组的ai和bi颜色不相同。 那么直接0、1染色之类的。 直接一个dfs就搞定了。Code#include<iostream>#include<cstdio>#include<cst原创 2016-10-29 15:55:05 · 527 阅读 · 0 评论 -
【51Nod 1255】字典序最小的子序列
Description给出一个由a-z组成的字符串S,求他的一个子序列,满足如下条件:1、包含字符串中所有出现过的字符各1个。 2、是所有满足条件1的串中,字典序最小的。例如:babbdcc,出现过的字符为:abcd,而包含abcd的所有子序列中,字典序最小的为abdc。Solution一开始看到这题就有一个思路:如果现在找出来的答案末尾是x,找到了一个字符y,那么如果y比x要小,y后面还有x存在原创 2016-11-09 22:42:31 · 2485 阅读 · 0 评论 -
【NOIP模拟】成绩调研
DescriptionSolution这题明明是道水题,但是却不小心打错了。 做法大致是每次搜到一个i,对于每个等级k,都找一个[x,y]满足[x~y,i]是合法的,然后用线段树求一下区间的交集就好了。 每次多找到一个a[i]是,左右区间本来都要向右移动的(如果已经有的话),但是我的右区间移动了,左区间却没有移动,而且我并没有考虑l=0的情况,以后要注意点啊,思维一定要谨慎。Code#inclu原创 2016-09-29 17:32:11 · 522 阅读 · 0 评论 -
【NOIP模拟】求导
DescriptionSolution看到这个简单的求导,哇!感觉好水啊!对于那些不会求导的人来说,那简直就是不可做。 然后下面尽然给了求导公式。 哎,不就是模拟吗…… 这个分类讨论,简直是烦死人!!!! 我原以为指数是从小到大的,然后不是,结果GG了。 我认为比较简单的处理方法就是,把所有的数字符号,先从字符串提取出来,然后再处理会比较方便。Code#include<iostream>原创 2016-09-29 17:25:53 · 475 阅读 · 0 评论 -
【GDOI2017模拟11.5】Market
DescriptionSolution这题一眼就是离线之后,用DP来做。 但是一开始我用单价和来做DP的键值,但是没有发现,单价的范围很大。所以应该以价值来做键值,然后存最小需要的单价和。求答案的时候二分就好了。Code#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>原创 2016-11-05 15:14:10 · 603 阅读 · 0 评论 -
【JSOI2014】歌剧表演
DescriptionSolution本来是一道很简单的题目,没有仔细去想。 如果可以把一个人给认出来,那么就是结合了前面好多次,最后剩下他一个,就把他认出来了。 如果当前表演的是这一坨人,那么考虑给他们染色,记录num表示上一次染得最大的颜色。 染得这一坨人中,在上一轮染色之后,相同颜色的还是一个颜色(说明还不能分辨这两个人),不同颜色的不断的++num,把两个颜色重新区分(因为这一坨人可以原创 2017-01-18 07:31:24 · 912 阅读 · 0 评论 -
【NOI2017模拟3.30】轮回(根号算法,暴力)
Description掌管着世界的暗流的是一个叫做Samjia的人。 他看到所有人的生死,他看见所有人一世又一世的轮回,而他却从未把握过自己的命。 在无法估计的命中,他看见那些轮回,他很好奇,这一切的一切,都是如何开始如何结束,他想,就算是他也会堕入这样的轮回中的吧。 于是他开始数轮回,他看到的是一个有n个点m条边的无向图(边是带标号的),一个轮回是一个由四条边组成的环,环中不能有重复的边,除原创 2017-03-31 09:46:06 · 978 阅读 · 0 评论 -
【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问选出的数的和最大是多少 问选出的数的和最大是多少Solution在X=0的时候原创 2017-10-31 08:09:00 · 746 阅读 · 0 评论 -
【NOIP2017提高A组集训10.28】序列操作
Description一开始有n个非负整数hi,接下来会进行m次操作,第i次操作给出一个数c[i],要求你选出c[i]个大于零的数并将它们减去1。 问最多可以进行多少轮操作后无法操作(即没有c[i]个大于零的数)Solution这题数据范围出的很迷,log^2竟然都能过 很显然我们只用给前k大的数减一,然后我们考虑一段数减完之后相对顺序会怎么变,我们可以发现只有序列末尾相等的那一段会移到那一段的原创 2017-10-31 08:02:28 · 553 阅读 · 0 评论 -
【JZOJ5328】【NOIP2017提高组模拟】世界线(STL)
DescriptionSolution这题刚看的时候就知道是用bitset来做,但是比赛的时候并不知道要怎么打,所以就只用了set来打。 比赛之后学了一下bitset发现bitset其实就是帮你把二进制状压了一下。时间和空间都是除以32的。 然后拓扑排序一下,倒着把点的集合合并到前面去。 但是直接这样做bitset会爆空间,所以我们可以考虑每次只存[l,r]的点,这样就可以用时间来换空间。Co原创 2017-08-23 22:54:03 · 598 阅读 · 0 评论 -
【JZOJ5317】【清华集训模拟】func(辗转相除法、找规律)
DescriptionSolution这是一个可以找规律的题目,但是性质也是比较的好推。 我们可以观察相邻的两项i,i+1,f(i)、f(i+1)的值分别是对应着x、y,然后f(2*i)=x,f(2*i+1)=x+y,f(2*i+2)=y。 然后我们可以发现相邻的两个每次都*2,他们的值也是较小的加上较大的。 那么我们可以倒着推回来,每次值是较大的减较小的,然后判断是左边的较小还是右边的较小,原创 2017-08-23 22:48:00 · 489 阅读 · 0 评论 -
【JZOJ5343】【NOIP模拟】健美猫(模拟)
DescriptionSolution由于比较的蠢,比赛的时候没有想出来。 一开始的方向就搞错了,搞了个自以为是对的贪心,然后就一直往这个地方想,用的时间太多就弃疗了。 其实思想还是比较的简单的,首先把原序列的答案求一次,我们可以逆向考虑一下,不用把序列移动,把下标移动。 比如把每个下标向左移动一格,那么原本a[i]>i的值会减1,a[i]<=i的值会+1,还有下标从n到1的数会改变一下。原创 2017-09-04 22:26:03 · 967 阅读 · 0 评论 -
【JZOJ5260】【GDOI2018模拟8.12】区间第k小(分块)
DescriptionSolution首先这题离线的话是可以莫队套分块的,但是要求强制在线。那么我们只能考虑把莫队换成分块。 首先处理一个关于值域的块,然后求一个数组f[i,j,k]表示从下标第i块到第j块中满足在值域块是第k块,且这些数字出现次数小于等于w的有多少个,这个枚举两个端点,然后扫过去,用桶记录一下就好了。 然后再处理一个数组g[i,j]表示前i块中值为j的有多少个。 那么现在我们原创 2017-08-21 07:49:10 · 550 阅读 · 0 评论 -
【JZOJ5250】【GDOI2018模拟】质数(数论)
DescriptionSolution要求2f(i)2^{f(i)}可以考虑狄利克雷卷积一下,或者讨论一下其中的性质。 对于所有不同的质因子,然后再2的次幂一下,很明显可以知道是选与不选的问题。 那么要求2f(i)2^{f(i)}就相当于求∑j|i[gcd(j,i/j)==1]\sum_{j|i}[gcd(j,i/j)==1] 我们要求gcd为1的个数可以考虑容斥一下。 那么上式就转化成∑j原创 2017-08-20 22:56:46 · 390 阅读 · 0 评论 -
带修改的莫队算法学习小记
简介莫涛大神创造出的离线询问算法的带修改版。 算法基础:需要掌握莫队算法,会打暴搜(暴力)。 一个叫莫的双端队列。 只支持单点修改操作方法普通的不带修改的莫队算法要把每个询问带上两个关键字排序,现在待修改的莫队算法要带上三个关键字排序。初始操作fo(i,1,m) { scanf("%s%d%d",s,&k,&l); if (s[0]=='Q')a[++tot].原创 2016-07-10 09:15:21 · 5711 阅读 · 4 评论 -
【uva12345】Dynamic len
Description有n个数编号从0→n-1,两种操作: Q L R:询问编号为L→R-1的数中共有多少种不同的数 M X Y:将编号为X的数改为Y 共有m个操作Solution一开始满脸懵逼……后来才发现是待修改莫队。方法1树套树,很裸啊!码力要求大!方法2类似暴搜,用分块来做,速度快,细节有些多。方法3待修改的莫队算法,很裸,有些快,代码短。 我选了它。 不会的参见待修改的莫队算法学原创 2016-07-08 19:19:31 · 1102 阅读 · 0 评论 -
【NOI模拟】维护队列
Description 你小时候玩过弹珠吗? 小朋友A有一些弹珠,A喜欢把它们排成队列,从左到右编号为1到N。为了整个队列鲜艳美观,小朋友想知道某一段连续弹珠中,不同颜色的弹珠有多少。当然,A有时候会依据个人喜好,替换队列中某个弹珠的颜色。但是A还没有学过编程,且觉得头脑风暴太浪费脑力了,所以向你来寻求帮助。Solution待修改的莫队算法,裸体! 待修改的莫队算法 有道原题【uva123原创 2016-07-09 21:01:33 · 913 阅读 · 0 评论 -
【GDSOI2017】魔兽争霸 x
DescriptionSolution这道题转换一下模型其实就是有很多个带权向量,然后给你一个矩形,给每个向量加一个系数,使得长宽都不超过矩形且权值和最大。 很容易就可以证明出来只需要两个向量就可以了,如果有第三个有系数的,那么就说明这种情况的时候第三个更优,那么还不如直接用第三个替换掉一个。 那么我们现在知道了只用选两个,那么我们该怎么去做这道题? 首先肯定要n2n^2的去枚举,然后我们知道原创 2017-05-07 10:58:13 · 726 阅读 · 0 评论 -
【GDOI2017 day2】凡喵识图
DescriptionSolution这道题目十分的玄学,比赛时候就想到正解了(除了随机化的部分)。 暴力可以怎么做,可以先把数压成4位,然后每个位置存储与这个二进制相同的下标,然后暴力枚举。这样看起来就是n2n^2的 由于数据是随机的(比赛的时候又告诉我1/3构造),所以我们压四位的时候,随机化一下,不要按顺序,这样就可以过了。 如果我1/3构造,全部都出相同的,这个方法就GG了,不知道出题原创 2017-05-07 08:34:00 · 899 阅读 · 0 评论 -
【GDOI2017 day1】取石子游戏
Description题意简单一点:给出一棵树,让你求出每个节点的子树以外的mex(最小没出现过的自然数)Solution比赛的时候没有看懂,就没敢去打,其实思想很简单。 对于一个序列来说,包含一个x的区间答案肯定不是x。 那么我们把这个想法放到树上。 对于颜色x,我们提取出来,求出他们的lca(求lca是满足结合律的),假设这个lca为y,那么很显然的除了y这个子树,其他的子树都没有x这个颜原创 2017-05-07 08:21:27 · 734 阅读 · 0 评论 -
【NOI2017模拟4.5】机器人游戏【搜索,DP】
Description小A和小B在一个R行S列的棋盘上玩游戏,棋盘上的每一个棋格都有一个方向标记(上、下、左或右)。游戏按如下方式进行: 小A先将K个棋格涂上黑色(初始为白色),并且他不能涂黑最后一列的棋格;随后,小B在第一列的任意一个棋格上放一个小机器人;此时,小机器人将会不停地沿着他所在的棋格所指示的方向走到一个相邻的棋格,直到他到达最后一列的棋格,游戏结束。 游戏胜负规则如下: ●如果小原创 2017-04-06 17:17:34 · 951 阅读 · 0 评论 -
【NOIP2016提高A组集训第8场11.5】禅与园林艺术
Description上了大学之后,小W和小Z一起报了一门水课,在做作业时遇到了问题。 有一个长度为 n 的数列{ai},为一列树木的美观值。 现在有m 次询问,每次给出三个数l,r和P, 询问对于所有的l <= l’ <= r’ <= r (a[l’] + a[l’ + 1] + … + a[r’]) mod P的最小值。Solution这道题,和51Nod的一道叫N的倍数的题目是相同类原创 2016-11-05 14:19:54 · 783 阅读 · 0 评论 -
【NOIP2016提高A组集训第7场11.4】推冰块
DescriptionDpstr最近迷上了推冰块。冰地是一个n行m列的网格区域,第i行第j列的格子记为(i,j),也就是左上角为(1,1),右下角为(n,m)。每个格子可能是冰面、障碍物、减速带三者之一。其中,冰地外围(即第0行、第n+1行、第0列、第m+1列)的所有格子均有障碍物。除此之外,冰地内共有k个障碍物和减速带,其余格子为冰面。 初始时,有一个冰块位于(1,1)处。Dpstr每次可以选择原创 2016-11-04 20:57:58 · 9443 阅读 · 0 评论 -
【NOIP模拟】腐败
DescriptionSolution刚看到这种题,就想开始繁衍。。。。。。不对啊,这种东西怎么繁衍,并显示暴力加优化! 对每个数分解质因数,然后对每个因数开一个桶做,是不是很水。怎么处理空间问题可以动态开桶,但有一种更机智的方法。 因为如果有一个质数大于107−−−√\sqrt{10^7},那么这些质数在一个数分解质因数是最多只会出现一次,那么我们就有很多的质数不用刻意再取开一个桶了,直接用一原创 2016-07-19 20:05:17 · 801 阅读 · 0 评论 -
【JZOJ4586】Ned 的难题
DescriptionSolution其实这题是有一个有点暴力方法可以过的,而且速度还快,但是是针对题目贪心,速度当然比正解快。但是我们要为了学知识而做题,并不是为了做题而做题。 对于每个数分解质因数,因为是乘法,所以每个质数在区间中的贡献是xmin(y)x^{min(y)},所以我们用数组fl[i][j]和fr[i][j]来计算每个数的第j个质因数的向左向右贡献区间(保证这段区间的min(y)就原创 2016-07-08 18:59:35 · 592 阅读 · 0 评论 -
【NOIP模拟】大鱼海棠
Description椿是掌管海棠花的少女,她所在的世界不为人们所知,他们的天空就是人类的海底。生活在那个世界里的他们不是人,也不是鱼,而是其他人,掌管着人间的规律。 按照他们的习俗,在16岁那年,椿变为一条海豚到人间巡礼。在第六天,她被大海中的一张网困住,一个人类男孩因为救她而落入深海死去。为了报恩,她回去后私自一人去了如升楼找到灵婆(死去的好人的灵魂化为一条小鱼安放在那里)。她以自己一般的寿命原创 2016-07-18 09:08:56 · 1042 阅读 · 0 评论 -
【NOIP模拟】颜料大乱斗
DescriptionSolution开始看到前面的题目那么水,到这题时就开始胡思乱想了,待修改莫队?树套树?30棵线段树? 然后我打了30棵线段树,常数十分的大啊! 超时30分TAT。 然后旁边的人把30个颜色的值放到同一个节点上,然后就对了,????? 常数小而已嘛! 虽然两个方法的时间复杂度理论上是一样的。 其实就是每个节点存储30个颜色是否出现过,然后两个儿子向上合并就好了。Co原创 2016-07-18 08:58:17 · 834 阅读 · 0 评论 -
【NOIP模拟】立方体
DescriptionSolution刚看到这题,还以为是连边然后做spfa,然后答题后发现这样很麻烦。 然后在打暴搜的时候,发现在搜索的过程中状态数很少,然后暴搜的速度很快。 但是刚开始我用f[x][y]来记忆化到点(x,y)的最短距离,后来结果出来了只有40分,TAT。 才发现到达一个地方可能有多种不同的状态,所有还要多存几维,用f[x][y][k][l][t]表示到(x,y)这个点,前面原创 2016-07-15 19:06:20 · 961 阅读 · 0 评论 -
【JLOI2015】战争调度(war)
DescriptionSolution一开始看这题,毫无头绪…… 不过发现n十分的小,最多只有10,想一想暴搜加优化。 先试着打了打暴搜,从上往下枚举状态,然后搜索到子节点的时候,再统计答案,每个父节点的答案是两个子节点答案的和,dfs(x,y,z)表示当前搜到的点二进制状态为x,从根节点到底层打仗的状态为y,然后此时要打仗的人有z个。 然后这样十分的慢……启发式搜索看起原创 2016-07-04 10:02:11 · 791 阅读 · 0 评论 -
【APIO2016】亚瑟王之宫
DescriptionSolution暴力一开始看到这题:暴搜?剪枝?贪心?不知所措,但是想了一想,肯定是要预处理出每个骑士到每个点的最短路的。 然后打完第三题有来做这题,发现r和c很小,那么可以暴力出两个点对,然后分配骑士到两个点对去,使得答案最小。 DP是肯定可以做的。贪心现在搜到了点对i和j,假设所有的骑士都去i,每个骑士的贡献是d1[i],那么如果骑士要该去点j,那么答案就要加上d1[j原创 2016-07-14 08:23:42 · 610 阅读 · 0 评论