USACO 2014 US Open Fair Photography /// 技巧
题目大意:
给定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 /// 技巧的更多相关文章
- USACO翻译:USACO 2014 DEC Silver三题
		
USACO 2014 DEC SILVER 一.题目概览 中文题目名称 回程 马拉松 奶牛慢跑 英文题目名称 piggyback marathon cowjog 可执行文件名 piggyback ma ...
 - USACO翻译:USACO 2014 FEB SILVER 三题
		
USACO 2014 FEB SILVER 一.题目概览 中文题目名称 自动打字 路障 神秘代码 英文题目名称 auto rblock scode 可执行文件名 auto rblock scode 输 ...
 - USACO翻译:USACO 2014 JAN三题(2)
		
USACO 2014 JAN 一.题目概览 中文题目名称 队伍平衡 滑雪录像 滑雪场建设 英文题目名称 bteams recording skicourse 可执行文件名 bteams recordi ...
 - USACO翻译:USACO 2014 JAN三题(1)
		
USACO 2014 JAN 一.题目概览 中文题目名称 滑雪场设计 滑雪降速 滑雪场评级 英文题目名称 skidesign slowdown skilevel 可执行文件名 skidesign sl ...
 - USACO翻译:USACO 2014 MARCH  Silver三题
		
USACO 2014 MARCH 一.题目概览 中文题目名称 农田灌溉 懒牛 牛叫 英文题目名称 irrigation lazy mooomoo 可执行文件名 irrigation lazy mooo ...
 - USACO翻译:USACO 2014 US Open 三题
		
USACO 2014 US Open 一.题目概览 中文题目名称 牧场装饰 里程表 牛像展览 英文题目名称 decorate odometer fairphoto 可执行文件名 decorate od ...
 - BZOJ3540: [Usaco2014 Open]Fair Photography
		
3540: [Usaco2014 Open]Fair Photography Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 72 Solved: 29 ...
 - bzoj 3540: [Usaco2014 Open]Fair Photography
		
3540: [Usaco2014 Open]Fair Photography Description FJ's N cows (2 <= N <= 100,000) are standin ...
 - [BZOJ3535][Usaco2014 Open]Fair Photography
		
[BZOJ3535][Usaco2014 Open]Fair Photography 试题描述 FJ's N cows (1 <= N <= 100,000) are standing a ...
 
随机推荐
- java--二叉树解析及基本实现
			
一.二叉树的结构 在进行链表结构开发的过程之中,会发现所有的数据按照首尾相连的状态进行保存,那么 在进行数据查询时为了判断数据是否存在,这种情况下它所面对的时间复杂度就是"O(n)" ...
 - Git文件操作命令
			
添加文件 git add 添加指定文件: git add test.txt Test.java 添加所有文件: git add . 取消添加文件 git reset HEAD – filename g ...
 - 纯css隐藏移动端滚动条解决方案(ios上流畅滑动)---转载
			
html代码展示(直接复制代码保存至本地文件运行即可): <!DOCTYPE html> <html lang="en"> <head> < ...
 - Flask+elasticsearch实现搜索引擎入门教程+Curl调试
			
前几天,在github上看到了一个关于elasticsearch的小项目,有点小兴趣,于是就结合着Flask,研究了一下,分享给大家. 准备资料: 1.安装elasticsearch 参考教程:htt ...
 - 5分钟搞定android混淆(转)
			
转自:https://www.jianshu.com/p/f3455ecaa56e 前言 混淆是上线前挺重要的一个环节.android使用的ProGuard,可以起到压缩,混淆,预检,优化的作用.但是 ...
 - day12 python函数名的应用 闭包 迭代器
			
day12 python 一.函数名的应用(是第一类对象) 函数名的命名规范和变量是一样的 函数名其实就是变量名 def func(): print('i am funct ...
 - java中数据库和VO的一一对应关系
			
如图所示,数据库中数据如果有下划线,则JavaVO中删除,除第一个单词外,其他单词首字母大写
 - H3C F100-S-G2接口配置
			
网络环境简单一台F100-S-G2(192.168.1.197),一台S3600,三台服务器(同一网段192.168.1~3),实现互通. 其他都不用说了配置成同一网段地址就行,主要说一下F100配置 ...
 - css 多行省略号兼容移动端
			
浏览器兼容css样式 -webkit-line-clamp: ; display: -webkit-box; overflow: hidden; text-overflow: ellipsis; te ...
 - Spring 讲解(二 )
			
1.Spring 容器加载的3种方式 public class ServiceTest { public static void main(String[] args) { //Spring容器加载有 ...