cf 489B(贪心)

简介: cf 489B(贪心)

有n个男孩和m个女孩(1≤n,m≤100),我们知道他们每个人的技能值(男孩为a[i],女孩为b[i],每个技能值都≤100)。


当且仅当第A个男孩和第B个女孩的技能值相差不超过1时,他们将成为一对舞伴。


给定n、m和他们各自的技能值,输出他们能组成的舞伴最大对数(格式见样例)。


思路:贪心。先分别排序,设定两个指针,然后进行是否配对判断,直到其中一个指针指到最后为止。

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int a[maxn], b[maxn], n, m;
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> a[i];
  cin >> m;
  for (int i = 1; i <= m; i++) cin >> b[i];
  sort (a + 1, a + n + 1);
  sort (b + 1, b + m + 1);
  int p1 = 1, p2 = 1;
  int ans = 0;
  while (p1 <= n && p2 <= m) {
    if (abs(a[p1] - b[p2]) <= 1) p1++, p2++, ans++; //如果可以配对
    else if (a[p1] > b[p2])p2++; //如果a[i] > b[j] j++
    else if (a[p1] < b[p2])p1++; //如果a[i] < b[j] i++
  }
  cout << ans << endl;
  return 0;
}
相关文章
|
1月前
CF1132D Streessful Training(二分+贪心+优先队列*2300)
CF1132D Streessful Training(二分+贪心+优先队列*2300)
18 0
|
9月前
|
算法 应用服务中间件 AHAS
CF1321C Remove Adjacent(周围串删除)(贪心算法)
CF1321C Remove Adjacent(周围串删除)(贪心算法)
35 0
|
11月前
|
Go vr&ar
CF中的线段树题目
CF中的线段树题目
59 0
cf 327A (前缀和优化dp)
cf 327A (前缀和优化dp)
44 0
|
vr&ar
CF482B. Interesting Array(线段树)
CF482B. Interesting Array(线段树)
52 1
AC牛客 BM46 最小的K个数
AC牛客 BM46 最小的K个数
34 0
AC牛客 BM89 合并区间
AC牛客 BM89 合并区间
70 0
AC Leetcode-56 合并区间
AC Leetcode-56 合并区间
49 0
AC牛客 BM64 最小花费爬楼梯
AC牛客 BM64 最小花费爬楼梯
55 0