社区讨论
囚鯈(40pts)(悬inf关)
P11232[CSP-S 2024] 超速检测参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhizsy3a
- 此快照首次捕获于
- 2025/11/03 18:23 4 个月前
- 此快照最后确认于
- 2025/11/03 18:23 4 个月前
代码感觉思路没问题,但是改不出来
CPP#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5 + 5;
int n, m, L, V, p[N], ans = 0, ciu;
struct node{
int d, v, a;
}a[N];
struct CxL{
int l, r;
}b[N];
bool cmp(CxL a, CxL b){
if(a.l == b.l)return a.r < b.r;
return a.l < b.l;
}
//bool ClvL(int i){
// for(int j = 1; j <= m; j++){
// if(vis[j])continue;
// if(a[i].v * a[i].v + 2 * (p[j] - a[i].d) * a[i].a > V * V){
// return true;
// }
// }
// return false;
//}
//int YandG(){
// int as = 0;
// for(int i = 1; i <= n; i++){
// if(ClvL(i)){
// as++;
// }
// }
// return as;
//}
signed main(){
int t;cin >> t;while(t--){
ans = ciu = 0;
memset(b, -1, sizeof(b));
cin >> n >> m >> L >> V;
for(int i = 1; i <= n; i++){
cin >> a[i].d >> a[i].v >> a[i].a;
}
for(int i = 1; i <= m; i++){
cin >> p[i];
}
sort(p + 1, p + m + 1);
for(int i = 1; i <= n; i++){
if(a[i].a >= 0){
if(a[i].v * a[i].v + 2 * (p[m] - a[i].d) * a[i].a > V * V && a[i].d <= p[m]){
ans++;
b[i].r = m;
if(a[i].a == 0 || a[i].v > V){
b[i].l = lower_bound(p + 1, p + m + 1, a[i].d) - p;
}else{
int yfh = (V * V - a[i].v * a[i].v) / (2 * a[i].a);
b[i].l = upper_bound(p + 1, p + m + 1, a[i].d + yfh) - p;
}
}
}else{
if(a[i].v > V && a[i].d <= p[m]){
int gbq = lower_bound(p + 1, p + m + 1, a[i].d) - p;
if(a[i].v * a[i].v + 2 * a[i].a * (p[gbq] - a[i].d) > V * V){
ans++;
b[i].l = gbq;
int zyb = (V * V - a[i].v * a[i].v) / (2 * a[i].a);
if(zyb * (2 * a[i].a) != (V * V - a[i].v * a[i].v)){
zyb++;
}
b[i].r = lower_bound(p + 1, p + m + 1, a[i].d + zyb) - p - 1;
if(b[i].l > L){
b[i].l = b[i].r = -1;
}else{
b[i].r = m;
}
}
}
}
// cout << b[i].l << " " << b[i].r << "\n";
}
sort(b + 1, b + n + 1, cmp);
int rz = -1, mj = 0;
for(int i = 1; i <= n; i++){
if(b[i].l == -1)continue;
if(rz < b[i].l){
rz = b[i].r;
mj++;
}
}
cout << ans << " " << m - mj << "\n";
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...