思维 ---- 两两匹配问题 2021杭电多校第6场 E - Median
题目链接
这种两两匹配问题很常见,打比赛的时候想了好久才想起来!,就要特判那个最大的集合,跟其他集合的关系
#include <bits/stdc++.h>
#define mid ((l + r) >> 1)
#define Lson rt << 1, l , mid
#define Rson rt << 1|1, mid + 1, r
#define ms(a,al) memset(a,al,sizeof(a))
#define log2(a) log(a)/log(2)
#define lowbit(x) ((-x) & x)
#define IOS std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define INF 0x3f3f3f3f
#define LLF 0x3f3f3f3f3f3f3f3f
#define f first
#define s second
#define endl '\n'
using namespace std;
const int N = 2e6 + 10, mod = 1e9 + 9;
const int maxn = 500010;
const long double eps = 1e-5;
const int EPS = 500 * 500;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef pair<ll,ll> PLL;
typedef pair<double,double> PDD;
template<typename T> void read(T &x) {x = 0;char ch = getchar();ll f = 1;while(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}while(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;
}
template<typename T, typename... Args> void read(T &first, Args& ... args) {read(first);read(args...);
}
int n, m;
int arr[maxn];
int main() {//IOS;int T;cin >> T;while(T --) {cin >> n >> m;for(int i = 1; i <= m; ++ i) cin >> arr[i];sort(arr+1,arr+1+m);if(m == n) {puts("YES");continue;}int max1 = -1, minnum;for(int i = 1; i <= m; ++ i)if(max1 <= arr[i] - arr[i-1] - 1) {max1 = arr[i] - arr[i-1] - 1;minnum = arr[i-1] + 1;}if(max1 <= n - arr[m]) {max1 = n - arr[m];minnum = arr[m] + 1; }// cout << max1 << " " << minnum << endl;if(n - m - max1 >= max1) puts("YES");else {int pos = lower_bound(arr+1,arr+1+m,minnum) - arr;// cout << pos << endl;if(pos - 1 >= max1 - (n - m - max1)) puts("YES");else puts("NO"); }}
}
思维 ---- 两两匹配问题 2021杭电多校第6场 E - Median相关推荐
- 2021杭电多校第八场补题
比赛传送门:Contest Problem List (hdu.edu.cn) 1006)GCD Game 题目翻译:爱丽丝和鲍勃正在玩游戏. 他们轮流操作.有n个数字,a1,a2,...,an.每次 ...
- 2021杭电多校第3场_HDU6975_Forgiving Matching
Forgiving Matching 今天刚拜(强)托(迫)队友把FFT原理还有FFT匹配字符串问题给我讲通了. 晚点把这题补完!!
- 2021杭电多校补题——第一场
2021杭电多校补题--第一场 文章目录 Mod, Or and Everything Rocket land(待补) Puzzle loop(待补) Another thief in a Shop( ...
- 杭电多校第六场个人补题6 7 9 10 12
杭电多校第六场个人补题6 7 9 10 12 6 题意 给定一棵有n结点的树,点权为1~n,求对所有结点子树的mex操作和的最大值 思路 其实就是从最底部开始网上找,由于0是唯一的一个,所欲最好给在最 ...
- 2022杭电多校第八场题解
2022杭电多校第八场 Theramore(思维) 题意 给定一个01字符串,每次可以将一个奇数长度的区间翻转,求操作后字典序最小的字符串. 分析 翻转奇数长度的区间,元素位置的奇偶性不变,统计奇数位 ...
- 杭电多校第七场 1011 Kejin Player HDU(6656)
杭电多校第七场 1011 Kejin Player 题意:给你N行,代表从i级有花费a[i]元的r[i]/s[i]的概率达到i+1级,剩下的概率中可能会到达x[i]级.然后询问从L级到R级的花费会是多 ...
- 2019杭电多校第9场1002 Rikka with Cake HDU6681
2019杭电多校第9场1002 Rikka with Cake HDU6681 题意:给你若干个点按上下左右切割平面,最后问平面内有几块被切割开来. 解法1:红黑树+思维+贪心 A:根据欧拉定理可以得 ...
- 2019杭电多校 第七场 Kejin Player 6656(求期望值)
2019杭电多校 第七场 Kejin Player 6656(求期望值) 题目 http://acm.hdu.edu.cn/showproblem.php?pid=6656 题意 给你n,q.表示有n ...
- 2019.7.29 杭电多校第三场小结
index > 杭电多校第三场 题号 标题 AC 做法 状态 6603 Azshara's deep sea (51/150)34.00% 6604 Blow up the city (213/ ...
最新文章
- 区块链技术的标准化和颠覆性
- linux下安装ftp服务器
- 简约之美Jodd-http--应用一箩筐
- 第九天2017/04/18(3、重载/覆盖 PK 重写/重定义、父类子类混搭风、抽象类)
- 卸载源码安装mysql_CentOS 7.x 卸载删除MariaDB,重新安装,安装MYSQL离线版和源代码...
- 统计rgb与yuv文件中各分量的熵
- 开源软件许可是什么_什么是开源? 许可,历史等
- 云服务器的IT价值与部署分析
- 深度学习图像分类(二):AlexNet
- 创建数独小游戏uniapp/vue
- vue中使用阿里图标
- ITellYou结合软碟通安装Win10系统指南
- Learning Git Branching
- 2018深信服java笔试题,深信服2018秋招编程题
- timestamp与datetime的对比
- 组合两个表(外连接的使用)
- hypermesh和lsdyna联合仿真计算某汽车座椅进行的头冲吸能实验
- YYModel之字典/Json转模型
- 漫反射实现 - UnityShader
- 什么蓝牙耳机好看?2022高颜值蓝牙耳机排行榜