CF538G

技术CF538G CF538G不知道在哪里找到的题,感觉评不到黑,不过是 Good Tea.首先了解将坐标系翻转 $45^{\circ}$ 的 trick ,对于每个坐标 $(x,y)$,翻转后的坐标为

CF538G

我不知道我在哪里找到这个问题的,但我不认为它是黑色的。只是好茶。

首先,了解将坐标系翻转45美元的技巧。对于$(x,y)$,翻转的坐标是$(x,y,x-y)$。这样,$x$和$y$的坐标相互独立,不会有关联。

在我知道这些之后,我实际上想出了一个\*3100。

考虑如果没有周期怎么办。我们按时间对所有的限制进行排序,只有当每个坐标轴上$i-1$到$i$的距离为$\leq t_i-t_{i-1}$,并且距离和时间的奇偶性相同时,$i$ th限制才能满足。

显然,宇称与周期无关,可以先分开判断,只需要考虑有周期时的距离限制。

对于每一个$t$,我们可以用$ t=k \乘以l r$的形式来表示,这意味着我们已经完成了$k$个完整的循环,并且在最新的循环中达到了$r$ th。我们假设一个完整周期的位移是$(X,Y)$显然,如果不止一个$r$是相同的,那么$(X,Y)$就可以确定。

对于其余的情况,显然有公式$ (p _ {r},q _ r)=(x _ i,y _ I)-k \u次(x,y) $上一句中的$ p _ r $和$ q _ r $表示$0$次和$r$的位置。对于两个相邻的$r$ $i$和$i'$,我们可以列出不等式$ (p _ r,q _ r)-(p _ {r'},q _ {r'}) \ leqt _ I-t _ {I'} $,并通过代换得到一些。

在得到$(X,Y)$的范围后,可以构造任意一组* *奇偶性* *。我们按照$r$从小到大逐一构造,因为两点的距离和时间是确定的,所以可以确定1$和$-1$的多少。

这个问题的思路挺新鲜的,主要是代码写起来比较麻烦。

为了方便起见,可以添加一组限制。当$t=0$,坐标为$(x,y)=(0,0)$。

同时要注意不平等的向上舍入和向下舍入问题。

