P9942 [USACO21JAN] Just Stalling B Solution
OIerWu_829 · · 题解
题目传送门
思路
贪心策略:优先给高度高的奶牛安排牛棚。
先遍历每头牛,计算其可安排的牛棚数,乘到方案总数
再遍历每个牛棚,统计可安排第
但前
#include <iostream>
#include <algorithm>
using namespace std;
int a[30], b[30];
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
for (int i = 1; i <= n; i++) cin >> b[i];
sort(a + 1, a + 1 + n, greater<int>()); // 从大到小排序
long long ans = 1;
for (int i = 1; i <= n; i++) {
int cnt = 0; // 计算每头牛可分配的牛棚数量
for (int j = 1; j <= n; j++)
if (b[j] >= a[i]) cnt++;
cnt -= (i - 1);
ans *= cnt;
}
cout << ans << endl;
return 0;
}