随笔分类 -  ICPC-二分、三分

需要有二分对象有单调性、通常解决判定性问题、 三分查找凹凸点
摘要:题目链接 题意 : 给出一个有 N 个数字的整数数列、给出 Q 个问询、每次问询给出一个区间、用 ( L、R ) 表示、要你统计这个整数数列所有的子区间中有多少个和 GCD( L ~ R ) 相等、输出 GCD( L ~ R ) 以及子区间个数 分析 : 首先对于给出一个区间要你给出 GCD 这个操 阅读全文
posted @ 2018-09-28 16:34 qwerity 阅读(286) 评论(0) 推荐(0)
摘要:题意 : 给出两个操作,① 往一个序列集合(初始为空)里面不降序地添加数字、② 找出当前序列集合的一个子集使得 (子集的最大元素) - (子集的平均数) 最大并且输出这个最大差值 分析 : 首先关注到 ① 操作是有序地添加数 然后为了回答 ② 的问询,来分析一波 直觉告诉我们,要最大化差值,选取的子 阅读全文
posted @ 2018-03-13 18:28 qwerity 阅读(198) 评论(0) 推荐(0)
摘要:二分法适用于在单调函数上通过不断逼近的方式寻找答案,一般用于“判定性问题” 而三分法则用于凹凸函数,寻找其凹点和凸点 例如上图的函数是个凸函数,蓝色点便是凸点 三分的基本步骤就是先将 [ L, R ] 分为 [ L, mid ] && [ mid, R ] 中点为 mid 然后将 [ mid, R 阅读全文
posted @ 2018-03-13 17:45 qwerity 阅读(484) 评论(0) 推荐(0)
摘要:题意 : 给你 N ( 1 ≤ N ≤ 16 ) 个质数,然后问你由这些质数作为因子的数 ( 此数不超 10^18 ) & ( 不一定需要其因子包含所给的所有质数 ) 的第 k 个是什么 分析 : 由于各项的数据范围都太过于大,所以考虑从比较小的 N 入手 由于 N 比较小,所以可以先到是否能折半枚 阅读全文
posted @ 2018-02-09 14:51 qwerity 阅读(153) 评论(0) 推荐(0)
摘要:题意 : 给出 N 个物品的价值和重量,然后要求选出 K 个物品使得选出来物品的单位重量价值最大,最后输出被选物品的编号。 分析 : 很容易去想先算出每个物品的单位价值然后升序排序取前 K 个,但是很可惜这样的做法是错误的。 例如 : N = 3、K = 2、{ w、v } = { {2,2}、{5 阅读全文
posted @ 2018-01-13 20:07 qwerity 阅读(200) 评论(0) 推荐(1)
摘要:lower_bound()在first和last中的前闭后开区间进行,返回大于或等于val的第一个元素位置。 如果所有元素都小于val,则返回last的位置 1、查找最后一个小于或者等于key的下标,若不存在,则返回-1 int BinSearch(int a[], int n, int key) 阅读全文
posted @ 2017-11-18 12:51 qwerity 阅读(270) 评论(0) 推荐(0)
摘要:题意 : 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 <= xi <= 1e9)。但是,John的C (2 <= C <= N)头牛们并不喜欢这种布局,而且几头牛放在一个隔间里,他们就要发生争斗。为了不让 阅读全文
posted @ 2017-10-10 22:38 qwerity 阅读(232) 评论(0) 推荐(0)
摘要:题目链接 :http://codeforces.com/contest/831/problem/C 题意 :选手有一个初始积分,接下来有k个裁判为他加分或减分(时间顺序给出),然后告诉你n(1<=n<=k)个积分减分过程中的积分(不一定是时间顺序),问根据这些信息,他的初始积分有多少种可能 分析 : 阅读全文
posted @ 2017-07-15 09:16 qwerity 阅读(160) 评论(0) 推荐(0)
摘要:题意 : 老S最近喜欢上某个搜集战舰的游戏,这个游戏中很重要的一个内容是能编排自己的战舰,通过出击完成任务来获取资源或新的战舰。大家都说老S是一个“直男”,所以他喜欢把战舰排成一条直线。目前老S正准备完成某个新的任务--“困难级丹麦海峡”,可以将地图视为1*N的一列方格(下标为1,2,...,N), 阅读全文
posted @ 2017-06-10 17:15 qwerity 阅读(270) 评论(0) 推荐(0)
摘要:题目链接 : http://codeforces.com/problemset/problem/812/C 题意 : 给你 n 件物品和你拥有的钱 S, 接下来给出这 n 件物品的价格, 这些物品的价值不是固定不变的, 价格的变化公式是 a[i]+k*i (i代表第 i 件物品, k 代表你选择买的 阅读全文
posted @ 2017-06-03 23:58 qwerity 阅读(149) 评论(0) 推荐(0)
摘要:题意 : 给出对容器的总操作次数n, 接下来是这n个操作。这里对于一个容器提供三种操作, 分别是插入、删除和查找。输入0 e表示插入e、输入1 e表示删除e,若元素不存在输出No Elment!、输入2 e k表示查找比e大且第k大的数, 若不存在则输出Not Find! 分析 : 这里考虑树状数组 阅读全文
posted @ 2017-05-29 00:09 qwerity 阅读(144) 评论(0) 推荐(0)
摘要:题意:给出数n, 代表有多少头牛, 这些牛的编号为1~n, 再给出含有n-1个数的序列, 每个序列的数 ai 代表前面还有多少头比 ai 编号要小的牛, 叫你根据上述信息还原出原始的牛的编号序列 分析:如果倒着看这个序列的话, 那序列的最后一个元素就能够确定一个编号。举个例子:如果序列的最后一个元素 阅读全文
posted @ 2017-05-28 17:36 qwerity 阅读(227) 评论(0) 推荐(0)