CSP \(2023\) 游只因
前面不写太多。
Day \(-\frac{114514}{191}\)
雅礼(HN 四大名校)集训。
Day 1:考试,讲题,改题。
Day 2:考试,讲题,改题。
Day 3:考试,讲题,改题。
……
Day \(0\)
在雅礼开了会,然后教练复习知识,讲注意事项。
晚上次火锅,然后 van 到了 \(12\) 点。
Day \(1\) morning
\(6:30\) 起了床,然后吃了顿好的早饭,就去考点了(J 组在长沙理工大学金盆岭考点 \(10\) 机房,S 在长沙理工大学金盆岭考点 \(9\) 机房)。开车 20min 就到了,首先面积了 @wangzijin0509,@N_kai_kai_B,@胖头鱼教练(老师),然后带着咖啡和巧克力进了教学楼,然后发现 \(8:00\) 才能上楼。在教学楼外面等到了 \(8:00\) 才进去。
\(8:20\) 下发 zip 密码,\(8:30\) 下发 pdf 密码,然后开考。
现把题目看完,然后干 T1。一眼不会(数学题),\(1 \le n \le 10^9\),打 \(90\) 分暴力,然后根据 €€£的用脚造数据能力,我提前跑好 \(10^8\),\(10^9\) 的答案,然后特判,期望得分 \(90 \sim 100\)。洛谷 & 小图灵 \(90\)。(因为我要留给 T2,T3,T4 时间)
upd on \(2023.10.28\):《论 T1 最后一个数据点 \(n = 10^9\) 是假的》
T2,贪心,乱贪,小大样例过了(太水了),期望得分 \(50\),洛谷 \(45\),小图灵 \(40\)。
T3,不会,\(50\) 分整数解,期望得分 & 洛谷 & 小图灵 \(50\)(估得真准)。
T4,一眼骗分(当时笑得嘴巴都合不拢了),直接输出 \(-1\),期望得分 \(10 \sim 20\),小图灵 & 洛谷 \(10\) 分。
期望得分 \([90, 100] + 50 + 50 + [10, 20] = [200, 220]\),一等。
洛谷 \(90 + 45 + 50 + 10 = 195\),小图灵 \(90 + 40 + 50 + 10 = 190\)。
放代码:
格式有点炸裂。
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 \(1\) afternoon
中午吃了顿好的,\(14:00\) 带上尖叫去了考场。
\(14:20\) 发 zip 密码,\(14:30\) 发 pdf 密码,开考。
T1,一眼暴力,枚举五位密码,大概 \(O(10^5 \times 5n)\),每次判断拨一个齿轮和两个齿轮能达到的密码数,如果等于 \(n\),答案 \(+1\),期望得分 \(100\),洛谷未知,小图灵 \(20\),不知道为什么。
T2,不会,输出 \(0\),期望得分 \(0\) 分,小图灵 \(0\) 分。我居然连 \(O(n^3)\) 暴力都没想到,我太【数据删除】了!
T3,打没有操作 \(1\) 部分分,期望得分 \(15\) 分,小图灵 \(5\) 分,洛谷未知。
T4,不会,忘了怎么写了,反正乱搞,期望得分 \(0\) 分,样例没过。
期望得分 \(100 + 0 + 15 + 0 = 115\),二等。
小图灵 \(20 + 0 + 5 + 0 = 25\),洛谷 \([0, 100] + [0, 100] + [0, 100] + [0, 100] = [0, 400]\)。
Day \(1\) night
用小图灵估了分。
Day \(9\) night
官方数据成绩:J \(90 + 60 + 50 + 5 = 205\),S \(10 + 0 + 5 + 0 = 15\)qwq,我弱啊……
标签:游只,10,洛谷,图灵,CSP,2023,100,Day,50 From: https://www.cnblogs.com/bc2qwq/p/CSP2023youzhiyin.html