CF1394C Boboniu and String

技术CF1394C Boboniu and String CF1394C Boboniu and String题解
好妙的一道题。
将每个串都抽象成二维平面上的一个点 \((x_i,y_i)\),\(x

CF1394C Boboniu和线

题解

好妙的一道题。

将每个串都抽象成二维平面上的一个点\((x_i,y_i)\),\(x_i\)为其中普通的个数,\(y_i\)为B的个数。

二分答案\(中\),那么对于一个点\((x_i,y_i)\),能通过不超过\(中间\)次操作到达它的点的范围是一个凸六边形,所以可以用不等式描述这个范围:

\[\begin{aligned}

x_i-mid\le x\le x_i mid\\

y_i-mid\le x\le y_i mid\\

x _ I-y _ I-中间\ le x-y \ le x _ I-y _ I中间\

\ end {对齐}

\]对所有的\(i\),将以上范围求交即可。

有些细节。

代码

#包含cstdio

#包含cstring

#包含cctype

#包含算法

#包含实用程序

使用命名空间标准;

#定义For(Ti,Ta,Tb)For(int Ti=(Ta);ti=(Tb);Ti)

#为(int Ti=(Ta)定义Dec(Ti、Ta、Tb);ti=(Tb);- Ti)

templatetypename T

无效读取(T _ x){ 0

_ x=0;int _ f=1;

char _ ch=getchar();

while(!是数字(_ ch))_ f=(_ ch=='-'-1: _ f),_ ch=getchar();

而(是数字(_ ch))_ x=_ x * 10(_ch^48),_ch=getchar();

_ x *=_ f;

}

templatetypename T,typename.一个参数名

void Read(T _x,Args.其他){ 0

read(_ x);阅读(其他.);

}

typedef长ll长

typedef pairint,int Point

const int N=3e5 5,Len=5e5 5

int n;

点要点

点检查(中间)(

int xmin=-Len,xmax=Len,ymin=-Len,ymax=Len,xymin=-Len,xymax=Len

对于(I,1,n){ 0

xmin=max(xmin,poi[i]).第一次中);

xmax=min(xmax,poi[i]).第一个mid);

ymin=max(ymin,poi[i]).秒中);

ymax=min(ymax,poi[i]).第二个mid);

xymin=max(xymin,poi[i]).第一点。秒中);

xymax=min(xymax,poi[i]).第一点。第二个mid);

}

xmin=max(0,xmin),ymin=max(0,ymin);

if(xminxmax | | yminymax | | xyminxymax)返回{0,{0,0 } };

int xymn=xmin-ymax,xymx=xmax-ymin;

if(xymnxymax||xymxxymin)返回{0,{0,0 } };

xymax=min(xymax,xymx);

xymin=max(xymin,xymn);

int pxmax=min(ymax xymax,xmax),pymax=min(pxmax-xymin,ymax);

返回{1,{pxmax,pymax } }

}

int main(){ 0

read(n);

充电温度[Len];

对于(I,1,n){ 0

scanf("% s ",temp 1);

int len=strlen(temp 1),CNT=0;

对于(j,1,len){ 0

cnt=温度[j]==' N ';

}

poi[i]={cnt,len-CNT };

}

int l=0,r=1e6

点美国国家标准(American National Standards的缩写)

while(lr){ 0

int mid=(l r)1;

如果(检查(中间))。首先)r=中间,ans=检查(中间)。第二;

否则l=mid 1;

}

printf('%d\n ',l);

对于(I,1,ans。首先)放char(' N ');

对于(I,1,ans。第二)放char(' B ');

返回0;

}

作者:阿兰_赵

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

(0)

相关推荐

  • Spring Security怎么处理Session 共享

    技术Spring Security怎么处理Session 共享这篇文章主要介绍“Spring Security怎么处理Session 共享”,在日常操作中,相信很多人在Spring Security怎么处理Session

    攻略 2021年11月14日
  • dya 2.c++语法

    技术dya 2.c++语法 dya 2.c++语法构造函数 用途:用来初始化类对象的数据成员; 构造函数和类名相同,没有返回值,可以有多个构造函数 不同的构造函数形参数量或者类型要有所区别

    礼包 2021年12月2日
  • debug D命令如何查看指定地址及其之后的128字节的内容

    技术debug D命令如何查看指定地址及其之后的128字节的内容debug D命令如何查看指定地址及其之后的128字节的内容,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到

    攻略 2021年11月11日
  • css3标准是在哪年完成的

    技术css3标准是在哪年完成的本篇内容介绍了“css3标准是在哪年完成的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    攻略 2021年12月11日
  • ipad怎么隐藏应用,ipadair怎么隐藏应用

    技术ipad怎么隐藏应用,ipadair怎么隐藏应用有时ipad怎么隐藏应用,我们不喜欢小朋友们乱玩我们的iPhone或iPad程序,那么该怎么把这些程序隐藏起来?今天小编就来跟大家分享一下隐藏的方法。 具体如下:
    1

    生活 2021年10月22日
  • 删除排序数组中的重复项 ----java

    技术删除排序数组中的重复项 ----java 删除排序数组中的重复项 ----java给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。

    礼包 2021年11月4日