bzoj 1637: [Usaco2007 Mar]Balanced Lineup【瞎搞】
我是怎么想出来的……
把种族为0的都变成-1,按位置x排升序之后,s[i]表示种族前缀和,想要取(l,r)的话就要\( s[r]-s[l-1]0 s[r]s[l-1] \),用一个map存每个s[i]最早出现的牛的下一个牛的位置,然后每次取到一个s[i],如果mp[s[i]]!=0,则用ans和当前牛位置-mp[s[i]]取max
这里有个方便的地方,因为map的初值为0,所以把坐标都+1,这样就不用记录这个坐标是存了位置0还是没有被扫到了
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
const int N=50005;
int n,s[N],ans;
map<int,int>mp;
struct qwe
{
	int f,x;
}a[N];
bool cmp(const qwe &a,const qwe &b)
{
	return a.x<b.x;
}
int read()
{
	int r=0,f=1;
	char p=getchar();
	while(p>'9'||p<'0')
	{
		if(p=='-')
			f=-1;
		p=getchar();
	}
	while(p>='0'&&p<='9')
	{
		r=r*10+p-48;
		p=getchar();
	}
	return r*f;
}
int main()
{
	n=read();
	for(int i=1;i<=n;i++)
		a[i].f=read()*2-1,a[i].x=read()+1;
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=n;i++)
	{
		s[i]=s[i-1]+a[i].f;
		if(!mp[s[i]])
			mp[s[i]]=a[i+1].x;
		else
			ans=max(ans,a[i].x-mp[s[i]]);//cerr<<a[i].x<<" "<<mp[s[i]]<<endl,
	}
	printf("%d\n",ans);
	return 0;
}
												
											bzoj 1637: [Usaco2007 Mar]Balanced Lineup【瞎搞】的更多相关文章
- bzoj 1637: [Usaco2007 Mar]Balanced Lineup
		
1637: [Usaco2007 Mar]Balanced Lineup Time Limit: 5 Sec Memory Limit: 64 MB Description Farmer John ...
 - BZOJ 1637: [Usaco2007 Mar]Balanced Lineup( sort + 前缀和 )
		
将 0 变为 -1 , 则只需找区间和为 0 , 即前缀和相同的最长区间 , 记录一下每个前缀和出现的最早和最晚的位置 , 比较一下就 OK 了 --------------------------- ...
 - BZOJ 1637 [Usaco2007 Mar]Balanced Lineup:前缀和 + 差分
		
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1637 题意: Farmer John 决定给他的奶牛们照一张合影,他让 N (1 ≤ N ...
 - 1637: [Usaco2007 Mar]Balanced Lineup
		
1637: [Usaco2007 Mar]Balanced Lineup Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 393 Solved: 263[ ...
 - 【BZOJ】1637: [Usaco2007 Mar]Balanced Lineup(前缀和+差分+特殊的技巧)
		
http://www.lydsy.com/JudgeOnline/problem.php?id=1637 很神思想.. 前缀和应用到了极点... 我们可以发现当数量一定时,这个区间最前边的牛的前边一个 ...
 - BZOJ 1699: [Usaco2007 Jan]Balanced Lineup排队( RMQ )
		
RMQ.. ------------------------------------------------------------------------------- #include<cs ...
 - BZOJ 1699: [Usaco2007 Jan]Balanced Lineup排队
		
1699: [Usaco2007 Jan]Balanced Lineup排队 Description 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. ...
 - bzoj 1636: [Usaco2007 Jan]Balanced Lineup  -- 线段树
		
1636: [Usaco2007 Jan]Balanced Lineup Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 772 Solved: 560线 ...
 - bzoj 1699: [Usaco2007 Jan]Balanced Lineup排队 分块
		
1699: [Usaco2007 Jan]Balanced Lineup排队 Time Limit: 5 Sec Memory Limit: 64 MB Description 每天,农夫 John ...
 
随机推荐
- Eclipse Myeclipse 设定文件的默认打开方式
			
Eclipse Myeclipse 设定文件的默认打开方式 菜单:Window -> Preferences -> General -> Editors -> File A ...
 - swift -从相册中选择照片并上传
			
选择本地图片并上传是应用开发中一个比较常见的功能. 原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/det ...
 - 2016 Multi-University Training Contest 3-1011.Teacher Bo,暴力!
			
Teacher Bo Time Limit: 4000/2000 MS (Java/Ot ...
 - Bootstrap官网文档查询
			
Ctrl+F 在出现的小搜索框里面输入要查找的东西.回车即可!
 - 调整JVM内存大小
			
首次运行公司项目,出现了内存溢出,具体出现java.lang.OutOfMemoryError: PermGen space和java.lang.OutOfMemoryError:GC overhea ...
 - Restful 级别划分以及HATEOAS是什么?
			
Restful简介 Rest是一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存 ...
 - RabbitMQ环境搭建教程收集(待实践)
			
先收集,后续再实践. http://blog.csdn.net/zyz511919766/article/details/41896823 http://blog.chinaunix.net/uid- ...
 - 保持WCF服务端与客户端的长连接
			
背景 客户端与服务端使用WCF建立连接后:1.可能长时间不对话(调用服务操作):2.客户端的网络不稳定. 为服务端与客户端两边都写“心跳检测”代码?不愿意. 解决 设置inactivityTimeou ...
 - Systemtap工具查看系统资源使用
			
http://www.xbwolf.com/507 http://blog.csdn.net/kafeiflynn/article/details/6429976 安装步骤yum install sy ...
 - windows安装docker
			
主要參考:http://docs.docker.com/installation/windows/ [1]安装完毕后同意后可能会报错: error in run: Failed to start ma ...