枚举
eIectron
优美的代码是成功AC的第一步。看着那么多博客不再更新,这就是我几年后的状态吗?要是走了就再也不回来了。
展开
-
POJ2965 The Pilots Brothers' refrigerator(又是翻转问题)
翻转啊翻转The Pilots Brothers' refrigeratorTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 24476 Accepted: 9441 Special JudgeDescriptionThe gam原创 2016-09-25 15:47:10 · 303 阅读 · 0 评论 -
POJ 2699 The Maximum Number of Strong Kings(枚举/二分+最大流)
岛娘网络流建模汇总里面的一道题。题意:每个玩家都会和另外所有玩家pk,给出每个玩家的分数(赢得pk则+1分),确保所有分数加起来是完全图的边数。定义strong king为:赢得了所有比自己分数高的玩家(最高分的玩家本身就是strong king)。问最多能有多少个strong king。解法:这种比赛的题目很常见的想法就是,把每个比赛当成一个点,然后这个点去连接另外两个玩家。那么建图就很原创 2017-10-02 18:49:11 · 273 阅读 · 0 评论 -
UVA 10706 Number Sequence(模拟)
首先,输入的i很大,如果想直接不断跑1 12 123这样上去直接找必定是超时的。可以发现,一个数x,他12345……x一共有多少位我们是可以直接求出来的。所以我们每次直接减去这么多个数字即可。所以我们从1开始枚举x,每次i减去他的长度,直到i小于0,就说明答案就在12345……x中,直接暴力枚举即可得到答案。那么这个x可能到多大呢?我们可以估算一下,假设x=1e5,直接用等差数列求和公式,原创 2017-08-27 17:35:37 · 182 阅读 · 0 评论 -
POJ 3279 Fliptile (翻转问题)
题意:给出一个图,然后翻转某个点,他的上下左右四个点也会被翻转,问最小多少步可以全部翻转成0.如果有多种最小步数的翻转答案,输出字典序最小的?解法:挑战上面开关问题的经典题目,我们首先枚举第一行,然后第一行的状态其实已经确定了,那么第二行就看第一行的情况,如果正对着的位置还是1的话,那么第二行必须要翻转一次。然后第三行再看第二行的情况,依次递推即可。然后就要吐槽一下这个字典序了。是我英语不好还原创 2017-08-26 19:38:50 · 293 阅读 · 0 评论 -
2017年多校赛第二场 1011的一些想法
见到这题,还很迷糊,以前一直认为正多边形就是每条边都相等。。。所以好像不好写的样子。并且写出了我还说这怎么搞。。。后来看到怎么这么多人过。。。队友上去直接冲正方形就过了。。。后来发现这种构造方法有问题,因为他每个角度不是相等的。感觉读书读傻了,菱形也不是每个角度相等的但是四条边都相等,从来没有把它归为正四边形一类啊(特殊的正方形除外)。百度了一波正多边形的定义才明白,正多边形是指每条边原创 2017-07-28 14:34:15 · 238 阅读 · 0 评论 -
POJ 2718 Smallest Difference(暴力枚举)
题意:一行中有不超过十个数而且不会重复而且是递增给出的。然后你把他们分成两份组合起来成一个数字,让这两个数字相差最小。输出最小的差值。不能有前导零(除非这个数本来就是0)解法:很明显,如果是奇数的话,我们直接就可以贪心得到答案了。偶数的话,还要分出为2的情况,这样的话就会出现可能有0的情况。答案直接就是后一个减去前一个。然后枚举相邻的两个数a,b(a一开始傻逼了,我打算先判断一下这原创 2017-07-26 19:42:09 · 215 阅读 · 0 评论 -
2017年多校赛第一场 1006 Function(枚举)
这道题所有情况满足的情况下会构成一个环,我们很容易想到枚举环中的一个点,环中的其他点就都可以得出了。这道题是问一共有多少种所有情况都满足的情况。所以我们先预处理a里面的循环节,统计一下长度为i的循环节有几个。然后预处理b里面的循环节,同样统计长度为i的循环节有几个。最后枚举一下,假设a数组中有循环节长度为i,那么在b中枚举循环节为i的因子的。比如j为i的因子,那么此时就会多出j * num原创 2017-07-26 10:20:37 · 453 阅读 · 0 评论 -
HDU 5938 Four Operations(枚举)
http://acm.hdu.edu.cn/showproblem.php?pid=5938题意,给出一串数字,在这串数字中按顺序插入+ - * /,问能得到最大的数字是多少。比如样例,1+2-3*4/5=1.解法:很明显大小为20的字符串,肯定要开long long。如果直接枚举四个位置复杂度就是20^4,会TLE。所以我把它拆开出来,我枚举+和-的位置,记录下若该位置为-时候能得到最大原创 2017-07-21 14:45:33 · 224 阅读 · 0 评论 -
CodeFroces 822C.Hacker, pack your bags!(sorting+线性枚举)
C. Hacker, pack your bags!time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIt's well known that the best wa原创 2017-07-03 22:01:10 · 1599 阅读 · 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 评论 -
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 评论 -
CodeFroces 978D. Almost Arithmetic Progression
解法其实很简单,但是自己写的太挫了,然后就FST了。题意:给定一个长为n的序列,每个数字只能+1,不变,-1三个操作,问最少用多少次操作可以将序列凑为一个等差序列。解法:首先跑一遍整个序列,找到相邻两个序列之差的最大值和最小值。很明显,如果最大值和最小值之间的差值大于4肯定是怎样变化都无解的。如果差值小于4的话,我们从差值的最小值向最大值枚举即可。比如差值为10,那么我们再枚举第一个数的三种情况(...原创 2018-05-16 22:39:48 · 415 阅读 · 0 评论