暴力
WerKeyTom_FTD
我是一只来自中山纪念中学高三的oier,请多多指教
展开
-
QYQ的图
题目大意有N个点M条边组成的无向图,求最小费用覆盖集(即每个点有点权,选择一些点使得点权最小,然后这些点组成图的覆盖集)。 N<=50,M<=500。深搜首先我们看到N如此小,而又没有头绪,便只能深搜。优化当然要先加上最小答案优化,即当前答案大于当前最小答案便退出。 然后我们知道,覆盖要求每条边至少有一个点被选上,因此若另外一点没被选上,与其相连的所有点需要强制选上。 那么,此题便完美解决。原创 2015-10-17 13:44:55 · 935 阅读 · 1 评论 -
[51nod月赛19B]最小集合
题目大意有这样一个集合,如果a和b在集合内,gcd(a,b)也在。 给出集合内n个已知元素,求集合内至少有多少个互不相同的数。瞎做我们可以枚举k是否在集合内,那么如果集合内存在两个数i和j满足k|(i,j),那么k是不是在集合内呢?因为这是k才可能在集合内。 用b[i]表示i的倍数出现在集合内的个数。 如果k的一个倍数与ib值相同,显然这个倍数会出现在集合内,但是k不会出现在集合内。#incl原创 2016-10-31 16:57:34 · 836 阅读 · 0 评论 -
I Like Matrix!
题目大意有一个n*m矩形,初始全零 有以下几种操作: 1、将一个位置取反(xor 1) 2、将一行取反 3、将一列取反 4、变成第k次操作后的状态操作树先来思考第四种操作,这看起来需要我们可持久化。 实际上,如果每个版本用一个节点表示,那么这形成了树的形状,每条树边代表一种1/2/3操作。 这种树就叫操作树。我们发现,本题同一个操作做两次等同于没做,因此可以很方便的撤销。 我们可以建原创 2016-11-01 14:45:03 · 854 阅读 · 0 评论 -
人生的意义
题目描述NiroBC在温暖的YYHS衣来伸手饭来张口,过着颓废的生活。 终于有一天,她意识到,真正有意义的人生不应该在如此空虚的时光中度过,于是她下定决心,来到了百废待兴的新世界,踏上了寻找人生的意义的旅途。 这个百废待兴的新世界啊真是美妙,绽放着令人惊喜的异彩,NiroBC欢笑着投入了新世界的怀抱,随机的降落在这个新世界中。 这个新世界由N个城市组成(编号原创 2016-11-16 20:26:00 · 784 阅读 · 0 评论 -
[UOJ#228]基础数据结构练习题
题目大意维护一个序列,支持三种操作 1、区间加法 2、区间开方下取整 3、查询区间和线段树有一道bzoj上的名为上帝造题的七分钟的题目没有加法操作。 有了我们怎么做呢? 假设一个区间所有数都相同,显然对它开方就是一个赋值标记嘛。 存在不同呢? 对于两个数a和b设a大于b。 原本它们的差是a-b 开方后差变成了a√−b√=a−ba√+b√\sqrt a-\sqrt b=\frac{a原创 2017-02-22 15:11:09 · 622 阅读 · 0 评论 -
[bzoj3038]上帝造题的七分钟2
题目描述XLk觉得《上帝造题的七分钟》不太过瘾,于是有了第二部。 “第一分钟,X说,要有数列,于是便给定了一个正整数数列。 第二分钟,L说,要能修改,于是便有了对一段数中每个数都开平方(下取整)的操作。 第三分钟,k说,要能查询,于是便有了求一段数的和的操作。 第四分钟,彩虹喵说,要是noip难度,于是便有了数据范围。 第五分钟,诗人说,要有韵律,于是便有了时间限制和内存限制。 第六分钟原创 2017-01-19 22:43:18 · 415 阅读 · 0 评论 -
[bzoj4722]由乃
题目描述由于一周目的由乃穿越到了三周目,并带来了巨大的影响,改变了三周目所有未来日记所有者的命运所以三周目的 神Deus准备不利用未来日记来决定把神的位置交给谁Deus特别崇拜某知名社会主义国家领导人,因为他的寿命比神 还长,所以他想钦定下一个卡密,而不通过选举他决定钦定三周目的由乃成为卡密,去和一周目的雪辉重逢(终于 做了一件好事了)但是,既然是钦定,那么肯定还是要做做样子的,以防某些来自香原创 2017-01-14 22:04:16 · 1158 阅读 · 1 评论 -
[51nod 1056]最长等差数列V2
题目描述http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1056随机大法方法很暴力。 随机一个中间项,然后枚举公差,之后左右拓展,能否拓展用hash判。 随机个一定次数即可。 也可以枚举首项,那么可以加玄学优化就是可行性优化。我比较水枚举了所有首项。#include<cstdio>#include<algorithm原创 2017-01-12 20:39:42 · 643 阅读 · 2 评论 -
[bzoj4269]再见xor
题目大意n个数任取进行异或,求最大值与严格次大值线性基第一次写线性基www 弄出线性基后可以得到最大值。 接下来我们从小到大枚举次大值在哪一个位与最大值不一样,比如在i位,那么比i位高的要与最大值进行一样的选择,而第i位与最大值进行不一样的选择,比i位低的需要最大化,最后判定如果是严格比最大值小就可以退出,这一定是严格次大值。#include<cstdio>#include<algorithm原创 2017-02-16 16:32:57 · 698 阅读 · 0 评论 -
最长不下降子序列
题目大意a1=t0 an=(A*an-1^2+B*an+C)%D(n>1) 求该序列最长不下降子序列长度暴力n不是很大显然可以暴力。 n很大呢? 那就不断减循环节长度直至减到一个阈值内,再暴力。 正确性显然,只要阈值不要设太小。#include<cstdio>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=原创 2016-12-23 22:32:52 · 475 阅读 · 0 评论 -
幻想
题目描述做容易归纳出Si就是i在k进制数下各数位上的数的和再模k。 证明很简单。 我们只需要维护k进制分解即可。 用一个数组维护,每次把最低位+1,然后考虑进位。 均摊分析这是线性的: 设势函数为k-1的数量。 每次若进位了s个,那么势函数减少了s,并可能增加1,实际消耗时间为s+1,因此Ai<=s+1-s+1=2 均摊复杂度为O(1) 优化常数使用模优化即可#include<cst原创 2016-12-06 16:54:55 · 308 阅读 · 0 评论 -
[hackerrank]Walking the Longest Path (Approximation Problem)
题目大意求一条尽可能长的哈密顿路径,并输出。 保证存在长度为n的哈密顿路径。 你找的哈密顿路径长度至少为n*0.95且合法即算对。随机算法这个不可做,因此考虑随机算法。 我们随机它个800次! 每次随机一个中间点w,然后从w拓展出两条不相交的路径作为本次搜出的哈密顿路径。 每个点i用一个d[i]表示i有多少出边连向的点不在目前找到的哈密顿路径中,接下来d用度数称呼。 每次对于当前点k,如原创 2016-11-15 16:19:38 · 476 阅读 · 0 评论 -
最长公共回文子序列
题目大意求两个字符串的最长公共回文子序列。 其中一个字符串长度仅为20。SB题用2^20枚举最长公共回文子序列,然后检验很长的那个串是否存在这个子序列。 可以预处理next[i,j]表示第i个位置后的第一个字符为j的位置,这样每次检验只跳m步。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(原创 2016-11-14 20:52:37 · 504 阅读 · 0 评论 -
抗拒黄泉
题目大意一个n*m的网格上,有一些格子可操作。 每一轮等概率选择一个可操作的格子操作,若选择了(i,j),那么第i行与第j行会被标记为操作过。 求期望轮数使得所有行和所有列均操作过。 n,m<=20,n*m<=200容斥我们用P(i)表示已经过了i轮,还没有使得所有行列均操作过的概率。 那么答案即为 ∑∞i=0(P(i)−P(i+1))∗(i+1)\sum_{i=0}^\infty(P(i原创 2016-11-02 20:46:29 · 726 阅读 · 0 评论 -
[hackerrank]Counting on a tree
题目大意给你一棵树,每个点有一个颜色 若干询问,每次询问两条树路径上,存在多少点对(i,j)满足以下条件: 1、i不等于j 2、i和j颜色相同 3、i在第一条树路径上,j在第二条树路径上第一种算法我们先将颜色离散化,然后统计每种颜色有多少个点。 先不考虑第一个限制,假设对于一种颜色c,我处理出了d数组d[x]表示x到根路径上有多少个颜色为c的,那么一个询问x->y和u->v答案为(d[x]原创 2016-11-14 17:33:15 · 634 阅读 · 0 评论 -
[BC#89A]Fxx and string
题目大意给定一个字符串求有多少三元组(i,j,k)满足i、j、k形成等比数列,且s[i]=’y’,s[j]=’r’,s[k]=’x’瞎做枚举i和j即可求k,这个枚举是n log n的。 注意不一定i#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(i=a;i<=b;i++)using name原创 2016-11-02 14:40:06 · 747 阅读 · 0 评论 -
蜡笔
题目大意有n(n<=100000)个三元组。现在你需要选k个三元组,使者k个三元组两两差异(差异定义为三元组每一项差值的最大值)最小。 三元组每一项都不超过255。二分实际上就是挑选k个三元组使得任意两个三元组中任意项对应元素差值的最大值最小。 最大值最小自然就是二分啦。 不过二分对应的是判定性问题,怎么办呢? 我们可以统计最多能挑选多少个,那么如果这个数量大于等于k,挑选k个自然没有问题。原创 2015-08-29 13:37:19 · 670 阅读 · 0 评论