题目链接

题意:

给出n和q表示有一棵深度为n的完全二叉树

叶子节点中有恰好一个点是出口

主角从根往下走,但不知道出口在哪里,但主角会获得q个提示

q个提示 格式: deep [l, r] ok

意思为 深度为deep 时, 出口 ok为1时:可能在 /  ok为0时:一定不在 [l,r] 区间 

目标:

若根据这q个提示能找到出口则输出叶子节点下标
有多个可能的出口则输出data not sufficient
若给出的提示互相矛盾输出 Game cheatde

思路:

①首先把所有提示的区间都映射到叶子节点上(即深度为n的那一层);

②先把一定不在的问题转成2个一定存在的提示,比方说最大深度为4,某次询问告诉你出口一定不在[10,13],

那么出口就可能在[8,9]和[14,15];

③那么显然每个提示里都包含了出口,所以我们查询一下哪个点是被q个区间覆盖了,则这个点就是出口。

代码如下:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
typedef long long ll;
ll L[55], R[55];
int n, q, deep, ok;
map<ll, int >mp;
int main()
{L[1] = R[1] = 1;for(int i = 2; i <= 50; i++){L[i] = L[i-1] << 1, R[i] = R[i-1] << 1|1; //深度为i层的左右端点 }scanf("%d%d", &n, &q);if(q == 0){if (n == 1)puts("1");else puts("Data not sufficient!");return 0;}for(int i = 0; i < q; i++){ll l, r;scanf("%d%I64d%I64d%d", &deep, &l ,&r, &ok);while(deep < n){l <<= 1, r = r << 1|1;deep ++;}if(ok){mp[l] ++, mp[r+1]--;}else{mp[L[n]]++, mp[l]--;mp[r+1]++, mp[R[n]+1]--;}}int sum = 0;ll pre = -1, cnt = 0, ans = 0; //cnt表示出口的个数,ans表示出口 for(map<ll, int>::iterator i = mp.begin(); i != mp.end(); i++){sum += i->second;if(pre != -1){cnt += i->first-pre;ans = pre;}if(sum == q) pre = i->first;else pre = -1;}if (cnt == 0)puts("Game cheated!");  else if (cnt > 1)puts("Data not sufficient!");  else printf("%I64d\n", ans);  return 0;
} 

codeforces 558D Guess Your Way Out! II相关推荐

  1. 连飞学长的爱 解题报告 Apare_xzc

    连飞学长的爱 解题报告 2019/2/22 vj链接 A-A CodeForces - 560A 题意: 有一套纸币,有n个币种,问是否能构成任意面值? input: n a1 a2 - an 数据范 ...

  2. linux中文件链接,关于Linux中文件,链接的一些思考

    在Unix系统中,操作系统为磁盘上的文本与图像,鼠标键盘操作,网络交互等IO操作设计了一组通用API. 使他们被处理的时候可统一用字节流的方式.所以说,除了进程之外,其他的一切均可看做文件. Linu ...

  3. Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...

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

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

  5. 暴力 Codeforces Round #183 (Div. 2) A. Pythagorean Theorem II

    题目传送门 1 /* 2 暴力:O (n^2) 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #include <c ...

  6. Codeforces Gym101257F:Islands II(求割点+思维)

    http://codeforces.com/gym/101257/problem/F 题意:给出一个n*m的地图,上面相同数字的代表一个国家,问对于每个国家有多少个国家在它内部(即被包围).例如第一个 ...

  7. Codeforces Round #450 (Div. 2)D. Unusual Sequences[数论][组合数学][dp II]

    题目:http://codeforces.com/contest/900/problem/D 题意:找到加和为m的且gcd为n的数列种类数 分析:可以转化为求gcd为1的加和为m/n的种类数,假设有m ...

  8. Codeforces Round #700 (Div. 2) A ~ E ,6题全,超高质量良心题解【每日亿题】2021/2/8

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Yet Another String Game B - The Great Hero C ...

  9. Codeforces Round #193 (Div. 2)

    题目地址: http://codeforces.com/contest/332 第一题:题目又臭又长,读了好长时间才读懂. n个人,你是0号,从0开始到n-1循环做动作,只要你前面三个人动作一样,你就 ...

  10. codeforces 954C

    codeforces 954C C. Matrix Walk introduction 一个x行y列矩形的矩形,每个格子的从左到右,从上到下编号.然后给出一条路径,确定x和y的值,使得这条路径成立. ...

最新文章

  1. [leetcode]Sort Colors
  2. Mybatis3源码分析(05)-加载Configuration-加载MappedStatement
  3. 【JZOJ4835】【GDOI2017模拟10.31】量化交易
  4. Master公式(计算递归复杂度)
  5. iframe父子页面间的关系
  6. n维数组实现(可变参数表的使用)
  7. 整合ssh model $$_javassist_13 cannot be cast to javassist.util.proxy.Proxy
  8. [转载][HASS.IO] 【HASSOS安装】成功安装HASSOS 1.9(避开了大部分坑版)
  9. 学习通视频enc生成方法
  10. ssoj 2279 磁力阵
  11. Fast and Accurate Recognition of Chinese Clinical Named Entities with Residual Dilated Convolutions
  12. “不一样的六一儿童节”——暨线上公益跳绳颁奖活动圆满结束
  13. 软件开发与软件研发的区别
  14. 【NB-ioT模组】移远BC35-G 基于STM32连接电信云(附代码)
  15. Java中ch.ethz.ssh2.Connection对象的使用
  16. 无密码登陆的ssh和ssh-agent
  17. C语言 --- 动态内存管理(上)+优化版通讯录+笔试题
  18. 存储过程——天使还是魔鬼
  19. TensorFlow c++ SessionFactory注册与No session factory registered错误
  20. 断电断网等原因致使重新进入linux时系统进不去,进不了图形界面,出现/dev/sda2 recovery,clean,,,

热门文章

  1. React 引用 ant 组件 使用 react-custom-scrollbars美化(隐藏)滚动条
  2. dos从优盘启动计算机,u盘dos启动盘制作
  3. linux u盘启动制作教程,cdlinux u盘启动制作教程
  4. 数的变幻(小明买书)
  5. 计算机网络系列选择题
  6. JSCH连接SFTP Algorithm negotiation fail
  7. 软件项目管理课后习题——第5章软件项目的成本管理
  8. 2021 绩效管理必读
  9. 不仅仅是一种爱好:了解中国的电竞市场
  10. Latex 只在首页添加页眉页脚 修改局部字体大小