暴力解题
f_zyj
一个追逐蝴蝶的人!
展开
-
牛客网-2018 美团 CodeM 编程大赛-初赛 A 轮-1-遥控按键
ACM模版描述题解存储一下每个字母的位置,然后遍历时求一下曼哈顿距离之和即可。代码#include <iostream>#include <string>#include <cmath>using namespace std;const int MAXN = 27;int T;string s;struct ...原创 2018-06-10 00:09:53 · 437 阅读 · 0 评论 -
51Nod-1359-循环探求
ACM模版描述题解这个题用到了蒙哥马利约化的知识,并且在这种高精度模幂时,我们只需要考虑剩余类环中的情况,大于这个的高位可以直接忽略掉,因为肯定可以被模消除,据说还用到了鸽舍原理,我也不是特别能理解这个题,官方题解有些不走心,公式难道是代码解析出问题了?怎么感觉残缺啊~~~这个代码的核心部分是 tmptmp 循环判断这部分,tmptmp 表示对应的每一位,从低位开始,逐个去配凑,一直到配出 tmpt原创 2017-06-15 18:06:06 · 645 阅读 · 0 评论 -
51Nod-1564-区间的价值
ACM模版描述题解这个题很有意思,输入专门强调是随机生成的,所以不存在比较卡的数据,酱紫的话,也就是可以使用分治搞搞,当然这个方法不是最好的,但是是最简单的,在此基础上,还可以进行数据结构上的优化,使区间查询最值的过程更优,酱紫就会想起来线段树、树状数组、RMQ 之类的东西,可能用单调栈也能搞吧~~~还好,裸数据结构就能险过,偷个懒,就不用高级数据结构优化了……GG!代码#include <iost原创 2017-06-14 00:55:49 · 793 阅读 · 0 评论 -
图灵杯-第四届“图灵杯”NEUQ-ACM 程序设计竞赛-G-那么大奶牛之神
ACM模版描述题解虽然官方给了题解,但是不够走心啊~~~题解如下:G:找规律。51#1最优解1+(111-11)/(1+1)51#2最优解2+2/2+2*(2*2)!51#3最优解3!*3+3351#4最优解4!*(√4+√√√(√4^(-4!)))51#5最优解5/5+55-551#6最优解(6!-6*6)/(6+6)-651#7最优解7*7+(7+7)/751#8最优解√√(8原创 2017-06-14 00:07:48 · 713 阅读 · 0 评论 -
SHU-“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛-H-调和序列
ACM模版描述题解暴力筛法预处理,注意坑点是,KK 可能很大,大到比 nn 还大,但是此时,序列中依然是有东西的,就是 A[0]A[0],也就是说,当访问的 KK 很大时,这个子序列中至少有一个元素,如果此时 S=1S = 1,那么就输出 A[0]A[0] 即可了。代码#include <iostream>#include <algorithm>#include <vector>#includ原创 2017-07-14 00:09:57 · 678 阅读 · 4 评论 -
51Nod-1452-加括号
ACM模版描述题解这个表达式我们可以划分为 连加部分 + 连乘部分 + 连加部分 + … + 连乘部分 + 连加部分 + 连乘部分,这里注意数字要和乘法亲和。此时我们应该考虑,什么地方可以加括号使序列结果变大,那么,这个不难想到,当我们加的括号两边都是乘号时,有可能会增大,但是我们需要考虑的只是连乘的头尾部分,因为中间的部分是没有必要括进去的。所以呢,我们在拆分序列时,需要保存连乘部分的头尾值,对其原创 2017-06-26 03:16:10 · 413 阅读 · 0 评论 -
51Nod-1586-约数和
ACM模版描述 题解为什么我感觉这个题加不加输入输出外挂没啥两样呢?都是 1300ms1300ms 左右 AC……先预处理一下每个数的约数个数,然后直接暴力就好了。代码#include <cstdio>using namespace std;typedef long long ll;const int MAXN = 1e6 + 10;int n, q;int cnt[MAXN];ll a[MA原创 2017-07-04 19:14:59 · 461 阅读 · 0 评论 -
51Nod-1444-破坏道路
ACM模版描述题解因为道路权值均为1,所以可以省略收缩的过程用 bfs() O(n2)O(n^2) 的复杂度求得任意两点之间的最短路,然后呢,我们需要考虑两条路之间的重叠部分,暴力枚举所有可能重叠的部分,求最小 ans 即可。代码#include <iostream>#include <vector>#include <cstring>#include <queue>using namesp原创 2017-06-25 17:45:55 · 555 阅读 · 0 评论 -
图灵杯-第四届“图灵杯”NEUQ-ACM 程序设计竞赛-C-来简单地数个数
ACM模版描述题解发现做题做得多了连整个人都死板了……这个题拿到手就写,思路简单至极,就是高精度求斐波那契数列,然后遍历一遍求在 [L,R][L, R] 范围内的数的个数,也可以使用二分快一些,这里需要求到前480个斐波那契数,因为到这里时刚好超过 100 位。为什么说我死板了呢?题目中说当 a=b=0a = b = 0 时就终止,平时做这种题时,总是当任意一个为 0 后就可以确定直接结束了……而这原创 2017-06-12 00:56:36 · 749 阅读 · 0 评论 -
蓝桥-ALGO-23-一元三次方程求解
ACM模版描述题解一开始这个题想多了,想着可能需要求导求极点拐点之类的东西,后来直接暴力过了一发(代码 One),然而这个方法不是特别满意,于是仔细分析了发现,题目给了很强的两个条件,保证存在三个不同的实根,且根于根直接差大于等于 1,那么我们知道一元三次方程组的解至多只有三个,所以一定是不存在峰值刚好为 0 的情况,这样直接枚举所有长度为 1 的区间,进行判断是否存在根,存在时二分即可(代码 Tw原创 2017-06-03 17:33:23 · 801 阅读 · 0 评论 -
蓝桥-ALGO-33-数列
ACM模版描述题解这个题数据这么小,所以直接找规律暴力搞搞就好了,当我们加入序列 kxk^x 后,我们可以发现紧接着会有若干项,分别是 kx+A[i],0<=i<kx这一项的keyk^x + A[i], 0 <= i < k^x 这一项的 key,这样挨个往序列中添加就好了!复杂度 O(n)O(n),完美解决,当然我感觉应该可以先预处理 kxk^x 后,通过封闭式直接求出来结果,预处理只需要不超过三原创 2017-06-06 00:30:54 · 631 阅读 · 0 评论 -
51Nod-1572-宝岛地图
ACM模版描述 题解这个问题一开始我选择暴力,结果 TLE 了,然后各种优化,考虑到很多位置是重复判断的,所以我选择将所有可能会路过的相对坐标存在 set 中,结果依然是 TLE 了两组,虽然时间上快了很多,但是依然无法避免的超时了(代码 One)。然后,发现自己虽然在不断地优化,但是始终没有摆脱暴力的思路,这里应该将有障碍的地方全部设置为 1,然后求前缀和,因为如果我们一步一步的去判断肯定会超时原创 2017-05-17 14:18:08 · 698 阅读 · 0 评论 -
HDU-2017中国大学生程序设计竞赛-网络选拔赛-1003-Friend-Graph
ACM模版描述题解判定一个无向图是否有三个点的团或者三个点的独立集,这个题暴力就能过,最起码一开始是这样的,后来貌似这个题的时限修改了,不知道会不会暴力超时了……反正一开始是这样 AA 掉的。代码#include <iostream>#include <cstdio>using namespace std;typedef long long ll;const int MAXN = 3e3 + 10原创 2017-08-20 17:02:47 · 1088 阅读 · 5 评论 -
HDU-2017"百度之星"程序设计大赛-初赛(B)-1002-Factory
ACM模版描述题解其实,这个题的题解我是秒出的,当然,之所以没有写是因为这个秒出的题解也是被我秒掉了,我认识他会超时……始终是这样认为的……可是大概数据没有那么刁钻的极限情况,所以直接 LCA+暴力LCA + 暴力 就能过。我们只需要暴力枚举两个子公司的办公室的任意组合,求最短距离即可,这部分就是 LCALCA 的过程,没有什么难度,所以堪称是模版题……然而想要一遍 ACAC 的我想了许久也没有敢写原创 2017-08-14 16:52:33 · 866 阅读 · 5 评论 -
牛客网-2018 美团 CodeM 编程大赛-初赛 B 轮-4-神奇盘子
ACM模版描述 题解最开始想复杂了,画来画去,找不到规律,然后想要用三分来搞,后来发现这其实可以暴力枚举……枚举不同角度即可,题目要求误差不大于 1e−61e−61e-6,但这不是角度的误差范围,我们可以控制角度每次偏移 1e−31e−31e-3 即可,并不需要也控制在 1e−61e−61e-6。具体 1e−61e−61e-6 会不会超时我也没有尝试……代码#in...原创 2018-06-24 16:58:09 · 537 阅读 · 0 评论 -
牛客网-2018 美团 CodeM 编程大赛-初赛 B 轮-1-开关灯
ACM模版描述题解模拟题,先排序,然后记录有多少灯开着,把最多的时刻房间状态拷贝一份,最后输出即可。代码#include &lt;iostream&gt;#include &lt;algorithm&gt;#include &lt;cstring&gt;#include &lt;cstdio&gt;using namespace std;原创 2018-06-24 15:49:46 · 476 阅读 · 1 评论 -
牛客网-2018 美团 CodeM 编程大赛-资格赛-4-分数
ACM模版描述 题解没啥技术含量,考验的是码力……大暴力写就好了。代码#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int MAXN = 555;struct person{ doub...原创 2018-06-08 14:39:41 · 435 阅读 · 0 评论 -
CF-Codeforces Round #485 (Div. 2)-E-Petr and Permutations
ACM模版描述题解初始给定一个 1∼n1∼n1 \sim n 的全排列,经过 3n3n3n 次随机交换或者 7n+17n+17n + 1 次随机交换,得到一个新的全排列,问这个全排列是通过 3n3n3n 次随机交换还是 7n+17n+17n + 1 次随机交换形成的?这个题很简单,放在 EEE 有些坑了……昨天晚上连题都没有来得及看。首先,我们分析,两个数经过 2x+1...原创 2018-05-30 17:33:35 · 851 阅读 · 4 评论 -
CF-Codeforces Round #487 (Div. 2)-C-A Mist of Florescence
ACM模版描述 题解给定 a,b,c,da,b,c,da, b, c, d 表示 A,B,C,DA,B,C,DA, B, C, D 四种字符的联通块数,构造满足条件的情况,最多构造的尺寸不能大于 50∗5050∗5050 * 50。这里我们直接都构造成 50∗5050∗5050 * 50 的,这个题据说有无数种解法(虽然有些夸张),但是基本上都是直接构造 50∗5050∗...原创 2018-06-12 19:36:42 · 324 阅读 · 0 评论 -
CF-Codeforces Round #487 (Div. 2)-A-A Blend of Springtime
ACM模版描述题解判定连续的三个字母是否同时包含 ABCABCABC,不要求 ABCABCABC 的顺序。代码#include <iostream>#include <string>using namespace std;const string str[] = {"ABC", "ACB", "BAC", "BCA", "原创 2018-06-12 19:19:26 · 257 阅读 · 0 评论 -
CF-Educational Codeforces Round 44 (Rated for Div. 2)-B-Switches and Lamps
ACM模版描述题解每个开关都能控制一些灯,但是只能打开灯,同一盏灯被多个开关操作,操作一次的结果是灯亮,操作数次结果还是灯亮。问能否取 n−1n−1n - 1 个开关让所有灯亮。很简单的题,记录开每个灯的开关数,然后逐个剔除开关,判断是否全开。注意可能存在所有开关都选的时候依然无法全开的情况。代码#include <iostream>#include ...原创 2018-05-22 04:34:24 · 477 阅读 · 3 评论 -
51Nod-2020-排序相减
ACM模版描述题解还是那句话,这种题不该出现在 51Nod51Nod 题库,就算出现也不该是基础题,应该是 11 级题,和基础题的定位不符。代码#include <iostream>#include <algorithm>using namespace std;const int MAXAB = 4;int n, k;int a[MAXAB], b[MAXAB];bool cmp(const i原创 2017-12-10 13:09:18 · 770 阅读 · 2 评论 -
HDU-6010-Daylight Saving Time
ACM模版描述题解这个题的难点在于题目不好懂,只要读懂了题目,细心一些的人都能做出来。大致的思路是先预处理出来每年的两个时间节点,也就是每年三月份的第二个星期天和每年十一月份的第一个星期天是多少号,然后直接拿数据进行对比即可。现在来说重点,预处理的手段不止一种,常规一些的就是按照年往后推,一年 365365 或者 366366 天,让它们模 77 然后进行偏移,感觉这种方法比较容易想,方法也不错,还原创 2017-11-16 09:17:15 · 568 阅读 · 0 评论 -
51Nod-1637-幸运数字转换
ACM模版描述题解做这个题需要敏锐的观察力……像我这样反应迟钝的人只能多 TT 几发才知道。当读第一遍题时,我就很奇怪,1≤n≤1051 ≤ n ≤ 10^5,而 0≤k≤1090 ≤ k ≤ 10^9,kk 这么大肯定会超时,但是当我看到描述中如果没有相应的 xx 时就结束,所以大意了,以为当 kk 很大时肯定会直接跳出来……谁成想,扫描一遍 TT 了,各种优化了几发还是 TT。再仔细想想,发现,原创 2017-10-30 17:16:26 · 525 阅读 · 0 评论 -
51Nod-1573-美丽的集合
ACM模版描述题解这个题真是鬼斧神工,让我再一次见识到了 bitsetbitset 的神奇威力……利用并查集来处理集合并的问题,然后暴力手段合并两个集合的元素,并且用 bitsetbitset 来处理和的种类数,这里十分巧妙,首先将原本的所有和全部加上新加入的元素形成新的和,然后与原本的和种数合并在一起即可。很好玩的一个题,没想到 bitsetbitset 操作竟然如此清真(其实我并不知道清真啥子梗原创 2017-10-08 12:12:17 · 498 阅读 · 0 评论 -
河南第十届ACM省赛-C-最小密钥
ACM模版描述题解比赛时,这个问题不用多想,直接暴力枚举即可,但是赛后想着用非暴力解试试看,挺好的一道题。既然要求余数都不一样,那么我们不如反过来想,如果一样时满足什么,这样找不满足这个条件的不就好了?假设 aa 和 bb 对 xx 同余,那么一定存在 (a−b)(a - b) % x = 0,所以这就意味着,我们要找的数一定不能是任意 a−ba - b 的差值的因子,所以我们需要暴力求解所有数对的原创 2017-05-12 12:55:29 · 797 阅读 · 0 评论 -
腾讯2017暑期实习生编程题-B-算法基础-字符移位
ACM模版描述题解其实很简单的一道题,但是牛客网的测评系统有问题。给了两种代码,不知道第一种算不算违规,因为是直接遍历两边,先输出小写,再输出大写;第二种就是利用许多次交换实现真正的字符转移,由于不能申请额外的空间,所以没有使用第三方变量的方法交换数据,而是使用异或的方法搞搞。代码One://#include <iostream>//#include <string>////using nam原创 2017-03-07 22:59:59 · 443 阅读 · 0 评论 -
51Nod-1287-加农炮
ACM模版描述题解代码One:#include <iostream>#include <algorithm>#include <cstdio>using namespace std;const int MAXN = 5e4 + 10;int A[MAXN];int main(int argc, const char * argv[]){ int M, N; cin >> M >原创 2016-09-01 22:30:43 · 847 阅读 · 0 评论 -
51Nod-1281-山峰和旗子
ACM模版描述题解猛一看题,和51Nod的1285题很像,连配图都一样,仔细一看,还是有区别的,可是,这道题数据有些水,贪心暴力(代码One)就能解,这样子看来,比1285还简单些,当然也有稍微高效些(代码Two)的解法,使用二分优化。代码One:#include <iostream>#include <cstdio>using namespace std;const int MAXN = 5e4原创 2016-09-01 00:44:33 · 663 阅读 · 0 评论 -
51Nod-1280-前缀后缀集合
ACM模版描述题解两个数组,一个正序一个倒序,数据结构是map,不断查找匹配就行了,没啥难度,虽然用的两重循环,但是经过剪枝,其实复杂度并不高。代码#include <stdio.h>#include <map>using namespace std;const int MAXN = 5e4 + 10;const int OK = 999;int A[MAXN]; // 正序int B原创 2016-08-30 13:53:38 · 734 阅读 · 0 评论 -
51Nod-1682-中位数计数
ACM模版描述题解这里,我们可以分析得到,符合规则的区间有四种形式,分别是:// i (1)// j---i (2)// i---j (3)// j'--i--j" (4)而这里,第一种不用过多处理,就是1;第2种和第3种类似,所以,我们需要求出来i之前的num的匹配情况,和i之后的num的匹配情况;而第四种要求的是,在第2种和第3种的基原创 2016-08-08 17:38:40 · 759 阅读 · 0 评论 -
51Nod-1489-蜥蜴和地下室
ACM模版描述题解首先将头尾的两个弓箭手打爆,然后dfs中间的弓箭手即可。 这里需要注意,每次往后搜索N+1的条件是,第N-1个弓箭手已经被A死了,但是第N个弓箭手不要求必须死。 因为这里数据很小,所以dfs暴力搜索是可以AC的……代码#include <iostream>using namespace std;const int INF = 0x3f3f3f3f;const int MAXN原创 2016-08-05 00:52:00 · 2680 阅读 · 4 评论 -
51Nod-1631-小鲨鱼在51Nod小学
ACM模版描述题解暴力解题就能通过,数据比较水,感觉我的代码有些麻烦,有很大的优化空间。这里要说的是,其实年月日可以转化为一个独有的序号转存,这个序号依然保持原来日期的对比关系。 比如说,将2001年1月1日存为:2001101,(2001*1000 + 1 * 100 + 1),这样子,两个日期间的对比关系用此序号对比依然成立。也可以使用<set>集合优化。代码#include <iostrea原创 2016-08-16 01:59:04 · 773 阅读 · 0 评论 -
51Nod-1625-夹克爷发红包
ACM模版描述题解做这道题,有些懵逼了我,因为一开始使用的方法是纯粹的贪心,但是偏偏有一组数据挂掉了,傻傻A不过去…… 这个解法,是将行和列并在一起贪心,可能是因为行和列数据交叉,产生了后效应性,所以有的数据会挂掉。然后,采用的枚举加贪心AC了。 因为行数最大为10,所以可以先枚举行,撑死了1024种状态,所以是可行的,然后列进行贪心,保证高级红包组数不超过k即可,最后取最大红包总和,这样子写就原创 2016-08-16 00:37:36 · 1042 阅读 · 0 评论 -
51Nod-1483-化学变换
ACM模版描述题解枚举暴力解题即可。枚举每一个数可能产生的数,并且记录产生该数的步数,最后取最少的总步数。代码#include <iostream>#include <cstring>using namespace std;const int MAXN = 1e5 + 10;const int INF = 0x3f3f3f3f;int num[MAXN];int sum[MAXN];int原创 2016-08-15 19:01:37 · 504 阅读 · 3 评论 -
关于海盗喝酒的问题
昨天做了一个海岛喝酒的问题,让我今天一天都没安生,这是我学c语言这么久以来最恶心的情况,我将其称之为潘多拉之谜。太邪性,到现在我还是不懂其中的奥妙所在。废话不多说,题如下:拼酒量有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒, 所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的, 再次重复…… 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。原创 2015-11-26 23:59:17 · 4712 阅读 · 3 评论 -
匪夷所思的错误-16年蓝桥杯A组省赛的第七题-剪邮票
刚刚做了16年蓝桥杯A组省赛的第七题,剪邮票,遇见了一个匪夷所思的错误,让我痛苦不堪! 题,无所谓,主要看代码! 代码C:#include <stdio.h>int stamps[12] = {0};int ans = 0;void test(int i, int j, int k, int q, int w){ //上下左右四个方向 int dir[4] = {-4, 4原创 2016-04-06 01:44:50 · 884 阅读 · 0 评论 -
2016年蓝桥杯A组 第八题 四平方求和
四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和。 如果把0包括进去,就正好可以表示为4个数的平方和。比如: 5 = 0^2 + 0^2 + 1^2 + 2^2 7 = 1^2 + 1^2 + 1^2 + 2^2 (^符号表示乘方的意思)对于一个给定的正整数,可能存在多种平方和的表示法。 要求你对4个数排序: 0 <= a <= b <= c <= d原创 2016-04-06 15:00:39 · 5429 阅读 · 5 评论 -
51Nod-1307-绳子与重物
ACM模版描述 题解直接用树剖暴力解题可以水过……数据略水。有O(N)解法,需要用到并查集。代码#include <iostream>#include <cstdio>using namespace std;const int MAXN = 5e4 + 10;struct line{ int C; int W; int last;} Line[MAXN];int po原创 2016-09-03 00:39:12 · 650 阅读 · 0 评论 -
51Nod-1316-回文矩阵
ACM模版描述题解这道题搞得我挺焦虑的,矩阵不大,可以暴力枚举。枚举所有的组合,然后在这些组合内部,先固定选取的行,然后遍历列,保证遍历完后,选取的行都是回文的;然后再固定选取的列,接着遍历行,保证遍历完后,选取的列都是回文的;每种组合得到一个需要改动的次数,从所有结果中选取最优的即可。代码#include <cstdio>#include <cstring>#define PINF 0x3f3f原创 2016-09-03 15:03:30 · 1842 阅读 · 0 评论