暴力
Icefox_zhx
这个作者很懒,什么都没留下…
展开
-
Codeforces Round#495
A#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define N 100010inline char gc(){ static char buf[1<<16],*S,*T; if(S==T){T=(S=buf...原创 2018-07-06 23:57:01 · 234 阅读 · 0 评论 -
bzoj1028 [JSOI2007]麻将(暴力枚举+贪心)
枚举等待牌,然后枚举一个对子,然后判断剩下的牌能否拿掉,我们可以从小到大贪心地先拿刻子,再拿顺子。复杂度O(n3)O(n^3)原创 2018-03-31 12:00:48 · 347 阅读 · 0 评论 -
bzoj3754 Tree之最小方差树(枚举+Kruskal)
求最小方差树。只好枚举平均数。求出可能的最小边权和和最大边权和,然后枚举边权和,做Kruskal更新答案。因为f(x)=∑i=1n(ai−x)2f(x)=\sum\limits_{i=1}^n(a_i-x)^2,当x=a¯x=\overline a时f(x)取得最小值,所以如果当前方案不合法也没关系,一定会在合法时更新为更小的。复杂度O(n∗C∗mlogm)O(n*C*mlogm)其实我觉得这样复杂原创 2018-03-30 10:56:26 · 302 阅读 · 0 评论 -
bzoj2790 [Poi2012]A Horrible Poem(hash+枚举)
多次询问子串最小循环节。 子串x…y循环节为l的充要条件是x…y-l与x+l…y相同。这个可以由hash来O(1)判断。 循环节长度肯定是y-x+1的因数,很好理解。于是我们可以枚举长度来求最小循环节。 然而这样会T。我们知道循环次数还一定是每个字母出现次数的因数,因此我们对这些取个gcd,枚举gcd的因数即可。原创 2018-03-20 16:26:17 · 283 阅读 · 0 评论 -
bzoj5156 [Tjoi2014]拼图(状压+爆搜)
应该直接爆搜就可以了。我状压了一下每个位置目前是否被占据,跑得快了一些。不过这样输出路径时有点麻烦x 注意输出的,后面有空格。。。原创 2018-03-12 13:39:53 · 286 阅读 · 0 评论 -
bzoj5154 [Tjoi2014]匹配(枚举+费用流)
先跑一遍费用流,然后枚举此次选择了的n条边,删掉一条,看最大费用还存不存在,如果不存在了就不能删。复杂度O(n4)O(n^4) zz的写了O(n5)O(n^5),spfa还写出锅了,【再见】原创 2018-03-12 13:21:46 · 280 阅读 · 0 评论 -
bzoj3751【2014提高】解方程(数论+筛法+枚举)
这题强啊。。。蒟蒻弱到去写带负数的高精度了,结果玩挂。 因为数无比的大,所以我们发现给两边都模个数好了hh。为了更准确些,让他们摸个大质数吧!一个正确性还不太够,多模几个吧!于是诞生了正解。读入的时候就顺道都模了,我这里是用了三个质数。然后枚举x,带入,用秦九韶公式计算,判断是否得0.如果模3个质数的情况下均为0,基本可以说他就是得0了(错误的概率极小)。然后这样枚举是O(nm)的,可能会卡常。...原创 2017-10-22 22:58:41 · 295 阅读 · 0 评论 -
CF385C Bear and Prime Numbers(素数+暴力)
线性素数筛出1e7的质数,应该是6e5左右个,然后直接暴力预处理答案即可。复杂度大概在(n/ln n∗logn)(n/ln\ n*log n)左右原创 2018-03-11 15:32:03 · 1431 阅读 · 0 评论 -
CF342E Xenia and Tree(分块暴力)
每个点记一个dis[x],表示离他最近的红点的距离。每次把一个点染红就记下来这个点,当超过n−√\sqrt n个时就暴力bfs重新搜一遍,并清空数组。每次询问x,就是若干还没更新的红点与x的距离和dis[x]取min。复杂度O(nn−√)O(n\sqrt n)原创 2018-03-03 14:53:00 · 414 阅读 · 0 评论 -
Codeforces Round#472
CF957A Tritonic Iridescence(瞎搞)CF924A Mystical Mosaic(瞎搞)CF924B Three-level Laser(贪心)CF924C Riverside Curio(贪心)CF924D Contact ATC(数学+BIT求逆序对)原创 2018-03-25 16:22:47 · 1113 阅读 · 1 评论 -
bzoj1011 [HNOI2008]遥远的行星(分块+瞎搞)
这题解法我是给您跪了的orz 注意到误差在5%以内即可。 所以可以近似计算。每100个一起算即可。orz原创 2018-03-26 22:43:30 · 307 阅读 · 1 评论 -
bzoj1071 [SCOI2007]组队(枚举+单调队列)
这题我哪会呀。题解:portal原创 2018-04-06 16:06:15 · 220 阅读 · 0 评论 -
bzoj4943 [Noi2017]蚯蚓(Hash+复杂度分析卡常)
做法较为明显,直接模拟即可。Hash比较字符串。 复杂度分析一波,如果没有2操作的话,复杂度显然是O(nk)O(nk)O(nk)的,考虑有2操作的话,分裂两个蚯蚓的复杂度是O(k2)O(k2)O(k^2),因此而带来的合并复杂度也是O(ck2)O(ck2)O(ck^2)的,因此总的复杂度就是O(nk+ck2+|s|)O(nk+ck2+|s|)O(nk+ck^2+|s|) 然后就是卡常啦! 首...原创 2018-06-28 15:27:52 · 298 阅读 · 0 评论 -
luogu4713「语文」凑字数(dp+贪心+枚举)
考试时根本没看到这题(蒻 后来也只会42分的做法qaq 并没有想到如何处理K>1的情况 原来暴力枚举一下哪些部分得分为0就好了啊qaq 然后把其他的扣分都算在一起就好了,可以证明如果非法一定不优。 然后利用此题分数S只有200的特性 可以做到O(2kkSn)O(2kkSn)O(2^kkSn)的复杂度 f[i][j]f[i][j]f[i][j]表示前i句话,扣了j分写到的最远位置...原创 2018-06-23 22:32:20 · 251 阅读 · 0 评论 -
CF354C Vasya and Beautiful Arrays(gcd+暴力)
首先gcd最大是原序列最小数,设为m。 如果K>=m-1那么一定都可以变成m的倍数,因此答案就是m 显然答案最小为K+1,因为一定能把所有数都变成K+1的倍数。 于是我们可以在K+1~mn从大到小枚举,数x如果是答案的话,要求每一个数都在[gx,gx+K]之间。我们前缀和统计一下即可。 复杂度O(wlogw)O(wlogw)O(wlogw)#include <bits/st...原创 2018-06-23 13:01:38 · 351 阅读 · 0 评论 -
Codeforces Avito Code Challenge 2018
CF981A Antipalindrome(字符串+模拟)#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define N 100int n;char s[N];inline bool jud(int l,int r){ for(i...原创 2018-05-28 10:59:30 · 286 阅读 · 0 评论 -
bzoj5365 [Lydsy1805月赛]回文树(树上Hash+暴力)
因为字符随机,所以同样的字符很少,我们对于同样的字符内部暴力两两枚举,看x-&gt;y是不是一个回文串。 怎么看呢?蒟蒻我不会… 比赛时胡乱写了一个假的lct维护树上hash值。 一开始没维护sz,它过了…过了… 发现后改过,它RE了…缘来是我写挂了qaq 改对过了美滋滋,然而elijahqi巨佬告诉我你太naive了…你这样rev之后hash值根本不对…囧 然而过了,可能因为数据随机...原创 2018-05-27 22:29:56 · 508 阅读 · 0 评论 -
bzoj1077 [SCOI2008]天平(并查集+暴力)
首先把有相等关系的都并成一个,方便讨论。 然后直接O(n2)O(n^2)暴力处理出每一个点的取值范围。 如果既有前驱又有后继,那这个点一定是2,然后暴力更新其他已知点。 未更新值的点可能有多种取值,根据连边关系限定。 然后暴力枚举C,D,以及A,B,C,D的取值,判断是否合法。以及是否答案为唯一。原创 2018-04-21 22:42:49 · 283 阅读 · 0 评论 -
bzoj1799 [Ahoi2009]self 同类分布(数位dp)
因为我们要统计%M=0的数的个数,我们只好考虑枚举各位数字之和M,还好最大只有19*9,可以接受。 然后我们就可以数位dp了,f[0][i][j][k]表示前i位,数字和为j,%mod=k,目前还没< x的个数,f[1],已经< x了的个数。复杂度O(1713∗19)O(171^3*19原创 2018-04-25 11:58:37 · 226 阅读 · 0 评论 -
bzoj4868 [Shoi2017]期末考试(枚举+贪心)
直接枚举结束时间即可。两个指针来更新答案。 注意特判C==1e16的情况。原创 2018-04-23 23:37:57 · 257 阅读 · 0 评论 -
CF103D Time to Raid Cowavans(分块)
对于b>n√\sqrt n的,暴力跳即可。其他的可以O(n)先类似dp的求出sum[i],表示以i为a的答案,然后O(1)回答询问。于是我们先把所有询问按b排序即可。复杂度O(nn√)O(n\sqrt n)原创 2018-03-02 10:32:32 · 424 阅读 · 0 评论 -
bzoj1495 [NOI2006]网络收费(状压/暴力+树形dp)
首先我们观察收费表格,对于非叶子节点,如果n0< n1,我们把这个节点的状态记作0,否则记作1.则不难发现,对于一个叶子节点x,如果和它的祖先i的状态一样,他就要付出在这个祖先处的所有费用。因此我们可以分开来计算每一个叶子节点的贡献。预处理出cost[x][i]数组,表示叶子节点x在祖先i处的所有花费。(cost[x][i]=∑[lca(x,y)==i]∗f[x][y]cost[x][i]=\sum原创 2018-02-22 14:06:57 · 378 阅读 · 0 评论 -
Codeforces Round#467
CF937A Olympiad(模拟)答案就是非0的数的种类数CF937B Vile Grasshoppers(数学+暴力)CF936A Save Energy!(模拟)CF936B Sleepy Game(图论+dfs)原创 2018-02-26 09:40:56 · 360 阅读 · 1 评论 -
NOIP模拟11.1
Poetize9 A.communicate (部分分搞了90,仙人掌我哪会啊。。) B.queue 暴力(被我暴力水过了???) C.signal 位运算+瞎搞?(ll加错地方,爆0滚粗(还好有暴力40分)原创 2017-11-01 14:37:08 · 540 阅读 · 0 评论 -
bzoj4717 改装(暴力+二分答案)
因为数据范围很清奇,时限很挥霍,所以我们对询问操作暴力搞,修改操作直接O(1)做。对于询问,我们二分一个答案x,看比他大的有几个,看是小了还是大了。不断调整。怎么快速的知道有几个比x大的呢?对a数组每次询问时暴力处理出小于等于v的有几个,记为cnt[v]。然后我们枚举每一个b[i],大于x/b[i]的在a数组中有几个就是有几个比x大的了。记询问个数为a,则复杂度为O(a*(2000+log2e9*m原创 2017-10-28 11:15:22 · 465 阅读 · 0 评论 -
bzoj1088 [SCOI2005]扫雷Mine(枚举+模拟)
这水题。。。好吧。。。枚举第一个位置是否有雷,然后就可以推出其他位置是否有雷,判定是否合法即可。方案数最多两种。。。注意判断给定数据是否合法。原创 2017-10-20 09:14:24 · 364 阅读 · 0 评论 -
CF870D Something with XOR Queries(异或+暴力枚举)
首先考虑如果n^2的询问我们都问了,如何算出答案。我们已知了两两数之间的异或和,则我们可以枚举p0的取值,根据p0的取值算出所有数的取值,然后去检查是否合法即可。那我们现在最多只能问2n个问题,如何实现n^2个问题的效果呢?我们先得到p0与bi的所有异或值,用掉n个问题,然后再得到b0与pi的所有异或值,用掉n-1个问题。 对于p0^pi,可以直接通过p0^b0^b0^pi得到。然后对于pi^bj原创 2017-10-18 08:49:33 · 638 阅读 · 0 评论 -
Codeforces Round #441
CF876A Trip For Meal(贪心水题)原创 2017-10-17 21:09:24 · 333 阅读 · 0 评论 -
Codeforces Round #439
CF869A The Artful Expedient(暴力/异或性质)CF869B The Eternal Immortality(数学+模拟)CF869C The Intriguing Obsession(组合数学/dp)原创 2017-10-07 15:21:01 · 338 阅读 · 0 评论 -
bzoj1218 [HNOI2003]激光炸弹(二维前缀和+暴力/线段树+离散化+扫描线)
n=5000,暴力O(n^2)预处理二维前缀和,暴力O(n^2)枚举答案矩阵。 当然正解是O(nlogn)的线段树+扫描线+离散化的老套路。。详见poj2482原创 2017-09-24 16:13:46 · 416 阅读 · 0 评论 -
CF835C Star sky(模拟+二维前缀和)
题目大意:给你个100*100的棋盘,有些点上有点权,会随时间改变。设点权为x(x<=10),则在时间t他的点权为(t+x)%(c+1)(t+x)\%(c+1)。每次询问给你时间t,和一个矩阵范围(x1,y1,x2,y2),问你矩阵覆盖区域内的点权和是多少。因为棋盘范围很小,权值种类也很少,所以我们预处理一个数组cnt[k][x][y],表示(1,1,x,y)矩阵内点权为k的点的个数。用容斥原理处理原创 2017-08-01 13:45:08 · 679 阅读 · 0 评论 -
CF486D Valid Sets(枚举+树形dp)
我还在想没给定根怎么能树形dp呢。。。我们枚举每一个i来当跟,然后每次统计过根且a[i]为最大值的方案数。考虑到如果a[i]!=a[j],则一定不会重复计数。那可能重复的就是a[i]==a[j]的情况,那我们强制规定一个方向,让标号小的能访问到相等的大的即可。这样就不会重复计数了。原创 2017-10-15 21:39:07 · 407 阅读 · 0 评论 -
NOIP模拟10.25
Poetize12 A.seal 模拟+贪心 B.energy 树形dp C.journey 瞎搞。。。优化暴力即可。原创 2017-10-25 17:16:36 · 310 阅读 · 0 评论 -
CF689C Mike and Chocolate Thieves(二分答案+数学)
二分答案,发现最大数一定是xk3xk^3,所以枚举立方数,看有多少个,累加即可。原创 2017-11-19 20:55:16 · 419 阅读 · 0 评论 -
CIA11 毒瘤题(七维偏序,分块+bitset)
首先bitset很强呀x,我们针对每一维,对于每一个点预处理出比他小的集合。然后他的答案就是这k个集合的交。但是O(n^2k)的空间很gg。我们可以分块,对于每一维,只预处理出若干块集合,然后查询的时候找到离他最近的块,用这个块的答案暴力得出正确的集合。应该是O(nn−√+n2∗7/32)O(n\sqrt n+n^2*7/32)原创 2018-01-16 23:21:51 · 1166 阅读 · 0 评论 -
bzoj3059 归途与征程(字符串,优化dp)
各种奇怪的优化,然后各种恶心的细节,然后直接的暴力。原创 2018-01-13 21:37:12 · 345 阅读 · 0 评论 -
bzoj3057 圣主的考验(树形dp+优化)
实质上可以根据这道题的特性,把dp优化下,简直黑科技。处理出深度为d时,可能的最大节点数和最小节点数,这样转移就不会T了。。。还要注意这题输出贼坑,本来不少于九位的要输出前导0。。打表看一下分界点在38.。原创 2018-01-13 21:01:55 · 492 阅读 · 0 评论 -
uvalive6837 There is No Alternative(暴力+kruskal)
一句话题意:求在原图的所有最小生成树中均出现的边。 orz Elijahqi直接秒掉此题。 先做出一颗最小生成树,然后枚举每一条生成树中的边,删掉它,看还能不能做出最小生成树。O(nm)原创 2017-12-17 11:43:29 · 304 阅读 · 0 评论 -
poj3552 Slim Span(暴力+kruskal)
这题就是求一个最小生成树,最小生成树的定义为最大边-最小边最小。我们可以直接暴力的枚举最小边,然后做最小生成树。原创 2017-12-16 20:42:05 · 373 阅读 · 0 评论 -
CF121E Lucky Array(线段树+暴力)
这题妙妙秒啊。首先我们注意到这题一些很奇怪的地方:比如说保证任何时刻数都不超过1e4.(这导致了直接暴力1e9也能过hh)这是为了什么呢?我们发现这样的话幸运数最多就30个!他还只加不减!妙哉!我们对每个点维护这样一个东西did_i,表示aia_i与离他最近的幸运数(大于等于aia_i的)的差值。显然,当且仅当di为0,这个数是幸运数。这样对于询问操作,我们就直接查询区间最小值,只有为0才有幸运数,原创 2017-12-14 20:28:56 · 691 阅读 · 0 评论