随笔分类 -  排序

1
摘要:分析 我们发现实际只要计算a[i]>b[j]和a[i]<b[j]哪种多即可 代码 阅读全文
posted @ 2019-09-30 13:04 水题收割者 阅读(169) 评论(0) 推荐(0)
摘要:分析 它居然真的是个nlog^3暴力?! 两个数在加小于min(lowbit(x),lowbit(y))的数时对他们的奇偶性不影响 因此每次加上min(lowbit(x),lowbit(y))判断此时的奇偶性 直接排序即可 代码 阅读全文
posted @ 2019-09-14 21:50 水题收割者 阅读(167) 评论(0) 推荐(0)
摘要:分析 我们对于每一个点记录他所在的这一行以它为右端点向前最多有几个连续的1 之后我们考虑每一列 对每一列的点按照之前求出的值从小到大排序 一次考虑每一个宽度 而高度也可以很容易的求出 每次取最大值即可 代码 阅读全文
posted @ 2019-08-24 19:32 水题收割者 阅读(109) 评论(0) 推荐(0)
摘要:传送门 分析 首先不难想到我们要先处理容量变大的再处理容量变小的 对于第一种情况我们自然要选择x小的先格式化,因为这个样暂时存储所需空间较小,可以使得情况更优 而第二种情况y先考虑,因为这样对总空间的减少量小 代码 阅读全文
posted @ 2019-02-09 15:31 水题收割者 阅读(156) 评论(0) 推荐(0)
摘要:传送门 分析 其实我们可以很巧妙的把这道题转化成一道线段覆盖的问题,怎么转化呢?对于每一个描述,我们可以根据他所描述的比他高的和比他矮的人数来构造一条线段,左端点l即为y+1,右端点r为n-x。当我们转化成线段以后,这一段线段就表示着分数相同的人数,那么显然,只有与这个线段完全重合的线段是符合要求的 阅读全文
posted @ 2019-02-05 20:27 水题收割者 阅读(167) 评论(0) 推荐(0)
摘要:传送门 分析 每次拿a中最大的去匹配b中最小的 至于原因画个图感性思考一下就可以啦 代码 阅读全文
posted @ 2018-11-03 20:28 水题收割者 阅读(137) 评论(0) 推荐(0)
摘要:传送门 分析 我就是个BT...... 直接排序后开数组记录每条线上的信息,注意由于每个点只会影响前面第一个点和后面第一个点,所以记录每条线的前一个点就行了。 代码 阅读全文
posted @ 2018-10-16 14:39 水题收割者 阅读(130) 评论(0) 推荐(0)
摘要:传送门 分析 论bitset的妙用......我们利用桶排将输入的数据排序,之后分别考虑5维,a[i][j]表示考虑第i个人第j维的情况下于其它人的大小关系。最后将5维的信息并起来求1的个数即可 代码 阅读全文
posted @ 2018-10-10 20:12 水题收割者 阅读(119) 评论(0) 推荐(0)
摘要:传送门 分析 快排的原理是以任意一个数为标准,然后把所有小于它的数换到它的左边,所有大于它的数换到它的右边。我们就使用快排的思路,分治整个区间。对于每个区间以排好序的这个数列的中间位置的值为标准,然后继续分治这个区间,将这个区间左子区间中大于标准的移到左子区间的最右边,将右子区间中小于标准的移到右子 阅读全文
posted @ 2018-09-29 08:50 水题收割者 阅读(155) 评论(0) 推荐(0)
摘要:传送门 分析 我们设A[i]表示点i有几个矿,B[i]表示这之中有几个矿是第一次出现,所以点i的贡献即为 (2^B[i]-1)*(2^(A[i]-B[i])) 注意减一的原因是第一次出现的矿应至少有一个。然后我们用set维护一下就可以了。 代码 阅读全文
posted @ 2018-09-15 09:18 水题收割者 阅读(119) 评论(0) 推荐(0)
摘要:传送门 分析 考场上写了前20分和|a[i]|<=1的情况,但是因为没开long long爆零了。实际考场上差不多想到正解了,至少当时不会凸壳... 我们发现对于ax2+bx的大小关系我们可以将其转换成ax+b,所以我们可以将这些直线求一个上凸壳和一个下凸壳,然后离线处理所有x,对于小于0的x找到下 阅读全文
posted @ 2018-09-05 22:42 水题收割者 阅读(187) 评论(0) 推荐(0)
摘要:传送门 题目大意 给你一些书的高度和宽度,有一个一列三行书柜,要求放进去书后,三行书柜的高的和乘以书柜的宽度最小。问这个值最小是多少。 分析 我们可以先将所有书按照高度降序排好,这样对于每一层只要放过书高度边不会改变。我们设第一本书放在第一层,用dp[i][j][k]表示考虑到第i个,第二层的厚度为 阅读全文
posted @ 2018-08-14 13:26 水题收割者 阅读(194) 评论(0) 推荐(0)
摘要:传送门 题目大意 现在有 n个人,m个党派,第i个人开始想把票投给党派pi,而如果想让他改变他的想法需要花费ci元。你现在是党派1,问你最少花多少钱使得你的党派得票数大于其它任意党派。 分析 我们枚举i,表示除了自己之外的其它任何党派最多得票数不超过i,而我们每次只需要改变一个党派中需要花费的钱最少 阅读全文
posted @ 2018-08-12 15:56 水题收割者 阅读(251) 评论(0) 推荐(1)
摘要:传送门 题目大意 看式子懂题意系列... 分析 自然想到我们先按比例下取整得到一个值,再按每个人这样分配所产生的值从大到小排序,然后将剩下的几个金币自大到小每人分配一个,代码挺好理解的,详见代码。 代码 阅读全文
posted @ 2018-07-26 10:27 水题收割者 阅读(133) 评论(0) 推荐(0)
摘要:传送门 分析 这道题真的好水呀QwQ,想必大家都知道对于式子|x-2|+|x-3|x取什么值可以使式子结果最小,这道题也是这个原理,只需要将要额外减的1、2、3……提前减掉就行了。 代码 阅读全文
posted @ 2018-07-21 15:53 水题收割者 阅读(220) 评论(0) 推荐(0)
摘要:传送门 题目大意 给定n个区间,问你被覆盖至少k次的区间(两端连续区间可以合并)最少有多少个,并输出。 分析 大水题呀QwQ,只需要将每个点的位置及它是左端点还是右端点这两个信息存起来然后进行一些简单操作就行了,详见代码。 代码 阅读全文
posted @ 2018-07-21 08:33 水题收割者 阅读(204) 评论(0) 推荐(0)
摘要:传送门 题目 You are given a string s. Among the different substrings of s, print the K-th lexicographically smallest one. A substring of s is a string obta 阅读全文
posted @ 2018-05-21 17:41 水题收割者 阅读(385) 评论(0) 推荐(0)
摘要:传送门 题目 输入格式: 第一行,一个数n,表示序列中有n个数。 第二行n个数,表示给定的序列。 输出格式: 给定序列中逆序对的数目。 数据范围: 对于50%的数据,n≤2500 对于100%的数据,n≤40000。 分析 使用分治的思想将序列不断分为两段,然后将这两段进行归并排序,因为每段已经排好 阅读全文
posted @ 2018-05-07 18:19 水题收割者 阅读(193) 评论(0) 推荐(0)
摘要:传送门 题目 Formula One championship consists of series of races called Grand Prix. After every race drivers receive points according to their final positi 阅读全文
posted @ 2018-04-19 20:59 水题收割者 阅读(248) 评论(0) 推荐(0)
摘要:传送门 题目大意 给你n和d还有n个数,计算最少删除几个点可以是最大点与最小点之差小于等于d 分析 先对所有点排序,枚举每一个点ai到ai+d中有几个点,答案即n-其中最大的值 代码 #include<iostream>#include<cstdio>#include<cstring>#includ 阅读全文
posted @ 2018-02-25 18:26 水题收割者 阅读(171) 评论(0) 推荐(0)

1