题目链接:http://codeforces.com/gym/101064/problem/D 问你两个数组合相加的第k大数是多少. 先sort数组,二分答案,然后判断其正确性(判断过程是枚举每个数然后二分). //#pragma comment(linker, "/STACK:102400000, 102400000") #include <algorithm> #include <iostream> #include <cstdlib> #inc…
D. Black Hills golden jewels time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output In Rapid City are located the main producers of the Black Hills gold jewelry, a very popular product among tour…
http://codeforces.com/gym/101064/problem/D 题目是给定一个数组,如果两两组合,有C(n, 2)种结果,(找出第一个大于等于第k大的结果) 思路, 二分答案val,判断如下. 先把数组排序. 然后暴力枚举每个数a[i],那么找出第一个大于val - a[i]的,中间的数字和它组合.都是<=val的 统计这些数字的个数,如果大于等于k就是可行解. hack. 二分答案的时候,明显下界是a[1] + a[2].上界是a[n] + a[n - 1] 如果用beg…
题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5922 题意: 给出 $N$ 个冰淇淋球,第 $i$ 个冰淇淋球大小为 $B_i$,现在已知冰淇淋球堆叠起来可组成一个冰淇淋. 对于上下相邻的两个冰淇淋球,只有上面的那个大小不…
题目链接:http://codeforces.com/gym/100283/problem/F F. Bakkar In The Army time limit per test 2 seconds memory limit per test 256 megabytes input army.in output standard output Bakkar is now a senior college student studying computer science. And as many…
题意:给定带点权边权的树,定义路径的花费=路径边权和e+起点点权w[s]*终点点权w[t].N<2e5,e,w<1e6: 思路:首先,需要树分治. 然后得到方程dp[i]=min{ dis[i]+dis[j]+w[i]*w[j] },很显然需要斜率优化. 注意维护凸包的时候是需要保证w[j]是单调的,这样才能用不等式维护队尾.  由于w[i]不是对应的队尾,所以我们还要二分凸包. 还有个问题,怎么确定我们得到的i和j不是在同一个子树呢? 因为如果在一颗子树的时候dp[i]=dis[i]+dis…
https://vjudge.net/problem/Gym-100283F 题意: 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 .... 给出这样的序列,然后给出一个n,计算从1+1+2+1+1+2+3...加到大于等于n至少需要多少个数. 思路: 二分法. 每一行的总和为,所以第i行之前的数总和为,所以我们可以可以利用二分法,确定第i行(第i+1行的总和大于了n).接下来我们继续在第i+1行进行二分. #include<iostream> #include<alg…
题意:给你一堆黑点一堆红点,问你有最多几个黑点能找到三个红点,使这个黑点在三角形内? 思路:显然红点组成的凸包内的所有黑点都能做到.但是判断黑点和凸包的关系朴素方法使O(n^2),显然超时.那么我现在有一个更好的方法判断点和凸包的关系.我固定一个红点,然后找连续两个红点使黑点 i 在这个三角形内(向量判),然后用二分查找是否存在这样的两个连续红点.这样复杂度为nlogn. 注意凸包不要用atan2的那种,会有精度误差... 代码: #include<cmath> #include<set…
题目链接: 题意: n个操作,有两种操作: E p  c    在序号为p的队列尾部插入c得到新的队列,序号为i D p   查询并删除序号为p的队列顶部的元素,得到序号为i的新队列 思路: 需要查询历史版本,我们可以用将这些操作都更新在主席树上,这两个操作可以等价为更新一个点,查询一个点,尾部和顶部的元素我们可以分别用l[i],r[i]来维护第i个队列的顶部元素和尾部元素,查询的时候直接在主席树上找就好了. 实现代码: #include<iostream> #include<cstdi…
G. The Declaration of Independence time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output In 1776, a Committee of Five was chosen to draft the Declaration of Independence of the USA, among them Jo…