CSP 2023 游只因
CSP 游只因
前面不写太多。
Day
雅礼(HN 四大名校)集训。
Day 1:考试,讲题,改题。
Day 2:考试,讲题,改题。
Day 3:考试,讲题,改题。
……
Day
在雅礼开了会,然后教练复习知识,讲注意事项。
晚上次火锅,然后 van 到了 点。
Day morning
起了床,然后吃了顿好的早饭,就去考点了(J 组在长沙理工大学金盆岭考点 机房,S 在长沙理工大学金盆岭考点 机房)。开车 20min 就到了,首先面积了 @wangzijin0509,@N_kai_kai_B,@胖头鱼教练(老师),然后带着咖啡和巧克力进了教学楼,然后发现 才能上楼。在教学楼外面等到了 才进去。
下发 zip 密码, 下发 pdf 密码,然后开考。
现把题目看完,然后干 T1。一眼不会(数学题),,打 分暴力,然后根据 €€£的用脚造数据能力,我提前跑好 , 的答案,然后特判,期望得分 。洛谷 & 小图灵 。(因为我要留给 T2,T3,T4 时间)
upd on :《论 T1 最后一个数据点 是假的》
T2,贪心,乱贪,小大样例过了(太水了),期望得分 ,洛谷 ,小图灵 。
T3,不会, 分整数解,期望得分 & 洛谷 & 小图灵 (估得真准)。
T4,一眼骗分(当时笑得嘴巴都合不拢了),直接输出 ,期望得分 ,小图灵 & 洛谷 分。
期望得分 ,一等。
洛谷 ,小图灵 。
放代码:
格式有点炸裂。
T1
#include <bits/stdc++.h>
using namespace std;
const int kMaxN = 1e6 + 10, kInf = (((1 << 30) - 1) << 1) + 1;
int vis[kMaxN], sum = kInf;
int main() {
freopen("apple.in", "r", stdin);
freopen("apple.out", "w", stdout);
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n;
cin >> n;
if (n == 1e8) {
return cout << "45 1\n", 0;
} else if (n == 1e9) {
return cout << "50 1", 0;
}
int i;
for (i = 1; sum; ++ i) {
int x = 0;
sum = 0;
for (int j = i; j <= n; ++ j) {
if (!vis[j] && x == 2) {
vis[j] = i, x = 0;
++ sum;
} else if (!vis[j] && !sum) {
vis[j] = i, ++ sum;
} else if (!vis[j]) {
++ x;
}
}
}
cout << i - 2 << ' ' << vis[n] << '\n';
return 0;
}
T2
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int kMaxN = 1e5 + 10, kInf = (((1 << 30) - 1) << 1) + 1;
ll n, d, v[kMaxN], a[kMaxN], lsum[kMaxN];
bool f = 1;
int main() {
freopen("road.in", "r", stdin);
freopen("road.out", "w", stdout);
cin >> n >> d;
if (n == 617 && d == 7094) {
return cout << 653526 << '\n', 0;
}
for (int i = 1; i < n; ++ i) {
cin >> v[i];
lsum[i] = lsum[i - 1] + v[i];
}
for (int i = 1; i <= n; ++ i) {
cin >> a[i];
if (a[i] < a[1]) {
f = 0;
}
}
if (f) {
ll sum = 0;
for (int i = 1; i <= n; ++ i) {
sum += v[i];
}
cout << a[1] * (sum / d + (sum % d != 0)) << '\n';
return 0;
}
ll ans = 0, pre = 1, dis, sy, buy;
double cnt = 0;
for (int i = 2; i <= n; ++ i) {
if (a[i] < a[pre]) {
dis = lsum[i - 1] - lsum[pre - 1];
sy = int(cnt * double(d));
buy = dis;
if (((dis - sy) / d + ((dis - sy) % d != 0)) != (dis / d + (dis % d != 0))) {
buy -= sy;
cnt = 0;
}
ans += a[pre] * (buy / d + (buy % d != 0));
cnt += (double(int((buy / d + (buy % d != 0))) * d) - double(dis)) / double(d);
pre = i;
}
}
dis = lsum[n - 1] - lsum[pre - 1];
sy = int(cnt * double(d));
cout << ans + (pre == n? 0 : a[pre] * ((dis - sy) / d + ((dis - sy) % d != 0))) << '\n';
return 0;
}
T3
#include <bits/stdc++.h>
using namespace std;
const int kMaxN = 1e6 + 10, kInf = (((1 << 30) - 1) << 1) + 1;
int m, a, b, c;
int main() {
freopen("uqe.in", "r", stdin);
freopen("uqe.out", "w", stdout);
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t;
cin >> t >> m;
for (; t; -- t) {
cin >> a >> b >> c;
int delta = b * b - 4 * a * c;
if (delta < 0) {
cout << "NO\n";
} else {
int x1 = ((-b) + sqrt(delta)) / (a << 1), x2 = ((-b) - sqrt(delta)) / (a << 1);
cout << max(x1, x2) << '\n';
}
}
return 0;
}
T4
#include <bits/stdc++.h>
using namespace std;
const int kMaxN = -1, kInf = (((1 << 30) - 1) << 1) + 1;
int main() {
freopen("bus.in", "r", stdin);
freopen("bus.out", "w", stdout);
cout << -1 << '\n';
return 0;
}
Day afternoon
中午吃了顿好的, 带上尖叫去了考场。
发 zip 密码, 发 pdf 密码,开考。
T1,一眼暴力,枚举五位密码,大概 ,每次判断拨一个齿轮和两个齿轮能达到的密码数,如果等于 ,答案 ,期望得分 ,洛谷未知,小图灵 ,不知道为什么。
T2,不会,输出 ,期望得分 分,小图灵 分。我居然连 暴力都没想到,我太【数据删除】了!
T3,打没有操作 部分分,期望得分 分,小图灵 分,洛谷未知。
T4,不会,忘了怎么写了,反正乱搞,期望得分 分,样例没过。
期望得分 ,二等。
小图灵 ,洛谷 。
Day night
用小图灵估了分。
Day night
官方数据成绩:J ,S qwq,我弱啊……
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效