题目大意:

给定n头奶牛 给定n头奶头所在位置和品种 品种只有G H两种

求一段区间的长度 要求区间内包含的品种满足各品种的数量相同

将一个品种的值设为1 另一个设为-1

假设 i<j 而 1~i的奶牛前缀和 与 1~j的奶牛前缀和 相等

说明 i+1~j 的奶牛总和为0 即两种奶牛的数量相同

#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
#define mem(i,j) memset(i,j,sizeof(i))
#define inc(i,l,r) for(int i=l;i<=r;i++)
#define dec(i,r,l) for(int i=r;i>=l;i--)
#define gcd(i,j) __gcd(i,j);
const int N=1e5+;
const int mod=1e9+;
const double eps=1e-; int n;
struct NODE { int x,t; }a[N];
bool cmp(NODE p,NODE q) { return p.x<q.x; }
int last[N<<]; int main()
{
while(~scanf("%lld",&n)) {
inc(i,,n) {
scanf("%d",&a[i].x);
char c; scanf(" %c",&c);
if(c=='G') a[i].t=;
else a[i].t=-;
}
sort(a+,a++n,cmp);
mem(last,); last[N]=a[].x;
int sum=N, ans=;
inc(i,,n) {
sum+=a[i].t; int t=ans;
if(last[sum]==) last[sum]=a[i+].x;
else ans=max(ans,a[i].x-last[sum]);
}
inc(i,,n) {
int j=i;
while(j<=n && a[j].t==a[i].t) j++;
j--; ans=max(ans,a[j].x-a[i].x);
i=j;
} // 只包含一个品种的情况
printf("%d\n",ans);
} return ;
}

USACO 2014 US Open Fair Photography /// 技巧的更多相关文章

  1. USACO翻译:USACO 2014 DEC Silver三题

    USACO 2014 DEC SILVER 一.题目概览 中文题目名称 回程 马拉松 奶牛慢跑 英文题目名称 piggyback marathon cowjog 可执行文件名 piggyback ma ...

  2. USACO翻译:USACO 2014 FEB SILVER 三题

    USACO 2014 FEB SILVER 一.题目概览 中文题目名称 自动打字 路障 神秘代码 英文题目名称 auto rblock scode 可执行文件名 auto rblock scode 输 ...

  3. USACO翻译:USACO 2014 JAN三题(2)

    USACO 2014 JAN 一.题目概览 中文题目名称 队伍平衡 滑雪录像 滑雪场建设 英文题目名称 bteams recording skicourse 可执行文件名 bteams recordi ...

  4. USACO翻译:USACO 2014 JAN三题(1)

    USACO 2014 JAN 一.题目概览 中文题目名称 滑雪场设计 滑雪降速 滑雪场评级 英文题目名称 skidesign slowdown skilevel 可执行文件名 skidesign sl ...

  5. USACO翻译:USACO 2014 MARCH Silver三题

    USACO 2014 MARCH 一.题目概览 中文题目名称 农田灌溉 懒牛 牛叫 英文题目名称 irrigation lazy mooomoo 可执行文件名 irrigation lazy mooo ...

  6. USACO翻译:USACO 2014 US Open 三题

    USACO 2014 US Open 一.题目概览 中文题目名称 牧场装饰 里程表 牛像展览 英文题目名称 decorate odometer fairphoto 可执行文件名 decorate od ...

  7. BZOJ3540: [Usaco2014 Open]Fair Photography

    3540: [Usaco2014 Open]Fair Photography Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 72  Solved: 29 ...

  8. bzoj 3540: [Usaco2014 Open]Fair Photography

    3540: [Usaco2014 Open]Fair Photography Description FJ's N cows (2 <= N <= 100,000) are standin ...

  9. [BZOJ3535][Usaco2014 Open]Fair Photography

    [BZOJ3535][Usaco2014 Open]Fair Photography 试题描述 FJ's N cows (1 <= N <= 100,000) are standing a ...

随机推荐

  1. poj2752Seek the Name, Seek the Fame(next数组)

    题目传送门 Seek the Name, Seek the Fame Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 2439 ...

  2. fiddler抓取手机端的数据流量包

    1.首先下载安装fiddler 2.然后打开fiddler,进入到tools-->options-->connections 3.然后进入到https 4.设置完成后,查找本机ip 然后打 ...

  3. 卸载 Bash On Ubuntu On Windows

    1.打开cmd,输入lxrun /uninstall /full,然后根据提示输入y即可开始卸载. 已失效

  4. Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory

    执行下面的代码报错: $pdo = new PDO('mysql:dbname=db_test;host=localhost', 'root', '123456'); PHP Fatal error: ...

  5. HTML转成Excel设置单元格格式(文本)

    1) 文本:vnd.ms-excel.numberformat:@ 2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd 3) 数字:vnd.ms-excel.numb ...

  6. Linux将动态IP改为静态IP

    1.编辑 ifcfg-eth0 文件,vim 最小化安装时没有被安装,需要自行安装不描述. 2.修改如下内容 BOOTPROTO="static" #dhcp改为static ON ...

  7. Oracle之子查询:Top-N问题

    学习了SQL子查询,遇到个Top-N问题,即:加入有张工资表(这里使用Oracle SCOTT用户的emp表),需要查找工资最高的3个员工信息,以下列格式输出: 乍眼一看,这很简单啊,对sal进行排序 ...

  8. private: CRITICAL_SECTION m_cs;

    CRITICAL_SECTION m_cs;   //临界区 私有数据成员  pop  数据结构 push 临界区 保护 2.类CCriticalSection的对象表示一个“临界区”,它是一个用于同 ...

  9. postgres服务安装,启动和配置

    安装以及启动 yum install readline-devel tar xf postgresql-11.1.tar.gz cd postgresql-11.1 ./configure --pre ...

  10. 数组(R语言)

    myarray = <- array (vector, dimensions, dimnames) 例如,生成一个2*3*4的数组: dim1 <- c("A1",&q ...