ADAFIELD
- Ada and Field

这个题,如果用一个字来形容的话:-----------------------------------------------嗯!

题意:n*m的空白矩形坐落在XY轴,Q次操作,每次可以在y轴或x轴的矩形区域内画一条直线,是直线啊。问每次操作后最大的矩形面积多大。

对于思路我只能拍手称赞了,一开始想不到怎么优化,想着用优先队列或set来存当前边的最大值,但是更新的时候却 无法实时更新。赛后看其他选手的代码才突然想到可以用map的键值来排序,每次插入一个数只需断一条边加两条边,各种操作的的复杂度都是log。

int main()
{
int t,Q,k;
ll n,m,p,maxx[2];
scanf("%d",&t);
while(t--)
{
scanf("%I64d%I64d%d",&n,&m,&Q);
set<ll>q[2];
set<ll>::iterator it,lp,rp;
map<ll,ll,greater<ll> >qq[2];
q[0].insert(0),q[0].insert(n);//0表示竖直方向插入
q[1].insert(0),q[1].insert(m);//1表示水平方向插入
++qq[0][n],++qq[1][m];
maxx[0]=n,maxx[1]=m;
while(Q--)
{
scanf("%d%I64d",&k,&p);
if(q[k].find(p)==q[k].end())
{
q[k].insert(p);
it=q[k].lower_bound(p);
lp=rp=it;
rp++;//后一个的值
if(lp!=q[k].begin()) lp--;//前一个的值
if(rp==q[k].end()) rp--;
++qq[k][*rp-*it];//更新
++qq[k][*it-*lp];
--qq[k][*rp-*lp];//删去原来的
if(!qq[k][*rp-*lp]) qq[k].erase(*rp-*lp);//特别需要注意的地方
maxx[k]=qq[k].begin()->first;
}
cout<<maxx[0]*maxx[1]<<endl;
}
}
return 0;
}
ADAFIELD - Ada and Field

SPOJ - ADAFIELD ,Set+map,STL不会超时!的更多相关文章

  1. SPOJ ADAFIELD Ada and Field(STL的使用:set,multiset,map的迭代器)题解

    题意:n*m的方格,“0 x”表示x轴在x位置切一刀,“0 y”表示y轴在y位置切一刀,每次操作后输出当前面积最大矩形. 思路:用set分别储存x轴y轴分割的点,用multiset(可重复)储存x轴y ...

  2. SPOJ IM - Intergalactic Map - [拆点最大流]

    题目链接:http://www.spoj.com/problems/IM/en/ Time limit:491 ms Memory limit:1572864 kB Code length Limit ...

  3. SPOJ 962 Intergalactic Map (网络最大流)

    http://www.spoj.com/problems/IM/ 962. Intergalactic Map Problem code: IM Jedi knights, Qui-Gon Jinn ...

  4. SPOJ 962 Intergalactic Map

    Intergalactic Map Time Limit: 6000ms Memory Limit: 262144KB This problem will be judged on SPOJ. Ori ...

  5. Map <STL>

    map的使用方法: #include <cstdio> #include <map> #include <string> using namespace std; ...

  6. PAT Basic 1083 是否存在相等的差 (20) [hash映射,map STL]

    题目 给定 N 张卡⽚,正⾯分别写上 1.2.--.N,然后全部翻⾯,洗牌,在背⾯分别写上 1.2.--. N.将每张牌的正反两⾯数字相减(⼤减⼩),得到 N 个⾮负差值,其中是否存在相等的差? 输⼊ ...

  7. SPOJ 962 Intergalactic Map (从A到B再到C的路线)

    [题意]在一个无向图中,一个人要从A点赶往B点,之后再赶往C点,且要求中途不能多次经过同一个点.问是否存在这样的路线.(3 <= N <= 30011, 1 <= M <= 5 ...

  8. SPOJ 0962 Intergalactic Map

    题目大意:在一个无向图中,一个人要从A点赶往B点,之后再赶往C点,且要求中途不能多次经过同一个点.问是否存在这样的路线.(3 <= N <= 30011, 1 <= M <= ...

  9. STL笔记(1)map

    STL笔记(1)map STL之map ZZ from http://hi.baidu.com/liyanyang/blog/item/d5c87e1eb3ba06f41bd576cf.html 1. ...

随机推荐

  1. hihocoder1829 Tomb Raider

    思路: 暴力枚举. 实现: #include <iostream> #include <set> #include <vector> using namespace ...

  2. andorid 向上滑动控制标题栏显示

    要实现这样的功能,原理不难,监听滑动距离再设置标题栏的透明度 下面是监听一个带头view的list实现核心代码: mbar是标题栏 mListView.setOnScrollListener(new ...

  3. 正则表达说明—Pattern API

    字符类 [abc]                              匹配a.b.c任意一个字符 [^abc]   匹配除了a.b.c外的任意一个字符 [a-zA-Z]     匹配a-z或A ...

  4. https增加临时证书,tomcat配置

    1Windows下: 1.1 生成keystore文件及导出证书 打开控制台: 运行: %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RS ...

  5. SnowKiting

    原文 Let's go fly a kite...in the snow Reach into your closet,find that dusty kite and clean it off - ...

  6. 洛谷 P2935 [USACO09JAN]最好的地方Best Spot

    题目描述 Bessie, always wishing to optimize her life, has realized that she really enjoys visiting F (1 ...

  7. Windows 8.1 explorer.exe 出错 “Application Hang”

    不知道为什么explorer常常会卡一下 看系统日志发现有来源于“Application Hang”的错误 部分常规信息: 程序 explorer.exe 版本 6.3.9600.17415 停止与 ...

  8. [Q&A]VS 2012 MVC4专案与网站的差异?「ASP.NET组态」的Login账号出现在「新旧两组」会员数据库里面?

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/30/mvc4_vs2012_login_member_db.aspx [Q&a ...

  9. 安卓统一推送联盟融云成唯一IM云服务企业

    10月16日,安卓统一推送联盟在北京正式成立,来自中国信息通信研究院,华为.小米.OPPO等手机厂商,BAT等互联网巨头公司等75家机构及企业代表参加了联盟成立大会,融云也受邀参会并成为首批成员单位中 ...

  10. OCR/Vote disk 维护操作: (添加/删除/替换/移动) (文档 ID 1674859.1)

    适用于: Oracle Database - Enterprise Edition - 版本 10.2.0.1 到 11.2.0.1.0 [发行版 10.2 到 11.2]本文档所含信息适用于所有平台 ...