
暴力
EMber _
人但有追求,世界亦会让路。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces 583C/582A 暴力+gcd
A. GCD Table time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output The GCD table G of size n × n for an array of positive integers a of leng原创 2016-08-15 19:50:35 · 478 阅读 · 0 评论 -
bzoj1709[Usaco2007 Oct Gold]Super Paintball超级弹珠
瞎玩。。10000^2居然能过。。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;int n,m,k原创 2017-04-14 09:45:09 · 368 阅读 · 0 评论 -
bzoj4776[Usaco2017 Open]Modern Art
题目意思就不说了,挺明显的。想法也挺明显的,就是把每个数字最大出现矩形都框起来,然后看那些格子的出现次数>1,这个格子里面的数字肯定不是第一个,然后去掉就好了。 框格子用二维前缀和就好了 1A.#include<cstdio>#include<algorithm>#include<iostream>#include<queue>#include<cstring>#define fo(i原创 2017-05-27 17:46:31 · 613 阅读 · 0 评论 -
bzoj3916 [Baltic2014]friends 暴力
Description有三个好朋友喜欢在一起玩游戏,A君写下一个字符串S,B君将其复制一遍得到T,C君在T的任意位置(包括首尾)插入一个字符得到U.现在你得到了U,请你找出S. Input第一行一个数N,表示U的长度. 第二行一个字符串U,保证U由大写字母组成 Output输出一行,若S不存在,输出”NOT POSSIBLE”.若S不唯一,输出”NOT UNIQUE”.否则输出S. Samp原创 2017-07-14 22:22:50 · 638 阅读 · 0 评论 -
【GDOI2018模拟7.8】质数 乱搞+哥德巴赫猜想
题意:给你n,将1-n中的数字分成尽量少的集合,使得每个集合的和都为素数,输出集合数和方案。n<=6000想了一会儿发现模型可以化简,其实只要先求出总和,然后分分分就可以了。 问题是怎么分。 一开始想了个sb方法,因为我如果线筛求出素数以后,直接硬上背包的话会T 然后就贪心找最大的,每一次拿最大的去填,感觉好像有问题,但是这种方法好像在哪里见过就没有多想直接上了,拍一些数据也居然过了。 然后原创 2017-07-08 14:19:23 · 635 阅读 · 0 评论 -
51nod 1859 Clarke and number 打表
打表找规律,随便找找就有了,实在不行看题解,写的很清楚 sqrt出现了误差,判断一下就就好了。#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)us原创 2017-08-04 20:28:17 · 346 阅读 · 0 评论 -
2017百度之星 复赛
作为一只菜鸡,这可能是我OI生涯中最后一次打百度之星了,希望明年这个时候能不退役(虽然不大可能)开始贴题解吧。会持续更新。1001 Arithmetic of Bomb 煞笔模拟题,1A#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i原创 2017-08-18 21:36:12 · 1217 阅读 · 0 评论 -
bzoj3715 [PA2014]Lustra 暴力
签到题,送经验。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;typedef long long ll;const int N=2e5原创 2017-09-06 22:47:13 · 227 阅读 · 0 评论 -
bzoj2795[Poi2012]A Horrible Poem 暴力hash
题意:给你一个串,一些询问,求l,r子串内的最小循环节。|s|<=5e5,q<=2e6; 询问那么大,肯定不能搞事,然后我就想到了SAM。。。。。。 SAM明显搞不了啊,然后就萎了,想不到该咋搞。。 事实上暴力hash就可以了。。。 首先hash一波,枚举循环节长度以后,暴力O(1)判断循环节。 循环节长度不能无脑枚举,由于是循环节,那肯定是n的约数才有可能,所以根号搞一波。 但这样还是原创 2017-09-28 22:18:28 · 404 阅读 · 0 评论 -
bzoj1800 [Ahoi2009]fly 飞行棋 暴力枚举
啊啊啊我要疯了!!!tmd这么水的题目我居然因为一个地方打错调了半个小时,我是不是傻逼啊。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;原创 2017-09-21 18:40:53 · 231 阅读 · 0 评论 -
bzoj2783 [JLOI2012]树 STL+dfs
题意:给出一棵树。每个点有权值,问有多少条路径的权值和=S,S给定 S<=1e3,N<=1e5. 第一反应dp,设f[i][j]表示第i个点,权值和为j,dp式十分显然= =然而会T,卡了卡常卡不过去。。应该是卡掉了这种做法。。 那么我们只能nlogn,注意到答案好像不用mo,然后我觉得可能时间复杂度是O(ans)。。然后dfs一下用个set存储一下前缀和,然后每次查找一下是否有一条合法路径。原创 2017-08-23 22:35:37 · 285 阅读 · 0 评论 -
bzoj3893
分析:这题目一看就得乱搞。 首先把每个牛最终能跑到的坐标算出来,然后看他大不大于后面的一位。。然而这很明显是错的,因为后面的速度肯定会对前面的造成影响(po姐应该是口误了?),而前面的不会,所以我们直接倒着扫,记录最慢的那个,然后更新就可以了。#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define原创 2017-03-15 20:55:59 · 417 阅读 · 0 评论 -
bzoj3433
分析:一看代码这么短。。肯定有鬼。。 直接贪心,按照右端点排序以后直接做。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#define fo(i,a,b) for(int i=a;i<=b;i++)using namespace std;const int N=505;typedef lon原创 2017-03-14 22:33:47 · 263 阅读 · 0 评论 -
bzoj 1607
因为a[i]<=n,所以直接计算次数以后log算约数就行了。。#include<cstdio>#include<algorithm>#include<cstring>#include<math.h>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace st原创 2017-03-04 22:05:38 · 244 阅读 · 0 评论 -
bzoj 1679
分析:假设一开始的ans=a[i]-a[1],1<=i<=n,那么每一次往右边移动一位,假设移动到第i位,他的答案就变成了ans+b[i](i-1)-b[i](n-i+1),b[i]表示i和i-1的绝对值差,注意这个要新开一个变量维护。。 结果开longlong不然会爆。#include<cstdio>#include<cstring>#include<algorithm>#define f原创 2017-03-05 09:13:47 · 223 阅读 · 0 评论 -
bzoj1620
分析:我tm在想啥呢。。怎么一上来就Dp,,这不是水的一匹的贪心么。。#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;typedef lo原创 2017-03-08 22:01:13 · 208 阅读 · 0 评论 -
bzoj1634
分析:经典套路,直接用t/d排序以后直接统计答案就好。#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;typedef long long原创 2017-03-08 22:43:13 · 301 阅读 · 0 评论 -
bzoj3391
直接看子树是否大于mx就行了。#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<queue>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std原创 2017-03-09 20:59:30 · 232 阅读 · 0 评论 -
bzoj1612
分析:直接每个点上下dfs一遍,如果上下的点加起来有n-1那么就合法。。 因为边集数组不想开8个。。所以直接vector简单暴力。 也可以用floyd传递闭包做,就是转移稍稍复杂一点。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#define fo(i,a,b) f原创 2017-03-06 20:40:06 · 273 阅读 · 0 评论 -
bzoj1623
分析:直接贪心。。有啥好说的,网上一堆蜜汁用堆的。。#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<queue>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using na原创 2017-03-10 21:37:20 · 286 阅读 · 0 评论 -
bzoj4395 [Usaco2015 dec]Switching on the Lights
分析:。。一开始想歪了,以为直接连边做最短路就好,然后发现好像不行,因为如果相邻的也可以,然后又把相邻的连边,结果又发现如果不点亮不能去房间,这样判断的条件就炸了,所以。。直接暴力bfs我在想啥。。#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #inc原创 2017-03-29 21:59:07 · 419 阅读 · 0 评论 -
bzoj4397
分析:第一眼还以为是莫队,结果发现前缀和不就好了。。#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;原创 2017-03-30 17:11:33 · 275 阅读 · 0 评论 -
bzoj4512
分析:只要碰到已经走过的点就必须要去除一个,但是有一种特殊情况,就是篱笆可以重叠。。注意判断一下就好了。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) f原创 2017-03-31 09:07:12 · 252 阅读 · 0 评论 -
bzoj2208 [Jsoi2010]连通数 dfs
题意:求每个点出发能经过的点数,n<=2000。 这明显签到题吧喂,签到都太水了啊= =。跑的贼慢我好虚。结果还是过了。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using原创 2017-10-13 20:37:48 · 258 阅读 · 0 评论