

Codeforces Round 922 Div2
codeforces-round-922(A-B)
views
| comments
A Brick Wall ↗#
题目描述#
砖块大小为
1 * k
,砖块可以水平和竖直放置, 现在,我们用这样的砖块砌一堵n * m
的墙, 墙的稳定性为水平砖块数与垂直砖块数之差. 问:最大稳定性是多少
解题思路#
为了使墙的稳定性最高,我们可以让所有的砖块水平放置,且砖块的大小为
1*2
,这样墙的稳定为
参考代码#
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
[[maybe_unused]]const int INF = 1e16 + 50, MOD = 10007;
[[maybe_unused]] typedef std::pair<int, int> pii;
void solve() {
int n, m;
std::cin >> n >> m;
std::cout << n * (m / 2) << endl;
}
signed main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr), std::cout.tie(nullptr);
int Lazy_boy_ = 1;
std::cin >> Lazy_boy_;
while (Lazy_boy_--)
solve();
return 0;
}
cppB Minimize Inversions ↗#
题目描述#
长度为
n
的数组a
和b
,由于讨厌倒置() 我们将调整顺序即:交换 以使倒置的数较少
解题思路#
我们可以直接对一个数组排序即可,这样就可以使一个数组没有倒置,使答案最小化.
参考代码#
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
[[maybe_unused]]const int INF = 1e17 + 50;
[[maybe_unused]] typedef std::pair<int, int> pii;
void solve() {
int n;
std::cin >> n;
std::vector<pii> a(n);
for(int i = 0; i < n; i ++)
std::cin >> a[i].first;
for(int i = 0; i < n; i ++)
std::cin >> a[i].second;
std::sort(a.begin(), a.end());
for(int i = 0 ; i < n ; i ++)
std::cout << a[i].first << " \n"[i == n - 1];
for(int i = 0 ; i < n ; i ++)
std::cout << a[i].second << " \n"[i == n - 1];
}
signed main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr), std::cout.tie(nullptr);
int Lazy_boy_ = 1;
std::cin >> Lazy_boy_;
while (Lazy_boy_--)
solve();
return 0;
}
cpp