CodeForces - 558DGuess Your Way Out! II(map 扫描线)

  1. 解题思路:区间覆盖问题,求出被访问过q次的区间。用扫描线区间左端+1,右端-1,区间左闭右开,注意一种特殊情况h=1,q=0
  2. AC代码
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
int main()
{int h,q;long long hl=1,hr=1;map<long long,int>mp;scanf("%d%d",&h,&q);for(int i=1;i<h;i++)hl=2*hl,hr=2*hr+1;//printf("%lld %lld\n",hl,hr);if(q==0){if(h==1)printf("1\n");elseprintf("Data not sufficient!\n");}else {for(int i=0;i<q;i++){int x,ans;long long l,r;scanf("%d%lld%lld%d",&x,&l,&r,&ans);while(x!=h){x++;l*=2,r=2*r+1;}//printf("l=%lld r=%lld\n",l,r);if(ans){mp[l]++,mp[r+1]--;//printf("mp[%lld]=%d,mp[%lld]=%d\n",l,mp[l],r+1,mp[r+1]);}else{mp[hl]++,mp[l]--;mp[r+1]++,mp[hr+1]--;//printf("mp[%lld]=%d,mp[%lld]=%d\n",l,mp[l],r+1,mp[r+1]);}}map<long long,int>::iterator it;int sum=0,num=0,flag=0;long long beg=-1,end=-1;for(it=mp.begin();it!=mp.end();it++){//printf("%lld,%d\n",it->first,it->second);sum+=it->second;if(sum==q){beg=it->first;flag=1;num++;}else if(flag==1&&sum<q){flag=0;end=it->first;// printf("%lld\n",end);}}// printf("%lld %lld\n",beg,end);//printf("%d\n",num);if(num==1&&end-beg==1)printf("%lld\n",beg);else if(num>1||end-beg>1)printf("Data not sufficient!\n");else if(!num)printf("Game cheated!\n");}return 0;
}

CodeForces - 558DGuess Your Way Out! II(map 扫描线)相关推荐

  1. CodeForces - 1480D2 Painting the Array II(dp)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,现在要求拆分成两个子序列,使得两个子序列的贡献之和最 小.对于一个序列的贡献就是,去掉相邻且相同的字母后的长度,即 ∑i=1n[a[i]! ...

  2. CodeForces - 641ELittle Artem and Time Machine——map+树状数组

    [题目描述] CodeForces - 641ELittle Artem and Time Machine [题目分析] 题目的意思大概是有三种操作 1.在时间t加入一个数字x 2.在时间t删除一个数 ...

  3. 850. 矩形面积 II:扫描线+离散化+线段树

    Difficulty: hard 标签: 扫描线, 离散化, 线段树 题目链接 力扣 题目解析 面试代码 /** x轴方向使用扫描线,y轴方向使用线段树维护扫描线的长度和每个区间覆盖的次数.由于y轴方 ...

  4. codeforces gym101482 J Judging Troubles 暴力+map

    https://vjudge.net/problem/Gym-101482J 题目大意:给出两个判题系统的判题结果,问最多能还原多少情况. 思路:搞两个mapmapmap分别存一下,然后遍历第一个ma ...

  5. 【Codeforces】501B Misha and Changing Handles(map)

    http://codeforces.com/problemset/problem/501/B map的应用,让新的名字作为key值,旧的名字作为value值,然后一一对应.如果这个旧名字不在map里, ...

  6. 2020 GDUT Rating Contest II (Div. 2) A. Fence Planning

    来源 codeforces 2020 GDUT Rating Contest II (Div. 2) CF链接 题目: Farmer John's N cows, conveniently numbe ...

  7. 字符串专题:map POJ 1002

    第一次用到是在'校内赛总结'扫地那道题里面,大同小异 map<string,int>str 可以专用做做字符串的匹配之类的处理 string donser; str [donser]++ ...

  8. java中的map是什么_转载java中Map的详解

    Map简介 什么是map? map是一个接口  是一个将建key 映射到值的对象. map的主要作用是什么? 可以通过创建一个map的实现类 来存放 数据 值 和值的描述 也可以通过描述去取得数据 将 ...

  9. ES5(三)——数组新增函数every()、some()、map()、foreach()、filter()和reduce()汇总

    文章目录 一.every() 二.some() 三.foreach() 四.map() 映射/对应 五.filter() 六.reduce汇总 一.every() 专门判断一个数组中是否所有元素都符合 ...

  10. 2019.11.2图论专题(AtCoder Splatter Painting、President and Roads、Shortest Cycle、ISlands II)

    D:AtCoder Grand Contest 012 Splatter Painting 题目描述 Squid喜欢在图中为一些顶点染色(毕竟是鱿鱼 ) 现在有一张由 N 个顶点和 M 条边组成的简单 ...

最新文章

  1. SpringCloud Alibaba微服务实战(二) - Nacos服务注册与restTemplate消费
  2. 后序遍历的非递归算法python_刷题系列 - Python用非递归实现二叉树后续遍历
  3. 苹果呼叫转移设置不了_原来苹果手机是用这种方式清理垃圾,随意腾出20G,难怪能用5年...
  4. RHEL7OSP-6.0的openstack云主机发放
  5. jpa添加索引的几种方式
  6. Ubuntu系统强制关闭程序
  7. mysql flask-login_Flask框架通过Flask_login实现用户登录功能示例
  8. 设计灵感|简约复古风格海报设计这样玩
  9. ONNX系列一 --- 带有ONNX的便携式神经网络
  10. strnpy函数的用法
  11. Maven创建servlet项目演示(三)
  12. Linux kernel进行编译时提示No rule to make target `menconfig'
  13. python小程序贪吃蛇_微信小程序实现的贪吃蛇游戏【附源码下载】
  14. 操作系统学习笔记 002 安装NASM
  15. python一定要有主函数_Python 为什么没有 main 函数?为什么我不推荐写 main 函数?...
  16. 双系统安装:Deepin 尝鲜
  17. Cassandra 数据模型
  18. 伊家田园帮您划重点!2021年重点强农惠农政策
  19. aecmap快捷键_ArcGIS编辑操作的常用快捷键
  20. vb中产生随机数经典实例分析

热门文章

  1. VFL-SFP业界首个光纤可视化故障定位器SFP模块
  2. onenote使用python开发_我应该用onenote还是印象笔记?
  3. 代码动态改变view的大小
  4. 记关于DNS协议的一次学习(递归查询与迭代查询)
  5. ES 索引mapping之keyword;term查询添加keyword查询;更改mapping keyword类型
  6. android mapping文件作用,Android打包代码混淆后的Mapping文件路径
  7. HTML+CSS 模仿淘宝部分网页(未实现事件)
  8. 引用与取地址符的区别
  9. 搜狗站长工具【post请求模拟登录】代码分享总结【批量提交搜狗收录网址】
  10. 图像处理网络资源【转】