社区讨论
Q1错误求助
P11232[CSP-S 2024] 超速检测参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m2q9dkdl
- 此快照首次捕获于
- 2024/10/26 22:30 去年
- 此快照最后确认于
- 2025/11/04 15:58 4 个月前
rt
CPP#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define pii pair <int,int>
#define puu pair <ull,ull>
#define pqi priority_queue <int>
const int N=1e5+10,L=1e6+10;
int t,n,m,l,vt,d[N],v[N],a[N],p[N],sum[L],ans1,ans2;
bool vis[L];
bool check(int l,int r){
return sum[r]>sum[l-1];
}
inline int read(){
int x = 0, f = 1;
char ch = getchar();
while (!isdigit(ch)){
if (ch == '-')
f = -1;
ch = getchar();
}
while (isdigit(ch)){
x = (x << 1) + (x << 3) + (ch ^ 48);
ch = getchar();
}
return x * f;
}
inline void write(int x){
if (x < 0) putchar('-'), x = -x;
if (x > 9) write(x / 10);
putchar(x % 10 + '0');
}
void init(){
ans1=ans2=0;
for(int i=1;i<=n;i++) vis[i]=0;
return ;
}
void solve(){
init();
cin>>n>>m>>l>>vt;
++l;
for(int i=1;i<=n;i++){
cin>>d[i]>>v[i]>>a[i];
++d[i];
}
for(int i=1;i<=m;i++){
cin>>p[i];
++p[i];
vis[p[i]]=1;
}
for(int i=1;i<=l;i++) sum[i]=sum[i-1]+vis[i];
for(int i=1;i<=n;i++){
if(a[i]==0){
if(v[i]<=vt) continue;
if(check(d[i],l)==0) continue;
++ans1;
//cout<<i<<' ';
}
else if(a[i]>0){
if(v[i]>vt){
if(check(d[i],l)) ++ans1;
continue;
}
int s=(vt*vt-v[i]*v[i])/(2*a[i])+1;
if(d[i]+s>l||check(d[i]+s,l)==0) continue;
++ans1;
//cout<<i<<' ';
}
else{
if(v[i]<=vt) continue;
int A=a[i],B=-v[i]*v[i]+vt*vt;
int s=ceil(1.0*(vt*vt-v[i]*v[i])/(2.0*a[i]))-1;
if(s<0||d[i]+s>l||check(d[i],d[i]+s)==0) continue;
++ans1;
}
}
cout<<ans1<<'\n';
}
int main()
{
//freopen("detect.in","r",stdin);
//freopen("detect.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>t;
while(t--) solve();
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...