首页 > 其他分享 >「NEERC2014」 Knockout Racing

「NEERC2014」 Knockout Racing

时间:2024-01-26 21:11:26浏览次数:25  
标签:le Knockout bmod long 距离 && NEERC2014 Racing

题意

给 \(N(1\le N\le 1000)\) 辆在一条直线上跑的车,每辆车在区间 \([A_i,B_i](0\le A_i,B_i\le 10^9,A_i\ne B_i)\) 中行驶,可以把速度都看作一个单位速度。

然后给 \(M(1\le M\le 1000)\) 个询问,每个询问都有一组 \(X_i,Y_i,T_i(1\le X_i,Y_i,T_i\le 10^9)\) ,表示问在 \(T_i\) 时,区间 \([X_i,Y_i]\) 内有几辆车。

分析

我们注意到,题目里的 \(N\) 和 \(M\) 都不大,所以 \(O(NM)\) 的算法也可以过。

所以我们可以在每一组询问时,都直接暴力求解每辆车的位置,然后统计一遍就可以了。

经过观察,可以发现:因为车是来回往返的,时间为 \(T_j\) ,单次距离为 \(B_i-A_i\) ,所以当 \(T_j\bmod (B_i-A_i)\) 为偶数时,是从 \(A_i\) 往 \(B_i\),此时该车距离 \(A_i\) 点为 \(T_j\bmod (B_i-A_i)\) ;为奇数时,是从 \(B_i\) 往 \(A_i\) ,此时该车距离 \(A_i\) 点为 \(T_j-T_j\bmod (B_i-A_i)\) 。

我们此时求的距离是到 \(A_i\) 的,而不是真实的位置,所以还要再加上 \(A_i\) 。

Code

#include<bits/stdc++.h>
typedef long long ll;//个人习惯,没必要加long long
char buf[1<<21],*p1=buf,*p2=buf,obuf[1<<21],*O=obuf;
#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
using namespace std;
inline ll read(){ll x=0,f=1;char c=getchar();while(c<48||c>57){if(c==45)f=0;c=getchar();}while(c>47&&c<58)x=(x<<3)+(x<<1)+(c^48),c=getchar();return f?x:-x;}
ll n,m,x,y,t,space[1005],ans;
struct car{
    ll a,b;
}c[1005];//每辆车
signed main(){
    n=read(),m=read();
    for(int i=0;i<n;++i){
        c[i].a=read(),c[i].b=read();
    }//输入A,B
    for(int j=0;j<m;++j){
        x=read(),y=read(),t=read(),ans=0;
        memset(space,0,sizeof space);
        for(int i=0;i<n;++i){
            if((t/(c[i].b-c[i].a))%2==1){
                space[i]=(c[i].b-c[i].a)-t%(c[i].b-c[i].a);
            }
            else{
                space[i]=t%(c[i].b-c[i].a);
            }
            space[i]+=c[i].a;//求车的位置,记住要在c[i].a的基础上加
            if(space[i]>=x&&space[i]<=y)++ans;//统计
        }
        printf("%lld\n",ans);//输出
    }
    return 0;
}

标签:le,Knockout,bmod,long,距离,&&,NEERC2014,Racing
From: https://www.cnblogs.com/z10h09x11/p/17990751

相关文章

  • Implicit隐式渲染入门 SDF SphereTracing
    Implicit何为隐式?隐式(Implicit)的是显式(explicit)的反义词。explicit可以简单理解为用网格等信息描述的几何形状,网格信息是离散的,信息量越大描述越精准。Implicit则不需要顶点等显式信息,用方程,或者说有符号距离场(SignedDistanceField)即SDF,表示几何形状的数学模型。SDF在SD......
  • Farewell to Pika, Embracing the Arrival of PikiwiDB in 2024
    今年(2023年) 3 月份于某接手项目时,OpenAtom 基金会 Pika 项目( https://github.com/OpenAtomFoundation/pika )对接人告诉我,OpenAtom 基金会旗下的多个项目都面临了一个共同问题:项目名称被第三方注册为商标。出于合规要求,余三月份重点工作之一就是给项目重新申请一个全新......
  • Farewell to Pika, Embracing the Arrival of PikiwiDB in 2024
    今年(2023年) 3 月份于某接手项目时,OpenAtom 基金会 Pika 项目(https://github.com/OpenAtomFoundation/pika)对接人告诉我,OpenAtom 基金会旗下的多个项目都面临了一个共同问题:项目名称被第三方注册为商标。出于合规要求,余三月份重点工作之一就是给项目重新申请一个全新的......
  • rabbitMq怎么查看队列日志消息-Tracing日志
    Trace是Rabbitmq用于记录每一次发送的消息,方便使用Rabbitmq的开发者调试、排错。1、启动Tracing插件在RabbitMQ中默认是关闭的,需手动开启。此处rabbitMQ是使用docker部署的##进入rabbitMq中dockerexec-itrabbitmq1bash##启动日志插件rabbitmq-pluginsenablerabbitmq_tr......
  • reproduce-ray-tracing-in-one-weekend
    reproduce-ray-tracing-in-one-weekendCreated:2023-12-24T22:08+08:00Published:2023-12-26T09:38+08:00Categories:ComputerGraphics成像模型:vec3,rayimage和viewport大小几何约定,up-y,right-x,back-zcamera和viewport中的各个点和向量viewport......
  • odigos 基于ebpf 以及OpenTelemetry 的分布式tracing 解决方案
    按照odigos官方的介绍是不需要进行代码的修改就可以实现方便的跨应用的分布式trace,目前支持java,python,net,go,js等语言目前看官方的介绍,安装是比较简单的(核心基于了k8s),目前官方文档比较清晰可以试用下说明目前开源分布式trace的工具是越来越多了,同时基于ebpf以及OpenTelemetry标......
  • 【图形学笔记】Lecture12-Path Tracing-路径追踪
    Lecture12-PathTracing-路径追踪目录Lecture12-PathTracing-路径追踪RayCasting光线追踪Ray-surfaceintersection射线-表面判交光线和平面光线和三角形判交——MöllerTrumbore算法RayIntersectionWithSphereRayIntersectionWithImplicitSurfaceBoundingVolumes......
  • odigos 基于ebpf 以及OpenTelemetry 的分布式tracing 解决方案
    按照odigos官方的介绍是不需要进行代码的修改就可以实现方便的跨应用的分布式trace,目前支持java,python,net,go,js等语言目前看官方的介绍,安装是比较简单的(核心基于了k8s),目前官方文档比较清晰可以试用下说明目前开源分布式trace的工具是越来越多了,同时基于ebpf以及OpenTelemetry......
  • 当我们谈Raytracing时我们在谈些什么
    【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!科普性的介绍一下光追。不讲蒙特卡洛和分层抖动采样,不讲PBRT,不讲BRDF,不讲渲染方程,降噪方法,不讲SDF的细节概念。简而言之,复杂的一概不讲,麻绳专挑细处断......
  • Rust 日志记录库 tracing
    Rust日志记录库tracing​#2023-09-26#​#日志#​#tracing#一个好用的日志跟踪系统,可以帮助我们很快的定位程序中的bug。tracing不仅仅可以作为一个日志库去使用,还可以作为一个程序追踪库,帮助我们分析程序中存在的问题。tracing-Rusttracing各个模块​tracing​​:......