随笔分类 - 暴力求解
UVa 10755 Garbage Heap (暴力+前缀和)
摘要:题意:有个长方体由A*B*C组成,每个废料都有一个价值,要选一个子长方体,使得价值最大。 析:我们暴力枚举上下左右边界,然后用前缀和来快速得到另一个,然后就能得到长方体,每次维护一个最小值,然后差就是最大值。 代码如下:
阅读全文
UVaLive 3695 Distant Galaxy (扫描线)
摘要:题意:给平面上的 n 个点,找出一个矩形,使得边界上包含尽量多的点。 析:如果暴力那么就是枚举上下边界,左右边界,还得统计个数,时间复杂度太高,所以我们考虑用扫描线来做,枚举上下边界, 然后用其他方法来确定左右边界。我们定义left[i] 表示竖线左边位于上下边界上的点数(不包含在竖线上的点),on
阅读全文
UVaLive 3695 City Game (扫描线)
摘要:题意:给定m*n的矩阵,有的是空地有的是墙,找出一个面积最大的子矩阵。 析:如果暴力,一定会超时的。我们可以使用扫描线,up[i][j] 表示从(i, j)向上可以到达的最高高度,left[i][j]表示(i, j) 的左边界,right[i][j]右边界。 这三个可以用递推来实现。从向下扫描,每次
阅读全文
CodeForces 496D Tennis Game (暴力枚举)
摘要:题意:进行若干场比赛,每次比赛两人对决,赢的人得到1分,输的人不得分,先得到t分的人获胜,开始下场比赛,某个人率先赢下s场比赛时, 游戏结束。现在给出n次对决的记录,问可能的s和t有多少种,并按s递增的方式输出。 析:如果枚举s 和 t,那么一定会超时的,所以我们考虑是不是可以不用全枚举。我们只要枚
阅读全文
CodeForces 359D Pair of Numbers (暴力)
摘要:题意:给定一个正整数数组,求最长的区间,使得该区间内存在一个元素,它能整除该区间的每个元素。 析:暴力每一个可能的区间,从数组的第一个元素开始考虑,向两边延伸,设延伸到的最左边的点为l, 最右边的点为r。那么我们下一点考虑r+1即可, 因为[l, r]之间不会有更优解。 代码如下:
阅读全文
UVa 10214 Trees in a Wood. (数论-欧拉函数)
摘要:题意:给定一个abs(x) <= a, abs(y) <= b,除了原点之外的整点各有一棵树,可以相互阻挡,求从原点可以看到多少棵树。 析:由于a < b,所以我们可以一列一列的统计,第 x 列可以看到的树的个数就是 0 < y <= b中gcd(x, y) = 1的y的个数。 然后就可以分别统计,
阅读全文
UVa 11520 Fill the Square (水题,暴力)
摘要:题意:给n*n的格子里填上A-Z的字符,保证相邻字符不同,并且字典序最小。 析:直接从第一个格子开始暴力即可,每次判断上下左是不是相同即可。 代码如下:
阅读全文
UVaLive 3401 Colored Cubes (暴力)
摘要:题意:给定n个立方体,让你重新涂尽量少的面,使得所有立方体都相同。 析:暴力求出每一种姿态,然后枚举每一种立方体的姿态,求出最少值。 代码如下:
阅读全文
CodeForces 753C Interactive Bulls and Cows (Hard)
摘要:题意:。。。 析:随机判断就即可,每次把不正确的删除,经过几次后就基本剩不下了。 代码如下:
阅读全文
CodeForces 754C Vladik and chat (DP+暴力)
摘要:题意:给定n个人的m个对话,问能不能找一个方式使得满足,上下楼层人名不同,并且自己不提及自己。 析:首先预处理每一层能有多少个user可选,dp[i][j] 表示第 i 层是不是可以选第 j 个user。最后再输出即可。 代码如下:
阅读全文
HDU 1270 小希的数表 (暴力枚举+数学)
摘要:题意:... 析:我们可以知道,a1+a2=b1,那么我们可以枚举a1,那么a2就有了,并且a1+a3=b2,所以a3就有了,我们再从把里面的剩下的数两两相加,并从b数组中去掉, 那么剩下的最小的就是a4,然后依次可以求出a5,a6....由于a最大才是5000,并且保证有唯一解,那么找到一个就直接
阅读全文
HDU 5023 A Corrupt Mayor's Performance Art (据说是线段树)
摘要:题意:给定一个1-n的墙,然后有两种操作,一种是P l ,r, a 把l-r的墙都染成a这种颜色,另一种是 Q l, r 表示,输出 l-r 区间内的颜色。 析:应该是一个线段树+状态压缩,但是我用set暴力过去了。用线段树+状态压缩,区间更新,很简单,就不说了。 代码如下: 线段树:
阅读全文
HDU 2340 Obfuscation (暴力)
摘要:题意:给定一篇文章,将每个单词的首尾字母不变,中间顺序打乱,然后将单词之间的空格去掉,得到一个序列,给出一个这样的序列,给你一个字典,将原文翻译出来。 析:在比赛的时候读错题了,忘记首尾字母不变了,一直WA。暴力求解,去深搜每个单词,做一些恰当的优化,能不进行的就不进行。胡搞的。 代码如下:
阅读全文
HDU 5510 Bazinga (KMP)
摘要:题意:给定 n 个 字符串,让你找出最大的 r,使得存在一个 sl 不是sr的子串(l < r)。 析:KMP算法,不过直接暴力就别想了,肯定TLE,所以我们考虑一下,用两个指针 l, r,如果sl 不是 sr的字串,那么们就可以更新r,继续往后,直到找到最后。 代码如下:
阅读全文
HDU 5944 Fxx and string (暴力)
摘要:题意:给定一个字符串,问有多少个三元组满足 i, j, k组成一个等比数列,并且s[i] = 'y', s[j] = 'r', s[k] = 'x',且j/i ,j/k中至少一个是整数。 析:直接暴力,枚举j,然后去确定 i, k,注意这个 i,k不一定谁大,谁小。 代码如下:
阅读全文
CodeForces 730H Delete Them (暴力)
摘要:题意:给定n个名字,然后让你删除 m 个,且这m个必须满足同一个表达式且其他的不满足,问你能不能找到一个满足条件。 析:很明显首先知道的是这 m 个如果第 i 个位置相同,那么就肯定选这个位置是最好的,如果第 i 个位置不同,那么就一定是 ?,最后再判断,除了m其他的是不是也满足这个式子就好。
阅读全文
CodeForces 730G Car Repair Shop (暴力)
摘要:题意:给定 n 个工作的最好开始时间,和持续时间,现在有两种方法,第一种,如果当前的工作能够恰好在最好时间开始,那么就开始,第二种,如果不能,那么就从前找最小的时间点,来完成。 析:直接暴力,每次都先去看看能不能在最好时间完成,如果不能,就去找最小的时间点。 代码如下:
阅读全文
Gym 100531D Digits (暴力)
摘要:题意:给定一个数字,问你找 n 个数,使得这 n 个数各位数字之和都相等,并且和最小。 析:暴力,去枚举和是 1 2 3...,然后去选择最小的。 代码如下:
阅读全文
Gym 100531B Buffcraft (贪心+暴力+前缀和)
摘要:题意:给定两个加血的方式,一个是直接加多少,另一种是加百分之几,然后你能够你选 k 种,问你选哪 k 种。 析:首先肯定要选加的多的,所以我们先排序,从大到小,然后用前缀和存储一下,再去枚举从第一种和从第二种选 i 个,从另一个中选 k-i的, 注意这个 k 可能大于 m+n,讨论一下。 代码如下:
阅读全文
数据结构 投资经纪人 (Floyd)
摘要:[Submit][Status][Web Board] Description 众所周知,股票经纪人对传言总是有过渡的反映。请你设计开发在股票经纪人中传播假情报的方法,让你的雇主在股票市场上获胜。为了获得最大的效果,你必须以最快的方式传播谣言。你要考虑的是,股票经纪人只相信来自其“可信来源”的信息。
阅读全文