` `` cpp

#includebits/stdc。h

#定义服务点系统(“暂停”)

使用命名空间标准;

typedef long long lld

const int maxn=2e6 800

const lld INF=2e6

int n,m;int hook=0;

结构节点{lld t,k,r,x,y;} q[2*maxn],fin

bool运算符(节点a,节点b){ return a . Rb . r;}

bool运算符==(节点a,节点b){ return(a . x==b . xa . y==b . y);}

节点mi(节点a,lld k,节点b)

{return (node){a.t,a.k,a.r,a.x-k*b.x,a . y-k * b . y };}

void EFS(){ printf(' NO \ n ');退出(0);}

lld xl=-INF,xr=INF,yl=-INF,yr=INF

lld d1v(lld a,lld b){ return((a0a % b)a/B- 1: a/b);}

//去掉整体

int mx[maxn],my[maxn],sx[maxn],sy[maxn];

lld nev(lld x){ return(x % 2x 1: x);}//下一晚上

lld neo(lld x){ return(x % 2x : x 1);}//下一个奇数

char ssh(int x,int y)

{

if(x==1y==1)返回‘R’;

if(x==1y==-1)返回‘U’;

if(x==-1y==1)返回‘D’;

if(x==-1y==-1)返回' L ';

返回0;

}

Void求解(lld a,lld b,lld典型值)//ax=b形式的不等式

{

if(!ab0)EFS();

else if(!a)返回;

lld l=-INF,r=INF

if(a0) r=d1v(b,a);

else l=-d1v(b,-a);

if(!典型值)xl=最大值(xl,l),xr=最小值(xr,r);

否则yl=max(yl,l),yr=min(yr,r);

if(xlxr | | ylyr)EFS();

}

void costr()

{

for(int I=1;I=n;(一)

q[i]=mi(q[i],q[i]。k,fin);

q[n1]=fin;

//随便写结构。

for(int I=2;I=n ^ 1;(一)

{

int lp=q[i-1]。r 1,RP=(I=NQ[I]. r :m);

for(int j=q[i-1])。R1;j=rpj)

{

if(j-lp 1=abs(q[i])。x-q[i-1]。x))

mx[j]=(q[i]。xq[i-1]。x 1:-1);

else MX[j]=(j % 2 1:-1);

if(j-lp 1=abs(q[i])。y-q[i-1]。y))

我的[j]=(q[i]。yq[i-1]。y 1:-1);

否则我的[j]=(j % 2 1:-1);

}

}

for(int I=1;I=m;(一)

printf('%c ',ssh(mx[i],my[I]);

printf(' \ n ');

退出(0);

}

int main()

{

freopen('CF538G.in ',' r ',stdin);

scanf('%d%d ',n,m);n;

q[1]=(节点){0ll,0ll,0ll,0ll,0ll };

for(int I=2;I=n;(一)

{

lld t,x,y;scanf('%lld%lld%lld ',t,x,y);

q[i]=(节点){t,t/m,t%m,x y,x-y };

}

for(int I=2;I=n;(一)

{

lld dx=(q[i]。x-q[i-1]。x)% 2;dx=(dx0-dx : dx);

lld dy=(q[i]。y-q[i-1]。y)% 2;dy=(dy0-dy: dy);

lld dt=(q[i]。t-q[i-1]。t)% 2;dt=(dt0-dt : dt);

if(dx!=dt||dy!=dt)EFS();

}

排序(q 1,qn1);

int FID=0;

for(int I=2;I=n;(一)

{

lld dk=-q[i]。k q[i-1]。k,dt=q[i]。r-q[i-1]。r;

lld dx=q[i]。x-q[i-1]。x,dy=q[i]。y-q[i-1]。y;

if(q[i]。r==q[i-1]。r)

{

节点fcx=(节点){0,0,0,q[i]。x-q[i-1]。x,q[i]。y-q[i-1]。y };

if % 28 fcx。x % ABS % 28 dk % 29% 21% 3d % 7c % 7 CFC x . y % 28 dk % 29% 21% 3d % 29% 20 EFS % 28% 29% 3b % 20% 0a % 20 fcx。x % 2f % 28-dk % 29% 2 CFC。y % 2f % 3d % 28-dk % 29% 3b % 0a % 20 if % 28% 21 FID % 29% 20% 7 bfin % 3 dfx

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/153038.html

(0)

相关推荐

  • 西游记内容简介200字,西游记简介,100字左右)

    技术西游记内容简介200字,西游记简介,100字左右)书中讲述了唐僧师徒四人一路降妖伏魔西游记内容简介200字,历经整整九九八十一难取经的故事。作者细腻而深刻地塑造了四个极其经典的形象:慈悲、宽厚但软弱、迂腐的师父唐僧;

    生活 2021年10月20日
  • 英语阅读理解练习,英语阅读理解改怎么练习

    技术英语阅读理解练习,英语阅读理解改怎么练习重视句子理解就没有问题英语阅读理解练习,但是要注意这里绝对不是咬文嚼字扣每句话具体什么意思,应该是注重句子间的联系,及文章的主题思想,但凡阅读一定会有你难以理解的单词或句子,一

    生活 2021年10月21日
  • Pythond类在函数中的编程方法是什么

    技术Pythond类在函数中的编程方法是什么Pythond类在函数中的编程方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Pythond类如何进行相

    攻略 2021年10月28日
  • dexp和dimp工具的使用

    技术dexp和dimp工具的使用 dexp和dimp工具的使用dexp和dimp是达梦数据库逻辑备份还原工具,是数据库自带的两个命令行工具。逻辑备份和逻辑还原都是在联机方式下完成的。dexp和dimp对

    礼包 2021年11月1日
  • 本周最新文献速递20211114

    技术本周最新文献速递20211114 本周最新文献速递20211114本周最新文献速递20211114一、精细解读文献 一
    文献题目: Mapping the proteo-genomic conver

    礼包 2021年11月15日
  • Oracle DBA常用脚本中转换执行shell脚本是怎样的

    技术Oracle DBA常用脚本中转换执行shell脚本是怎样的今天就跟大家聊聊有关Oracle DBA常用脚本中转换执行shell脚本是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大

    攻略 2021年11月29日