20250829模拟赛游记
20250829 模拟赛游记
比赛介绍:
- 本次比赛共五题,时长
3 小时,难度正常(对我来说)- 比赛时间为
2025 年8 月29 日早上八点半至十一点半。- 需要写文件读写(CSP 标准)
试题分析
1. 比赛时间(ctiming)
题目内容:
- 已知比赛开始时间为
11 日11 时11 分。- 现输入三个正整数分别表示比赛结束日,时,分。
- 计算比赛持续时间。
我的解法:
#include <bits/stdc++.h>
#define int long long
using namespace std;
int d, h, m;
signed main() {
cin >> d >> h >> m;
cout << (d >= 12 ? (13 + h) * 60 - 11 + m : max((h - 11) * 60 + (m - 11), -1ll));
return 0;
}
正解:
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll d, h, m;
int main() {
cin >> d >> h >> m;
if(d * 10000 + h * 100 + m < 111111) {
cout << -1;
return 0;
}
d -= 11;
h += d * 24;
h -= 11;
m += h * 60;
m -= 11;
cout << m;
return 0;
}
此题看出的问题:
- 犹豫时间过长,不能静心计算。
- 计算能力有待提高
2. 负载均衡(balancing)
题目内容:
- 给出几头奶牛的坐标。
- 将这几头奶牛分成尽量均衡的四份。
- 求这四块栅栏里的最大值的最小值。
此题基本算法:\ 考验代码模拟能力
此题看出的问题:
- 模拟能力不强(多做模拟题)
- 优化能力不强
3. 礼物(gifts)
题目大意:
- 要给一些奶牛买礼物,有预算一些钱
- 有一张优惠券,可以用半价购买
- 求最多可以为多少头奶牛买礼物
此题基本算法:\ 考验代码模拟能力,贪心,排序。
正解:
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1005;
int n, b, f;
struct gifts {
int p, s;
} g[N];
int cmp (gifts a, gifts b) {
return a.p + a.s < b.p + b.s;
}
signed main() {
// freopen("gifts.in", "r", stdin);
// freopen("gifts.out", "w", stdout);
cin >> n >> b;
for (int i = 1; i <= n; i++) {
cin >> g[i].p >> g[i].s;
}
stable_sort(g + 1, g + n + 1, cmp);
int sum = 0, ans = 0;;
for (int i = 1; i <= n; i++) {
if (sum + (g[i].p + g[i].s) <= b) {
sum += (g[i].p + g[i].s);
ans++;
} else {
if (sum + (g[i].p / 2 + g[i].s) <= b && !f) {
f = 1;
ans++;
}
}
}
cout << ans;
return 0;
}
4. 堆干草(stacking)
题目大意:
- 有几次操作,每次操作往一些干草堆中加入一个单位的干草
- 排序后,求这几堆干草的中位数
此题基本算法:\ 考验代码模拟能力,差分(一维),排序。
正解:
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e6 + 5;
ll n, k, s[N];
int main() {
cin >> n >> k;
for(int i = 1, a, b; i <= k; i++) {
cin >> a >> b;
s[a] += 1, s[b + 1] -= 1;
}
for(int i = 1; i <= n; i++) s[i] += s[i - 1];
sort(s + 1,s + n + 1);
cout << s[n / 2 + 1];
return 0;
}
此题反映的问题:
- 差分不熟悉
5. 放牧模式(grazing)
题目大意:
- 有两头奶牛在草地上吃草
- 草地上有一些贫瘠的土地
- 奶牛所走的每一格都是草地
- 求有多少种方案最后两头奶牛在一个格子上
算法:
- DFS
- 模拟
反应的问题:
- 对于 DFS 题不熟悉,导致做题出错。
- 模拟能力不强
大总结
- 加强模拟能力,做好题,好做题,做题好。
- 复习学过的算法,DFS, BFS 等
- 认真听懂每一道题
最后的最后
谢谢大家,以及老师的悉心栽培! 最后,别忘了给 Love_Star 一个关注,谢了ヾ(o′▽`o)ノ°°谢谢