CF837C Two Seals 题解
jsntzth666 · · 题解
CF837C Two Seals 题解
洛谷题目传送门\ Codeforces 题目传送门
第一步题意
选两枚印章在一个尺寸
第二步做法
要使覆盖面积最大,两片印记一定是靠在一起的。
由于
第三步细节
难点在于判断这两片印记是否能放在纸张里。
每种印章都有两种状态印印记:第一种是不旋转,第二种是旋转。
两片印记的摆放方式也有两种:第一种是上下放,第二种是左右放。
有两种印章要印,所以一共有
在判断是否能放在纸张里时,为了方便,我们可以把两片印记看成一个长方形(因为纸张和印章(印记)是长方形,这么做不会出现奇奇怪怪的问题)。
假设是选第
- 第一个不旋转,第二个不旋转,左右放。(可以看做尺寸为
(x_i + x_j) \times \max(y_i, y_j) 的长方形。) - 第一个不旋转,第二个不旋转,上下放。(可以看做尺寸为
\max(x_i, x_j) \times (y_i + y_j) 的长方形。) - 第一个不旋转,第二个旋转,左右放。(可以看做尺寸为
(x_i + y_j) \times \max(y_i, x_j) 的长方形。) - 第一个不旋转,第二个旋转,上下放。(可以看做尺寸为
\max(x_i, y_j) \times (y_i + x_j) 的长方形。) - 第一个旋转,第二个不旋转,左右放。(可以看做尺寸为
(y_i + x_j) \times \max(x_i, y_j) 的长方形。) - 第一个旋转,第二个不旋转,上下放。(可以看做尺寸为
\max(y_i, x_j) \times (x_i + y_j) 的长方形。) - 第一个旋转,第二个旋转,左右放。(可以看做尺寸为
(y_i + y_j) \times \max(x_i, x_j) 的长方形。) - 第一个旋转,第二个旋转,上下放。(可以看做尺寸为
\max(y_i, y_j) \times (x_i + x_j) 的长方形。)
第四步代码
:::info[完整代码(码风较丑勿喷)]
#include <bits/stdc++.h>
using namespace std;
const int N = 1e2 + 5;
int n, a, b, x[N], y[N];
signed main () {
ios::sync_with_stdio (0), cin.tie (0), cout.tie (0);
cin >> n >> a >> b;
for (int i = 1; i <= n; i++)
cin >> x[i] >> y[i];
// 判断是否能放在纸张里
auto check = [&] (int i, int j) -> int {
if (x[i] + x[j] <= a && max (y[i], y[j]) <= b) // 第一个不旋转,第二个不旋转,左右放
return 1;
if (max (x[i], x[j]) <= a && y[i] + y[j] <= b) // 第一个不旋转,第二个不旋转,上下放
return 1;
if (x[i] + y[j] <= a && max (y[i], x[j]) <= b) // 第一个不旋转,第二个旋转,左右放
return 1;
if (max (x[i], y[j]) <= a && y[i] + x[j] <= b) // 第一个不旋转,第二个旋转,上下放
return 1;
if (y[i] + x[j] <= a && max (x[i], y[j]) <= b) // 第一个旋转,第二个不旋转,左右放
return 1;
if (max (y[i], x[j]) <= a && x[i] + y[j] <= b) // 第一个旋转,第二个不旋转,上下放
return 1;
if (y[i] + y[j] <= a && max (x[i], x[j]) <= b) // 第一个旋转,第二个旋转,左右放
return 1;
if (max (y[i], y[j]) <= a && x[i] + x[j] <= b) // 第一个旋转,第二个旋转,上下放
return 1;
return 0;
};
// 枚举印章并求答案
int ans = 0;
for (int i = 1; i <= n; i++)
for (int j = i + 1; j <= n; j++)
if (check (i, j))
ans = max (ans, x[i] * y[i] + x[j] * y[j]);
cout << ans << "\n";
return 0;
}
:::
后记
我最讨厌分讨了喵 /kel。
制作不易,点个关注,再点个赞吧。
:::info[AI 使用说明] 使用 DeepSeek 润色文章。 :::