社区讨论

民间数据生成代码

P11232[CSP-S 2024] 超速检测参与者 55已保存回复 66

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
34 条
当前快照
3 份
快照标识符
@mify87v8
此快照首次捕获于
2025/11/26 19:56
3 个月前
此快照最后确认于
2025/11/26 20:06
3 个月前
查看原帖
欢迎 hack。
CPP
#include<bits/stdc++.h>
using namespace std;
const int maxn=100007;
int T;
int d[maxn],v[maxn],a[maxn];
struct range{
    int l,r;
}q[maxn];
bool com(const range &x,const range &y)
{
    return x.r<y.r||x.l<y.l&&x.r==y.r;
}
int cnt;
int n,m;
int L,V;
int p[maxn];
int main()
{
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        scanf("%d%d",&L,&V);
        for(int i=1;i<=n;i++)
            scanf("%d%d%d",&d[i],&v[i],&a[i]);
        for(int i=1;i<=m;i++)
            scanf("%d",&p[i]);
        cnt=0;
        for(int i=1;i<=n;i++)
        {
            int idx=lower_bound(p+1,p+1+m,d[i])-p;
            int ans=-1;
            if(a[i]<=0)
            {
                int l=idx,r=m;
                while(l<=r)
                {
                    int mid=(l+r)>>1;
                    long long x=p[mid]-d[i];
                    if(1ll*v[i]*v[i]+2*a[i]*x>1ll*V*V)
                        l=mid+1,ans=mid;
                    else r=mid-1;
                }
                if(ans==-1) continue;
                q[++cnt]=(range){idx,ans};
            }
            else
            {
                int l=idx,r=m;
                while(l<=r)
                {
                    int mid=(l+r)>>1;
                    long long x=p[mid]-d[i];
                    if(1ll*v[i]*v[i]+2*a[i]*x>1ll*V*V)
                        r=mid-1,ans=mid;
                    else l=mid+1;
                }
                if(ans==-1) continue;
                q[++cnt]=(range){ans,m};
            }
            
            
        }
        printf("%d ",cnt);
        sort(q+1,q+1+cnt,com);
        // for(int i=1;i<=cnt;i++) printf("\n%d %d\n",q[i].l,q[i].r);
        int lst=0;
        int res=0;
        for(int i=1;i<=cnt;i++)
            if(q[i].l>lst) lst=q[i].r,++res;
        printf("%d\n",m-res);
    }
    return 0;
}

回复

66 条回复,欢迎继续交流。

正在加载回复...