
常用技巧或经典例题
文章平均质量分 70
-sky-
这个作者很懒,什么都没留下…
展开
-
例题1.5 蚂蚁 UVA - 10881 等效变换+排序
传送门 题目大意:一根长度为L的杆上有N只蚂蚁,每只蚂蚁要么往左爬,要么往右爬,速度为1.两只蚂蚁相撞,同时掉头。杆子最左端为0,问T间时各蚂蚁的位置和方向。 解题思路:两只蚂蚁相撞与穿过效果一样。因此我们直接计算蚂蚁相遇直接穿过的结果即可。但是我们需要记录每只蚂蚁的方向,其实我们按照穿过计算时,朝左的个数和朝右的个数以及顺序不会变,但是蚂蚁的位置变了,但是真正蚂蚁的相对位置没原创 2017-08-08 15:46:54 · 277 阅读 · 0 评论 -
例题1.15 UVALive-3902 树上的搜索
传送门题目大意:n台机器连成一个树状网络,叶节点是客户端,其他节点是服务器,一开始只有一台服务器提供一种服务,但它只能覆盖k的距离内的客户端,你让尽量少的服务器提供这项服务,使得所有的客户端都被覆盖。解题思路:我们将这个无根树转换为有根树,那么提供服务的服务器就是根节点,那么k深度以内的叶节点都被覆盖了,因此我们只要找k以下的即可。从最深的节点开始找,它需要被覆盖,距离它k距离的服务器提供服务是最...原创 2017-08-15 11:39:28 · 475 阅读 · 0 评论 -
Message CodeForces - 157C 滑动门技巧
传送门 题目大意: 有一个字符串s, 从中任取一个子串, 然后改变尽量少的次数使它变成字符串u。 改变规则如下(修改取的子串, 不是字符串s): 在字符串首或尾添加一个字符 在字符串首或尾删去一个字符 在字符串任意一个位置修改一个字符 求修改的最少次数 解题思路: 找一个子串,与目标串对应位置最多有几个相同的(也就是要改动最少的), 这样我们总是匹配与原创 2018-02-06 10:46:44 · 220 阅读 · 0 评论 -
codevs 1044 拦截导弹
传送门 解题思路:首先求解最多拦截多少导弹,每个导弹有两种情况,拦截或者不拦截,01背包问题,但是空间复杂度比较高。我们可以考虑这样一个问题,拦截的最后一个导弹一定时最小的,因此我们从后往前找,只要这个导弹之后没有更小的,那么这就是最后一个导弹,如果有更小的,那这个就是更小的那个导弹的前一个。所以我们往前遍历,每次都找比当前高度更低的导弹里拦截的最多的数+1即可。 然后求解需要几套设备:每个原创 2017-09-01 22:31:24 · 214 阅读 · 0 评论 -
Tour UVA - 1347 dp
传送门 题目大意:给定n个坐标(x,y),按照x地等的顺序给出, 并且保证x都不相同,均为正整数。你的任务是设计一条路线,从最左侧出发,达到最右侧, 再返回最左侧那个点,所有点恰好经过一次。并且总路线距离长度最短。 解题思路:可以认为从左左侧有两个人出发,每个人除了最左侧和最右侧的点外不会走相同的点,假设两个人走到的点分别为i, j(横坐标x)。dp(i, j)表示从1~max原创 2017-09-16 17:08:49 · 236 阅读 · 0 评论 -
例题1.19 老式计算器 Calculator Conundrum UVA - 11549 Floyd判圈法
传送门 题目大意:一个老式计算器,只能显示n位,于是输入一个整数k,一直平方,如果溢出,只显示前n位。然后这个n位数继续平方,所有的数中输出最大的那个。 解题思路:由题目可知一定有无限循环。因此只要找到循环节即可。标记一下是否出现过,如果出现过那么平方以后结果是一样的。 AC代码: #include #include #include #include #include原创 2017-08-29 22:52:59 · 457 阅读 · 0 评论 -
Fabled Rooks UVA - 11134 等效转换
传送门 题目大意:你的 任务是在一个n*n的棋盘上放置n个车,使n个车不能相互攻击(既都不同行也不同列),每个车都必须在一定的矩形范围内放置,输入四个值,分别为左上角和右下角的横纵坐标。按照输入顺序输出车的放置位置。 解题思路: 每个车的行和列没有 关系,也就可以分别讨论行和列。单独看行,就变成了一维问题,1-n范围内放置n个物品,每个物品都有自己的范围。贪心法。优先给结束早的区间安排位置即原创 2017-09-07 23:00:02 · 201 阅读 · 0 评论 -
Spreading the Wealth UVA - 11300 找规律+数学推导
传送门 题目大意:有n个人围成一圈,每个人有ai个金币,每个人可以向相邻的人传金币。求出需要传递最少的金币数目使得每个人手中的金币数相等,数据保证金币总数时n的倍数。 解题思路: 我们设第i个人向前一个人传递xi个金币。并且我们可以求出每个人平均有多少个金币:M = sum/n; 那么: A[i] + x[i+1] - x[i] = M =原创 2017-08-07 08:45:45 · 212 阅读 · 0 评论 -
Face The Right Way POJ - 3276 简单开关问题
传送门 题目大意:白书例题p150 N头牛拍成一排, 没有牛有头朝前和头朝后,一个机器可以一次反转连续的几头牛, 但需要固定个数K, 也就是每次都反转K头牛,求解反转的最少的次数M和对应的K。注意:反转的牛不能少于K,也就是说在开头和结尾也必须反转K头。 解题思路:递归思想,将问题分解为更小的问题。如果开头第一个牛头朝前,那么其最少的次数就是第二头牛到n-1头牛时最小的次原创 2017-08-04 16:57:24 · 280 阅读 · 0 评论 -
例题1.12 组装电脑 Assemble UVALive - 3971 模拟或者二分
传送门 题目大意:你有b块钱,要组装一台电脑,给n个配件,每个配件给出种类,名称,价格,品质。电脑整体水平取决于最差的哪个配件的品质,因此要求最低的品质的配件的品质尽可能的大。输出组装的电脑配件里面最低的品质的最大值。 解题思路:首先我想到的是都买最便宜的,然后有钱就把最差的换的稍微好一点。不断更新。因为每次提升都是把最差的变好,那么就会更新到最大值。更换配件时我们都买最便宜的换掉当前品质最差原创 2017-08-12 13:21:56 · 358 阅读 · 0 评论 -
例题1.7 偶数矩阵 Even Parity UVA - 11464 部分枚举+递推
传送门 题目大意:给你一个n*n的01矩阵,你的任务时把尽量少的0变成1,使得每个数字的上下左右之和为偶数。只算存在的 解题思路:全部枚举时不可能的,枚举第一行的变化,那么第二行行就可以递推出来。(因为第一行上面一行不存在,所以是三个的和)。 那么第三行就可以根据第一行和第二行推出。 AC代码: #include #include #include #include #i原创 2017-08-10 17:48:20 · 446 阅读 · 0 评论 -
Robot HDU - 4576 dp+滚动数组
传送门 题目大意:有一个环,有n个格子,编号为1~n; 一开始1的位置上有一个机器人,每次给他一个指令m,它移动m距离,但是它等可能的向左或者向右。求m条指令之后在l和r之间的可能性。 解题思路:这个题卡时间卡的非常紧,超时了两次。简直崩溃,但是题目本身不难。每读取一个指令,将数组内概率更新,每个位置都可能向前或者向后x,因此把自己的概率乘以0.5加给那个格子即可。但是每次都应该初始化为零原创 2017-08-18 14:10:02 · 254 阅读 · 0 评论 -
2015年第七届蓝桥杯C/C++B组第十题
最大比例 题目描述: X星球的某个大奖赛设了M级奖励。每个级别的奖金是一个正整数。 并且,相邻的两个级别间的比例是个固定值。 也就是说:所有级别的奖金数构成了一个等比数列。比如: 16,24,36,54 其等比值为:3/2 现在,我们随机调查了一些获奖者的奖金数。 请你据此推算可能的最大的等比值。 输入格式: 第一行为数字 N (0<N<100),表示接下的一行包含N个...原创 2018-03-23 19:24:16 · 380 阅读 · 0 评论