题目链接:https://cn.vjudge.net/contest/250168#problem/D

题目大意:给你一些点的坐标,这些点属于两个帮派,让你将这些点分进两个不能重叠的矩形中,问你最多两个矩形中不同帮派之和为多少?

具体思路:

将点分别按照x升序进行排序,按照y升序进行排序。横着扫描一遍,竖着扫描一遍,求出在扫描的过程中和的最大值。

AC代码;

#include<bits/stdc++.h>
using namespace std;
# define maxn 1000000+10
struct node
{
int x,y;
char cost;
} q[maxn];
bool cmp1(node t1,node t2)
{
return t1.x<t2.x;
}
bool cmp2(node t1,node t2)
{
return t1.y<t2.y;
}
int xb[maxn],xw[maxn],yb[maxn],yw[maxn];
void init()
{
memset(xb,0,sizeof(xb));
memset(xw,0,sizeof(xw));
memset(yb,0,sizeof(yb));
memset(yw,0,sizeof(yw));
}
int main()
{
int n;
scanf("%d",&n);
getchar();
for(int i=1; i<=n; i++)
{
scanf("%d %d %c",&q[i].x,&q[i].y,&q[i].cost);
}
sort(q+1,q+n+1,cmp1);
for(int i=1; i<=n; i++)
{
if(q[i].cost=='b')
{
xb[i]++;
}
if(q[i].cost=='w')
{
xw[i]++;
}
xb[i]+=xb[i-1];
xw[i]+=xw[i-1];//求x的前缀和
}
sort(q+1,q+n+1,cmp2);
for(int i=1; i<=n; i++)
{
if(q[i].cost=='b')
{
yb[i]++;
}
if(q[i].cost=='w')
{
yw[i]++;
}
yb[i]+=yb[i-1];
yw[i]+=yw[i-1];//求y的前缀和
}
int maxx=-1;
for(int i=1; i<=n; i++)
{
int temp1=xb[i]+xw[n]-xw[i];
int temp2=xw[i]+xb[n]-xb[i];
maxx=max(maxx,max(temp1,temp2));
}
for(int i=1; i<=n; i++)
{
int temp1=yb[i]+yw[n]-yw[i];
int temp2=yw[i]+yb[n]-yb[i];
maxx=max(maxx,max(temp1,temp2));
}
printf("%d\n",maxx);
return 0;
}

最新文章

  1. 大理石在哪里UVa 10474
  2. SELECT控件操作的JS代码示例
  3. window7下使用vagrant打造lamp开发环境(二)
  4. 登陆sqlserver及修改端口号 (转)
  5. Oozie的安装过程
  6. hdu 5183 Negative and Positive (NP)
  7. 【最短路】埃雷萨拉斯寻宝(eldrethalas) 解题报告
  8. [转]iOS Anti-Debugging Protections
  9. Xcode 添加前缀
  10. 【BZOJ3223】文艺平衡树(Splay)
  11. api-gateway实践(13)新服务网关 - 断路保护/熔断机制
  12. [Mysql]备份同库中一张表的历史记录 insert into ..select
  13. Teamviewer远程ssh命令行更改密码启动
  14. Linux内核分析——第三章 进程管理
  15. Python3入门(八)——面向对象OOP
  16. IntellijIDEA快速入门(Windows版)
  17. 路由器mtu值设置
  18. python模块路径
  19. EC20 MODULE serial com log in passwd
  20. linux 常规操作EOF写法梳理

热门文章

  1. codeforces439B
  2. Spark_RDD之RDD操作简介
  3. IDEA上传码云报错Push rejected: Push to origin/master was rejected
  4. MT【15】证明无理数(1)
  5. 【LightOJ 1136】Division by 3(简单数学)
  6. 洛谷P3085 [USACO13OPEN]阴和阳Yin and Yang(点分治,树上差分)
  7. 述 SQL 中的 distinct 和 row_number() over() 的区别及用法
  8. 沉迷Link-Cut tree无法自拔之:[BZOJ2594][Wc2006]水管局长数据加强版
  9. 【BZOJ1925】[SDOI2010]地精部落(动态规划)
  10. 快速幂&amp;快速乘法