题目链接


这种两两匹配问题很常见,打比赛的时候想了好久才想起来!,就要特判那个最大的集合,跟其他集合的关系


#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相关推荐

  1. 2021杭电多校第八场补题

    比赛传送门:Contest Problem List (hdu.edu.cn) 1006)GCD Game 题目翻译:爱丽丝和鲍勃正在玩游戏. 他们轮流操作.有n个数字,a1,a2,...,an.每次 ...

  2. 2021杭电多校第3场_HDU6975_Forgiving Matching

    Forgiving Matching 今天刚拜(强)托(迫)队友把FFT原理还有FFT匹配字符串问题给我讲通了. 晚点把这题补完!!

  3. 2021杭电多校补题——第一场

    2021杭电多校补题--第一场 文章目录 Mod, Or and Everything Rocket land(待补) Puzzle loop(待补) Another thief in a Shop( ...

  4. 杭电多校第六场个人补题6 7 9 10 12

    杭电多校第六场个人补题6 7 9 10 12 6 题意 给定一棵有n结点的树,点权为1~n,求对所有结点子树的mex操作和的最大值 思路 其实就是从最底部开始网上找,由于0是唯一的一个,所欲最好给在最 ...

  5. 2022杭电多校第八场题解

    2022杭电多校第八场 Theramore(思维) 题意 给定一个01字符串,每次可以将一个奇数长度的区间翻转,求操作后字典序最小的字符串. 分析 翻转奇数长度的区间,元素位置的奇偶性不变,统计奇数位 ...

  6. 杭电多校第七场 1011 Kejin Player HDU(6656)

    杭电多校第七场 1011 Kejin Player 题意:给你N行,代表从i级有花费a[i]元的r[i]/s[i]的概率达到i+1级,剩下的概率中可能会到达x[i]级.然后询问从L级到R级的花费会是多 ...

  7. 2019杭电多校第9场1002 Rikka with Cake HDU6681

    2019杭电多校第9场1002 Rikka with Cake HDU6681 题意:给你若干个点按上下左右切割平面,最后问平面内有几块被切割开来. 解法1:红黑树+思维+贪心 A:根据欧拉定理可以得 ...

  8. 2019杭电多校 第七场 Kejin Player 6656(求期望值)

    2019杭电多校 第七场 Kejin Player 6656(求期望值) 题目 http://acm.hdu.edu.cn/showproblem.php?pid=6656 题意 给你n,q.表示有n ...

  9. 2019.7.29 杭电多校第三场小结

    index > 杭电多校第三场 题号 标题 AC 做法 状态 6603 Azshara's deep sea (51/150)34.00% 6604 Blow up the city (213/ ...

最新文章

  1. 区块链技术的标准化和颠覆性
  2. linux下安装ftp服务器
  3. 简约之美Jodd-http--应用一箩筐
  4. 第九天2017/04/18(3、重载/覆盖 PK 重写/重定义、父类子类混搭风、抽象类)
  5. 卸载源码安装mysql_CentOS 7.x 卸载删除MariaDB,重新安装,安装MYSQL离线版和源代码...
  6. 统计rgb与yuv文件中各分量的熵
  7. 开源软件许可是什么_什么是开源? 许可,历史等
  8. 云服务器的IT价值与部署分析
  9. 深度学习图像分类(二):AlexNet
  10. 创建数独小游戏uniapp/vue
  11. vue中使用阿里图标
  12. ITellYou结合软碟通安装Win10系统指南
  13. Learning Git Branching
  14. 2018深信服java笔试题,深信服2018秋招编程题
  15. timestamp与datetime的对比
  16. 组合两个表(外连接的使用)
  17. hypermesh和lsdyna联合仿真计算某汽车座椅进行的头冲吸能实验
  18. YYModel之字典/Json转模型
  19. 漫反射实现 - UnityShader
  20. 什么蓝牙耳机好看?2022高颜值蓝牙耳机排行榜

热门文章

  1. Redis重要文档、数据结构、操作行为
  2. Linux之终端命令格式的组成
  3. python注释#、Ctrl+/
  4. ubuntu18 安装python3.8.tgz
  5. 【最新专升本】软件工程试题及答案_
  6. 虚拟机CENTOS7下 安装8.0版本MySQL MySQL主从配置详细~
  7. 双目视觉测距原理,数学推导及三维重建资源
  8. 点云及三维图像处理综述
  9. 视觉实战|使用人工神经网络进行图像分类
  10. 如何在OpenCV中使用YOLO