
算法设计-排序检索
文章平均质量分 57
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 jerakrs@qq.com
展开
-
uva 10041 Vito's Family(检索)
题目连接:10041 - Vito's Family题目大意:给出所有邻居的位置,要求找到一个位置,使得该位置到所有邻居家的总和最小。解题思路:就是单纯的找中位数,记得先排序, 然后将数组遍历一遍求的最小值。#include #include #include #include using namespace std;const int N = 30原创 2013-08-24 00:49:36 · 1150 阅读 · 0 评论 -
uva 10827 - Maximum sum on a torus(连续最大和问题)
题目连接:10827 - Maximum sum on a torus题目大意:给出一个矩阵,矩阵的上下边, 左右边使联通的, 要求在这个矩阵上找到一个子矩阵, 要求该子矩阵上所有元素的和最大。解题思路:uva108 - Maximum Sum的升级版,将矩阵复制三份, 用四层循环遍历过所有满足条件的区间,遍历的过程中记录出现的最大值。#include #原创 2013-08-26 10:54:07 · 1436 阅读 · 0 评论 -
uva 10132 File Fragmentation(检索)
题目连接:10132 File Fragmentation题目大意:有n个有0, 1 组成的文件, 每个文件被随意分两片,现在给出所有的2n碎片,要求找出原有的序列。解题思路:右两端寻找,最短的一定匹配最长的。#include #include #include #include #include using namespace std;const原创 2013-08-22 23:42:29 · 1233 阅读 · 0 评论 -
uva 1526 - Edge Detection(二分+排序)
题目链接:uva 1526 - Edge Detection题目大意:先给出width,表示说一个w*w的图片,每个位置上的数值代表该位置的像素,现在有一种算法用于装换图片,转换后图片的表示方式为,每个位置上的数值为原先图上位置的像素与周围8个位置像素之差的绝对值的最大值。然后图的表示给出和要求输出方式为run length encoding,即由若干对两位数组成,分别表示像素原创 2014-04-07 21:29:11 · 1315 阅读 · 0 评论 -
uva 10602 Editor Nottoobad(排序)
题目连接:10602 Editor Nottoobad题目大意:要输入n个单词,现在有三种操作, 1、输入一个字符,需要按下一次按键。 2、通过声控删除一个字符。3、通过声控复制一遍上面的单词。现在要求按最少的按键来完成输入,并且输出输入的顺序。解题思路:因为有复制这一功能,所以每次输入一个单词之后要找另一个与它相似度最近的一个。比较两个单词对应的不同字符个数,对于两个不原创 2013-08-30 21:02:24 · 1365 阅读 · 3 评论 -
Codeforces 439D Devu and his Brother(排序)
题目链接:Codeforces 439D Devu and his Brother题目大意:Devu和他的哥哥互相深爱着对方,我确信他们是搞基的,为此我还去查了一下Devu是男人名还是女人名,但是后来发现His Brother,所以可以证明,他们就是搞基的。题目很简单,父亲给了他们两个人分别一个数组。但是Devu希望自己最小的数都可以不必哥哥最大的数小,现在对数组中的数有两种操作,一原创 2014-06-15 23:05:37 · 1786 阅读 · 1 评论 -
uva 1444 - Knowledge for the masses(高效)
题目链接:uva 1444 - Knowledge for the masses题目大意:给出R和L,R表示有R行,L表示一行的最大长度。对于每一行,给出n,然后是n个数,arr[i]为0表示空格,长度为1,否则表示书架,长度为arr[i]。现在人要从上边走到下边,问说最少移动几个书架,并且输出可以通过的路径坐标。解题思路:c[i]表示第i个坐标有多少行可以通过,当c[i]==原创 2014-07-26 21:22:58 · 1291 阅读 · 0 评论 -
hdu 4883 TIANKENG’s restaurant(区间选点)
题目链接:hdu 4883 TIANKENG’s restaurant题目大意:n表示有n波客人,给定每波客人的人数,到达时间,离开时间,问说店里人数的最大值。解题思路:区间选点,也可以用数组模拟,因为时间只有24*60#include #include #include using namespace std;const int maxn = 10005;str原创 2014-07-28 14:02:09 · 967 阅读 · 0 评论 -
hdu 4915 Parenthese sequence(高效)
题目链接:hdu 4915 Parenthese sequence题目大意:给定一个序列,由(,),?组成?可以表示(或者),问说有一种、多种或者不存在匹配。解题思路:从左向右,从右向左,分别维护左括号和右括号可能的情况,区间上下界。如果过程中出现矛盾,则为None,否则要判断唯一解还是多解。枚举每个问号的位置,假设该问号可为左右括号,则有多解。#include #inclu原创 2014-08-05 22:32:17 · 1222 阅读 · 0 评论 -
Codeforces 412B Network Configuration (排序)
题目链接:Codeforces 412B Network Configuration题目大意:貌似是由n太不同计算速度的电脑,现在有tiao原创 2014-04-20 12:49:34 · 1010 阅读 · 0 评论 -
uva 10763 Foreign Exchange(排序比较)
题目连接:10763 Foreign Exchange题目大意:给出交换学生的原先国家和所去的国家,交换成功的条件是如果A国给B国一个学生,对应的B国也必须给A国一个学生,否则就是交换失败。解题思路:给出数据 10x y1 22 13 44 3100 200200 10057 22 571 22 1原创 2013-08-22 23:23:21 · 1946 阅读 · 0 评论 -
Codeforces 383B Volcanoes(排序+检索)
题目链接:Codeforces 383B Volcanoes题目大意:给出n和m,表示在一个n*n的图上,从(1,1)开始移动,每可以向下或向右移动,问是否可以移动(n,n),m表示说有m块障碍物,给出它们的坐标。解题思路:将障碍物按照y坐标大小后按照x坐标排序,然后对于每一列考虑可以移动到的区间。ans始终等于2*n-2。#include #include原创 2014-02-07 17:55:41 · 1932 阅读 · 0 评论 -
uva 507 Jill Rides Again(检索)
题目连接:507 - Jill Rides Again题目大意:简单说就是求连续序列的最大和, 但是不同的是要输出从第几个开始到第几个结束。解题思路:只要在分治的时候一起返回最大值的区间就可以了, 但是要注意下连续序列被分割成左右两边时考虑最大求解时候的下标问题。#include #include const int N = 20005;int maxs原创 2013-08-24 00:55:20 · 1151 阅读 · 0 评论 -
uva 108 - Maximum Sum(检索)
题目连接:108 - Maximum Sum题目大意:对应矩阵的值为矩阵中所有元素的和, 要求所给出的矩阵中, 和最大的子矩阵,输出最大和。解题思路:可以看成是求若干次连续序列最大和,第一次求1行,第二次就是1 和2 行对应元素的和的数组,第三次就是1 、 2 和3 行、、、、、、然后知道1 加到n行, 就换2行, 然后是2 + 3 行,以此类推。#includ原创 2013-08-24 01:03:12 · 1184 阅读 · 0 评论 -
uva 10057 A mid-summer night's dream.(检索)
题目连接:10057 A mid-summer night's dream.题目大意:找到使得给出算式最小的值,如果有多个,输出最小的,然后在输出所给的数组A中有多少个数值可以满足算式最小(相等的要分开计算),随后输出有多少个整数满足算式值虽小(没有在数组A中出现也要计算)。解题思路:本体主要题目转换后就是找数组A的中位数,如果给出的n为奇数, 所要找的就是中间的那个值,然原创 2013-08-23 00:05:02 · 1161 阅读 · 0 评论 -
uva 10881 - Piotr's Ants(排序)
题目链接:10881 - Piotr's Ants题目大意:在一个长为L的木棒上有n只蚂蚁,给出蚂蚁的初始位置以及方向,问说移动T秒后各个蚂蚁的位置以及状态,如果两只蚂蚁在移动的过程中相撞,则会同时掉头。解题思路:问题只要解决说两只蚂蚁相撞的情况就差不多了,其实从整体上来看(不考虑蚂蚁的编号),“相撞”和对穿而过“是一样的,只不过移动到那个位置的蚂蚁并不是先前的那只。所以说原创 2013-12-02 19:41:36 · 1268 阅读 · 0 评论 -
uva 10026 Shoemaker's Problem(排序)
题目连接;10026 Shoemaker's Problem题目大意:有一个鞋匠接了n双要修的鞋子, 修每双鞋需要d天,每推迟一天修将亏损val元,问按什么样的顺序修鞋可以保证损失最少,如果有多种情况输出字典序最小的。解题思路:最开始把损失钱数最大的放在前面,后来发现每层子问题是相互有影响的,所以不能从整体的损失来看,所以后来改成对两个鞋的装态比较,只要考虑哪双鞋放前和哪双原创 2013-08-23 00:14:45 · 1455 阅读 · 0 评论 -
uva 10905 Children's Game (排序)
题目连接:uva 10905 Children's Game题目大意:给出n个数字, 找出一个序列,使得连续的数字组成的数值最大。解题思路:排序,很容易想到将数值大的放在前面,数值小的放在后面。可是,该怎么判断数值的大小(判断数值大小不能单单比较两个数的大小,比如遇到:1 、10的情况)。其实,判断一个不行,那就将两个合在一起考虑就可以了(就是比较110合101的大小来普判原创 2013-08-22 23:07:13 · 1334 阅读 · 0 评论 -
uva 10810 - Ultra-QuickSort(排序)
题目链接:uva 10810 - Ultra-QuickSort题目大意:给出一个序列,每次交换两个数,这两个数之间的距离就是代价,问说要将序列排序的总代价是多少。解题思路:归并排序下的逆序数的个数。#include #include const int N = 500005;typedef long long ll;int n, g[N], f[N]原创 2014-01-23 20:15:50 · 3042 阅读 · 0 评论 -
Codeforces 382C Arithmetic Progression(排序+分类)
题目链接:Codeforces 382C Arithmetic Progression题目大意:给出一个长度为n的序列,表示有n张卡片,上面的数字,现在还有一张卡片,上面没有数字,问说可以写几种数字在这张卡片上面,使得n+1张卡片上的数字可以排列成一个等差数列,有无限多种时输出-1.解题思路:分类,n为1、2、3、3+,四种,注意相同的数字算一种。#includ原创 2014-02-02 18:32:14 · 1764 阅读 · 0 评论 -
Codeforces 492D Vanya and Computer Game
题目链接:Codeforces 492D Vanya and Computer Game将两人的单位步长同时扩大相应倍数,使之均成为整数,然后处理出所有攻击时间,排序。#include #include #include using namespace std;const int maxn = 2 * 1e6 + 5;const char sign[3][10] = {"Van原创 2015-04-16 08:57:31 · 860 阅读 · 0 评论