暴力求解
eIectron
优美的代码是成功AC的第一步。看着那么多博客不再更新,这就是我几年后的状态吗?要是走了就再也不回来了。
展开
-
2016蓝桥杯C语言B组第三题
题目为:凑算式 B DEFA + --- + ------- = 10 C GHI (如果显示有问题,可以参见【图1.jpg】) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另原创 2016-04-08 17:39:32 · 1511 阅读 · 0 评论 -
Codefroces 410 A. Mike and palindrome
http://codeforces.com/problemset/problem/798/A题目大意,给出一个字符串,问是否可以变动某个字符使得字符串变成回文串。坑点,exactly。确切的。你必须要改动字符。代码如下:#includeusing namespace std;bool Check(char str[], int len, int mid){ for(int原创 2017-04-22 15:00:24 · 240 阅读 · 0 评论 -
2015北京邀请赛 UVALive7267 Mysterious Antiques in Sackler Museum
呀,再次展示了英文不好的问题。我一直以为是选三个,问是否可以刚好完美塞进第四个矩形里面。因为我看到了这一句Maybe the one who could pick exactly three pieces of those bones to form a larger rectangle was considered smart at that time。但是题意是,选出三个,看看是否可以凑成原创 2017-05-09 16:01:28 · 520 阅读 · 0 评论 -
Codefroces 821B Okabe and Banana Trees(暴力)
http://codeforces.com/problemset/problem/821/B题目很简单,就是给出一个线段,然后在他和x轴,y轴围成的区域中取出一个矩形然后算出他的和,每个点的值是x+y。要求所取矩阵的所有点的值加起来尽量大。我不知道我的猜想是不是对的,就是尽量取中间的点。所以我想到的方法就是暴力,直接每个矩形都暴力出来即可。取出最大值。然后就是这个算等差数列求和的时候会有爆原创 2017-06-29 14:28:56 · 313 阅读 · 0 评论 -
CodeFroces Round 423 B. Black Square(暴力枚举)
http://codeforces.com/contest/828/problem/B题目大意,给出一个n*m的纸,里面的方格为白色或者黑色,要求描最少的白色格子使得黑色为一个正方形。如果不存在这种解法则输出-1.解法:先得到黑色格子的最上最下最左最右的坐标,然后枚举。代码如下:#includeusing namespace std;char G[105][105];int原创 2017-07-12 19:31:44 · 328 阅读 · 0 评论 -
南华OJ 重排串
http://www.acmusc.cn:9988/problem/212/题意很容易明白。如果他没有要求字典序最小,那么我们直接用优先队列靠着每个字母出现的频率次数逐位贪心就可做出来。但是现在他要字典序最小,这就是另外一个问题了。首先我们知道,如果一个字符串,长度为len,而其中某个字母的个数n,如果n > (len + 1) / 2,那么这个字符串想排列出题目所要求的是不可能的。原创 2017-07-05 16:46:43 · 1104 阅读 · 0 评论 -
CodeFroces 834B. The Festive Evening(暴力)
题意:给出26个门口,标号为A到Z,你有n个客人,每个客人都会去某个门进入城堡,每个门在需要进这个门的第一个人开始开着,到最后一个要进这个门的人才会关闭。如果某一时刻开着的门的数量超过k,那么就会有坏人溜进去城堡。问是否有这样不安全的时刻,有输出yes,否则输出no。解法:只需要枚举一下26个字母的开始和结束的位置,存起来。然后再次枚举每一个时间点,看看是否会有超过k个门开着。算算复杂度为原创 2017-07-31 09:55:43 · 343 阅读 · 0 评论 -
POJ 2718 Smallest Difference(暴力枚举)
题意:一行中有不超过十个数而且不会重复而且是递增给出的。然后你把他们分成两份组合起来成一个数字,让这两个数字相差最小。输出最小的差值。不能有前导零(除非这个数本来就是0)解法:很明显,如果是奇数的话,我们直接就可以贪心得到答案了。偶数的话,还要分出为2的情况,这样的话就会出现可能有0的情况。答案直接就是后一个减去前一个。然后枚举相邻的两个数a,b(a一开始傻逼了,我打算先判断一下这原创 2017-07-26 19:42:09 · 215 阅读 · 0 评论 -
2017年多校赛第二场 1011的一些想法
见到这题,还很迷糊,以前一直认为正多边形就是每条边都相等。。。所以好像不好写的样子。并且写出了我还说这怎么搞。。。后来看到怎么这么多人过。。。队友上去直接冲正方形就过了。。。后来发现这种构造方法有问题,因为他每个角度不是相等的。感觉读书读傻了,菱形也不是每个角度相等的但是四条边都相等,从来没有把它归为正四边形一类啊(特殊的正方形除外)。百度了一波正多边形的定义才明白,正多边形是指每条边原创 2017-07-28 14:34:15 · 238 阅读 · 0 评论 -
POJ 3187 Backward Digit Sums(暴力)
题意:给定一个n和m,然后你会有一个序列,里面有n个元素,且这n个元素是1到n的。按照题中树塔的形状,给出了最后的值m,问初始序列是怎样的。如果有多个答案输出字典序最小的。且没有说如果没有答案输出啥,那就默认这个肯定有解。解法:首先我算了算最上层每个值对m的贡献,发现这是一个杨辉三角。所以先预处理一下得到一个杨辉三角,然后直接枚举上面n个数字,n最大为10,最大运算量也就10!=3e6,所以这原创 2017-07-29 09:41:02 · 182 阅读 · 0 评论 -
POJ 3050 Hopscotch(暴力)
题意:给出一个5*5的矩阵,然后你可以任意选一个点开始跑,当然只有上下左右四个方向,跑过的点是可以重复跑的。跑出一个长度为6的数字,问有多少个不同的数字、解法:一个5*5的矩阵也就是我们最多有25个入口,然后每层有四个状态数,最多六层,那么总的复杂度是O(25 * 6^4)。这很明显,直接跑就好了。代码如下:#include#include#include#includeusi原创 2017-07-29 09:45:34 · 288 阅读 · 0 评论 -
HDU 5583 Kingdom of Black and White(模拟)
题意:给出一个01串,他的价值就是每段连续的0或者1的个数的平方。现在至多一次机会变换一个位置的0或者1,问能得到最大的价值是多少。解法:很明显,让大的尽量大,这是一种贪心思想,但是仔细分析发现又不是绝对的,要看答案的贡献度,所以我们采取暴露枚举的方法即可。首先预处理出每个串的长度。然后暴力,使得左边-1自己+1,或者右边-1自己+1,看是否可以更新最大值。(注意边界)最后输出答案原创 2017-09-14 20:18:23 · 186 阅读 · 0 评论 -
Codefroces 410 B.Mike and strings
http://codeforces.com/problemset/problem/798/B题目大意:给出n个字符串,可以把每个字符串的第一个字符加到字符串最后。问全部相同的话需要的最少操作次数是多少。解法:因为只有50个字符串,字符串最大长度为50,直接枚举。复杂度O(n^3)代码如下:#includeusing namespace std;int main(){ int原创 2017-04-22 14:56:37 · 214 阅读 · 0 评论 -
HDU 5328 Problem Killer
这道题写了几个小时,一直T,有两方面原因1,这题目时限卡的很紧,多一个常数都不行,这实在是太无聊了。2,自己太蠢了,这道题目虽然没有说明n>=1,但是自己应该猜到,我把读入第一个数字放在了if(n==1)后面,导致了一直TLE,因为你下一个读入读n的时候就会读到这个序列的第一个数字,使得整个数据没有读完然后就出不来结果。代码如下:#include#include#include原创 2017-05-04 14:23:18 · 275 阅读 · 0 评论 -
CodeFroces 363 div2 A. Launch of Collider(水题不水/(ㄒoㄒ)/~~)
A. Launch of Collidertime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere will be a launch of a new, powerful and u原创 2016-07-20 10:09:16 · 456 阅读 · 0 评论 -
六个循环暴力搜索—寻找矩形
A - OrchestraTime Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64uDescriptionPaul is at the orchestra. The string section is arranged in an r × c rectangular gr原创 2016-04-06 22:43:53 · 1034 阅读 · 0 评论 -
CodeFroce 369div2 B - Chris and Magic Square
B. Chris and Magic Squaretime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputZS the Coder and Chris the Baboon原创 2016-08-30 12:12:10 · 334 阅读 · 0 评论 -
POJ1753 Flip Game(翻转问题且纯枚举暴力翻转)
Flip GameTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 40726 Accepted: 17687DescriptionFlip game is played on a rectangular 4x4 field with two-sided原创 2016-09-15 17:35:55 · 694 阅读 · 0 评论 -
HDOJ5907(BC上分之旅却死在了水题上)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5907题目大意就是说,给定一个字符串,找出里面q连续的地方,得到一个数,比如样例quailtyqqq第一个q只有自己一个,那么就只有一种排列方式,到了后面的qqq,排列方式就有六种了,单独q排一次,三种,每相邻的两个q排一次,那就是两次,再来就是三个q一起排,又是一次原创 2016-10-02 17:32:54 · 383 阅读 · 0 评论 -
HDU5610Baby Ming and Weight lifting(庆祝自己当年BC第一题过了)
http://acm.hdu.edu.cn/showproblem.php?pid=5610hdu上的题目依然不能复制过来的,但是文章这么空总感觉好奇怪。题目就是说,给出三个数字a,b,C,a和b是barbell disks,也就是举重那些左右两边的磅,C就是要求最后靠着这两种barbell disks合起来要达到的重量。这题并不难,当年却是死活想不出来那种。首先,C如果是奇数,那原创 2016-10-30 00:48:48 · 284 阅读 · 0 评论 -
UVA 725 Division
因为这个蓝翔杯,我发现我暴力还是太差了,所以决定开始把紫书上的暴力都做一做。这道题,不可能枚举十个数字,我们知道了n,枚举除数,得到被除数,验证一下即可。坑的地方在于,他要求两个输出之间有空格,但是又不是指每个输出后面都有空格,解决方法就是,先定义一个k=0,进入循环后判断k,这样就可以跳过第一次输出空格,后面只要在进入循环就说明前面有个样例已经输出答案,然后输出空行。#inc原创 2017-04-09 10:56:54 · 174 阅读 · 0 评论 -
UVA 11059 Maximum Product
这道题目由于n很小,直接枚举区间,需要的是起点和终点,然后再用一个循环得到这个区间的乘积。所以复杂度是O(n^3)。需要注意的是,由于n最大为18,s最大为10,所以乘起来最大可以达到10^18,会爆int,用long long即可。还需要注意的是,如果乘积不是正数,就输出0。特判一下n == 1 && a[i] 代码如下:#includeusing namespace std;原创 2017-04-09 11:51:21 · 201 阅读 · 0 评论 -
UVA 10976 Fractions Again?!
这道题实在是太可怕了,我一直卡着精度过不去。后来看了大神的代码才明白是怎么一回事。题目给出一个数字k,求所有符合1/k=1/x + 1/y的等式。我们枚举y,从2k到k这段,查看是否有x符合即可。我一开始是判断得到的x是否为整数,但是这实在是不好判断,你需要去判断x和x+1,因为有可能得到的x是2.99999,那么取整数就变成了2,所以我们还需要判断3是否成立。然后一直卡精度?反正原创 2017-04-10 19:02:26 · 264 阅读 · 0 评论 -
UVA 524 Prime Ring Problem
题目要求组成一个素数环,相邻两个相加为素数。按照字典序输出可行的方案。数据最大是16,显而易见,组成素数环的要求十分苛刻,我们直接手动把可能用到的素数打出来,就是2 ,3 ……31,然后开始dfs去跑这1 - n,如果不符合条件就回溯,这样会大大减少运算量。从最初的16!降低了多少我也说不清楚,反正1s就能把1 - 16的素数环跑完了,比16还小的n更加不在话下。代码如下:#inclu原创 2017-04-10 22:04:13 · 239 阅读 · 0 评论 -
UVA 129 Krypton Factor
我实在是想不到怎么写比较好,我决定敲个暴力看一看,没想到就过了。而判断加入一个字母后是否会导致和前面的重复直接暴力看就好了,最多是80个字符,那么暴力的次数为40 + 39 + …… + 1 = 820,也不多。。。然后就是不断递归的过程了。代码如下:#includeusing namespace std;int n, l;int a[10005];bool Check(int x原创 2017-04-11 16:45:11 · 242 阅读 · 0 评论 -
CodeFroces 978D. Almost Arithmetic Progression
解法其实很简单,但是自己写的太挫了,然后就FST了。题意:给定一个长为n的序列,每个数字只能+1,不变,-1三个操作,问最少用多少次操作可以将序列凑为一个等差序列。解法:首先跑一遍整个序列,找到相邻两个序列之差的最大值和最小值。很明显,如果最大值和最小值之间的差值大于4肯定是怎样变化都无解的。如果差值小于4的话,我们从差值的最小值向最大值枚举即可。比如差值为10,那么我们再枚举第一个数的三种情况(...原创 2018-05-16 22:39:48 · 414 阅读 · 0 评论