[CSP-J 2025]T2座位题解
2026-08-20 11:18:31
发布于:浙江
0阅读
0回复
0点赞
[CSP-J 2025]T2座位题解
前言
我作为一位2025年的2=学生,当时做的时候感觉还没这么简单,做了小码王出的模拟数学解的题我也是震惊好吧,这题竟然这么这么简单?
题意解析:
按照成绩排序,每行个,第列从上到下排序,第列从下到上排序,按照蛇形排序。
思路分析:
因为要按照成绩从大到小排座位,所以从大到小排序肯定是必不可少的。排完序后可以用线性查找,因为数据比较小,不然的话可以用二分。
冷知识:
lower_bound函数可以在第四个参数规定规则,可以使用greater<int>()
然后,因为每一列有个人所以小R的列数,其中表示排序后小R的成绩的下标。
根据奇数行从上到下排序,偶数行从下到上排序的性质,可以推出以下公式
对于奇数, 行数
对于偶数, 行数
#include <bits/stdc++.h>
using namespace std;
const int N = 101;
int n, m;
int a[N];
signed main(){
cin >> n >> m;
for (int i = 1;i <= n * m;i++) cin >> a[i];
int a1 = a[1];
sort (a + 1, a + n * m + 1, greater<int>());
int idx = lower_bound(a + 1, a + n * m + 1, a1, greater<int>()) - a;
int c = (idx + n - 1) / n;
if (c % 2 == 1)cout << c << ' ' << idx - (c - 1) * n;
else cout << c << ' ' << n - (idx - (c - 1) * n) + 1;
return 0;
}
这里空空如也








有帮助,赞一个