随笔分类 -  暴力与搜索

摘要:题意:给定一个 N * N(3 <= N <= 10000)的矩形区域,左下角为(0,0),右上角为(N,N),现在要从左下角走到右上角,但是有 k(k <= 100)个监视器,每个监视器的监视范围都是统一的,现给定监视范围可能出现的种类与概率,求能够逃出去的概率。(计算距离时均用曼哈顿距离) 1、 阅读全文
posted @ 2016-11-23 00:21 TianTengtt 阅读(283) 评论(0) 推荐(0)
摘要:题意:田忌和齐王都有 n(n <= 1000)匹马,二者进行 n 轮赛马,赢一局+200,平一局得 0,输一局 -200,求田忌最多能赢多少钱。 贪心,先将田忌和齐王的马分别排序,然后最上等与最上等比,最下等与最下等比,如果有能赢的则+200,如果无法满足条件,则用田忌的最下等与齐王的最上等比(故意 阅读全文
posted @ 2016-11-22 15:32 TianTengtt 阅读(195) 评论(0) 推荐(0)
摘要:题意:有个音乐播放器有乱序功能,可以随机播放1 ~ s首歌曲,每次随机播放完后再次打乱顺序随机播放(在播放完这一组的歌曲之前,不会再次乱序,直到全部播完)。现截取一段记录,给定播放的歌曲数 s 以及这段记录的长度 n ,然后输入这段记录,根据这段记录,求随机排序发生的时刻有几种可能。(1 <= s, 阅读全文
posted @ 2016-11-03 20:15 TianTengtt 阅读(152) 评论(0) 推荐(0)
摘要:题意:n(3 <= n <= 10000)个结点组成一个圈,求匹配(即没有公共点的边集)的个数。 找规律为斐波那契的性质,因为数太大所以用的java大数。 阅读全文
posted @ 2016-11-02 22:05 TianTengtt 阅读(206) 评论(0) 推荐(0)
摘要:题意:输入n(1 <= n <= 1000),输出有n个结点且每个深度中所有结点的子节点数相同的树有多少种。 根据题意,其实要求每个子树都相同。 一个结点当作根节点,还剩下n - 1个结点,枚举n - 1的因子(因子当作紧邻根结点的子树中的结点数),然后将所有因子的答案相加即可。 代码如下: 阅读全文
posted @ 2016-11-02 21:09 TianTengtt 阅读(192) 评论(0) 推荐(0)
摘要:题意:把一块木板分成n块(1 <= n <= 20000),锯完后的这n块已经给你,你每次可以把一块木板锯成两块,开销为两块之和,求最小的开销。 哈夫曼树直接每次选最小的两块木板即可。 代码如下: 阅读全文
posted @ 2016-11-01 14:38 TianTengtt 阅读(150) 评论(0) 推荐(0)
摘要:题意:给定一条 L 长的路(1 <= L <= 10^6),途中有 n 个加油站(1 <= n <= 10^4),其中第 i 个加油站在距离终点Ai(1 <= Ai <= L)距离的地方,可以加Bi(1 <= Bi <= 100)单位油,设一单位距离耗一单位油,起点时有P(1 <= P <= 10^ 阅读全文
posted @ 2016-11-01 14:17 TianTengtt 阅读(171) 评论(0) 推荐(0)
摘要:题意:给定h * w(1 <= h, w <= 10^4)的区域,区域内的坐标范围为0~h和0~w,然后给定区域内n个点(0 <= n <= 100),求在区域内一个不包含点的最大面积的正方形(但点可以在正方形边界上),输出左下角坐标及边长(多解则任意输出)。 1、找出在h方向的所有边界; 2、二重 阅读全文
posted @ 2016-10-27 19:26 TianTengtt 阅读(430) 评论(0) 推荐(0)
摘要:题意:给定n(1 <= n <= 10000)个正整数,把它们划分成尽量少的严格递增序列,如果有多解,尽量让这些序列中最大长度最小。 序列的个数最少肯定为,出现最多的数字的次数,然后不断向其中填数即可。 阅读全文
posted @ 2016-10-26 19:08 TianTengtt 阅读(158) 评论(0) 推荐(0)
摘要:题意:给定一个n(1 <= n <= 10^5)长度的序列,其中有不确定的数字为'?',从前往后,每相邻k项加起来可得到一个n - k + 1长度的新序列,求是否存在一种解满足: 1、使这个n - k + 1的新序列递增; 2、如果有多解,求一种解使的所有数绝对值加起来最小。 若存在,则输出这个序列 阅读全文
posted @ 2016-10-25 16:52 TianTengtt 阅读(166) 评论(0) 推荐(0)
摘要:题意:给定一个n * n(1 <= n <= 10)的网格,有些已经填上了一些大写字母,需要补充完所有的字母,使每两两相邻的格子中的字母不同,且从上至下,从左至右,组成一个字符串后字典序最小。 由于组成字符串后的长度都为n * n,故字典序越往前的字母决定的优先级越大,所以贪心即可,从上到下,从左到 阅读全文
posted @ 2016-10-25 11:30 TianTengtt 阅读(330) 评论(0) 推荐(0)
摘要:题意:有F + 1(1 <= F <= 10000)个人分N(1 <= N <= 10000)个圆形派,每个人得到的派面积相同,且必须是一整块(不能够两个甚至多个派拼在一起),求每个人最多能得到多大面积的派。(误差最多到0.001) 因为答案是小数类型的,并且N高达10000,故不可暴力枚举。 可以 阅读全文
posted @ 2016-10-25 11:29 TianTengtt 阅读(345) 评论(0) 推荐(0)
摘要:题意:给你两个长度相同的字符串,输出一个长度与它俩相同,且字典序位于两者之间(不可与其中一者相同)的字符串,若不存在则输出“No such string”。(输入保证字典序第一个严格小于第二个,且长度相同) 水题,让最后一个加一个单位的字典序然后检查是否符合条件即可(注意为'z'的时候要进位,若长度 阅读全文
posted @ 2016-10-25 11:26 TianTengtt 阅读(413) 评论(0) 推荐(0)
摘要:题意:输出第n(1 <= n <= 10^100000)大的偶数长度的回文数。(最小的为11) 因为长度是偶数,所以前后两半之间是相互对称的,又因为一个数字的大小主要取决于较高位数的大小,所以数字的前一半决定数的大小,从1开始,1,2,3……对称即可得11,22,33…… 所以将数正着输出后再倒着输 阅读全文
posted @ 2016-10-25 11:25 TianTengtt 阅读(342) 评论(0) 推荐(0)
摘要:题意:将一个n(1 <= n <= 100)个元素的序列排成非递减序列,每次操作可以指定区间[ L,R ](区间内元素个数为偶数),将区间内第一项与第二项交换,第三项与第四项交换,第五项与第六项……在2W次内完成排序,输出每次操作。 瞎搞即可,不断检查相邻元素是否满足 前者>=后者,不满足即交换,直 阅读全文
posted @ 2016-10-25 11:24 TianTengtt 阅读(1146) 评论(0) 推荐(0)
摘要:题意:给定一个 n (1 <= n <= 10^6),求(0 ^ p0) + (1 ^ p1) + (2 ^ p2) +…… + (n ^ pn) 的最大值,其中p0 ~ pn为 0 ~ n 中的数,且每个数只利用一次。 从n ~ 0枚举所有的数,对于每个数找它异或后得到二进制都是 1 的数或者 1 阅读全文
posted @ 2016-10-25 11:21 TianTengtt 阅读(403) 评论(0) 推荐(0)
摘要:题意:给定n (1 <= n <= 2*10^5) 个骰子,给定每个骰子最大可以掷出的最大数(最小数始终为1),给定所有骰子掷出的点数和A,求每个骰子不可能掷出的点数个数。 考虑最大和最小情况,作差即可(详情见代码注释) 阅读全文
posted @ 2016-10-25 11:20 TianTengtt 阅读(341) 评论(0) 推荐(0)
摘要:题意:给定一个长度为 n (1 <= n <= 10^6 ) 的01串,求有多少连续子序列中包含 k 个 1。 从前往后记录到第 i 个元素存在了多少个 1,然后从前往后找个数 >= k 的元素,再找 - k 与 - k + 1 之间与多少个元素加入结果即可。 阅读全文
posted @ 2016-10-25 11:17 TianTengtt 阅读(122) 评论(0) 推荐(0)
摘要:题意:给定 n 个数字,给定一个数 k ,求至少需要添加几个数才能使这 n 个数的中位数等于 k (与数学上的中位数概念不同的是,有 n 个数,下标为 1 ~ n,则中位数为排序后的第 (n + 1) / 2 个数)。 由小到大排序后,先找到最后一个小于 k 的位置,再找到第一个大于 k 的位置,那 阅读全文
posted @ 2016-10-25 11:16 TianTengtt 阅读(195) 评论(0) 推荐(0)
摘要:题意:每组共4个点,4个点分别有起始坐标和轴心坐标,每个点每次都可以绕自己的轴心坐标90°,问能否用最少次数内4个点组成一个正方形,若能则输出最少次数,否则输出-1。 每个点有4个方位可以选择,共4个点,4 * 4 * 4 * 4 = 256种,暴力即可 阅读全文
posted @ 2016-10-25 11:15 TianTengtt 阅读(129) 评论(0) 推荐(0)