暂无连接

【题目描述】

小Q非常喜欢序列和位运算。

有一天,小Q想到了一个模型:一个长度为nnn的非负整数序列xxx,满足mmm个条件:第iii个条件为x[li]orx[li+1]or⋯orx[ri]=pix[l_i]\ or\ x[l_{i+1}]\ or\ \cdots\ or\ x[r_i]=p_ix[li​] or x[li+1​] or ⋯ or x[ri​]=pi​。他想知道是否存在一个序列满足条件,如果存在,他还要构造出一个这样的序列。

【输入】

第一行两个整数n,mn,mn,m。接下来mmm行每行三个整数li,ri,pil_i,r_i,p_ili​,ri​,pi​。

【输出】

如果存在这样的序列xxx,第一行输出Yes,第二行输出nnn个不超过230−12^{30}−1230−1的非负整数表示x[1]∼x[n]x[1]\sim ~x[n]x[1]∼ x[n],否则输出一行NoNoNo。

【输入样例】

2 1
1 2 1

【输出样例】

Yes
1 1

【提示】
【数据规模及约定】

对于30%30\%30%的数据,n,m≤1000n,m≤1000n,m≤1000。
对于另外30%30\%30%的数据,pi≤1p_i≤1pi​≤1。
对于100%100\%100%的数据,n,m≤100,000,1≤li≤ri≤n,0≤pi&lt;230n,m≤100,000,1≤l_i≤r_i≤n,0≤p_i&lt;2^{30}n,m≤100,000,1≤li​≤ri​≤n,0≤pi​<230。

题解

如果一段区间ororor起来某几位等于000,那么该区间的这几位必须全部为000,所以我们开303030个序列维护每一位,通过查分做区间赋000操作。

最后按照我们构造出的每一位得出答案,用线段树checkcheckcheck一下即可。

代码
#include<bits/stdc++.h>
#define ls v<<1
#define rs v<<1|1
using namespace std;
const int M=1e5+5,bit=30;
int que[bit+2][M],ans[M],sum[M<<2],l[M],r[M],p[M],n,m;
void in(){scanf("%d%d",&n,&m);}
void up(int v){sum[v]=sum[ls]|sum[rs];}
void build(int v,int l,int r)
{if(l==r){sum[v]=ans[l];return;}int mid=l+r>>1;build(ls,l,mid);build(rs,mid+1,r);up(v);
}
int ask(int v,int le,int ri,int lb,int rb)
{if(lb<=le&&ri<=rb){return sum[v];}int mid=le+ri>>1,ans=0;if(lb<=mid)ans=ask(ls,le,mid,lb,rb);if(mid<rb)ans|=ask(rs,mid+1,ri,lb,rb);return ans;
}
void ac()
{for(int i=0;i<bit;++i)que[i][0]=1;for(int i=1,j;i<=m;++i){scanf("%d%d%d",&l[i],&r[i],&p[i]);for(j=0;j<bit;++j)if(!(p[i]>>j&1))--que[j][l[i]],++que[j][r[i]+1];}for(int i=0,j;i<bit;++i)for(j=1;j<=n;++j)que[i][j]+=que[i][j-1];for(int i=0,j;i<bit;++i)for(j=1;j<=n;++j)if(que[i][j]==1)ans[j]|=1<<i;build(1,1,n);for(int i=1;i<=m;++i)if(ask(1,1,n,l[i],r[i])!=p[i])puts("No"),exit(0);puts("Yes");for(int i=1;i<=n;++i)printf("%d ",ans[i]);
}
int main(){in(),ac();}

[2018.10.15 T1] 或相关推荐

  1. 【比赛报告】2018.10.15校赛[2015-9-13 NOIP模拟赛 by hzwer] NOIP练习赛卷十四

    比赛时间:2018.10.15 选手:lrllrl 用时:2h 得分:100+10+90=200 最初想法是一个背包问题.首先背包问题的模型肯定是不行的,但是我们可以列出状态转移方程后发现,每个状态决 ...

  2. 【一周头条盘点】中国软件网(2018.10.15~2018.10.19)

    每一个企业级应用的人都置顶了中国软件网 中国软件网为你带来最新鲜的行业干货 每周热点 ========= Gartner公布2019年十大战略科技发展趋势 全球领先的信息技术研究和顾问公司Gartne ...

  3. 2018.10.15 直播笔记

    1 直播课不允许无故迟到.早退,有事请假,签到由大家自行截图,并发到有道云笔记中,最后把有道云笔记链接发到专贴. 截图需要分4部分,课前5分钟内.下课前5分钟内.中途休息时以及随机不定时截图,要求把上 ...

  4. 顺无盘linux win10包,(2018.05.21)云更新2016正式版x86_2016.10.15.4976无盘xp-win7x32-x64-win10x64公包...

    官方2016.12.6更新版本修正各BUG (服务端支持x86 32位系统) Win10,ltsb企业版 2017.3.3更改三层地址,改善不配问题. 重新修改补丁,使其更稳定解决个别提示客户端配套问 ...

  5. 2018+黑苹果+vs+Linux,重点更新!完美黑苹果=Z370M+i5+RX590(硬解)10.15

    本帖最后由 cbw390179428 于 2020-3-13 21:10 编辑 先来张图给大家解解馋! 配置是 主板:微星Z370M CPU:i5-8600K 显卡:女装大佬RX590 内存:芝棋8G ...

  6. 【比赛报告】2018.10.11校赛[8-2情人节欢乐赛] NOIP练习赛卷十二

    比赛时间:2018.10.10 选手:lrllrl 成绩 100+100+100=300 用时:约1h T1 果实计数 显然易得,答案为 b n m o d    k b^n\mod k bnmodk ...

  7. 2018.10.9模拟赛

    2018.10.9模拟赛 T1 trade 正解:贪心 据说lyd讲过但并没有印象QAQ,考场上现推浪费了不少时间 其实就开个小根堆,每次把堆顶取出来看它是不是比当前的 a[i]a[i]a[i] 小, ...

  8. c语言程序设计实验指导交大答案,C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案--2018.10修改.doc...

    C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案--2018.10修改.doc 实验一 Visual C集成环境实验内容(一)程序改错1.(1)无法运行(2)将第二个C程序重 ...

  9. 10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第6天 2018/10.31

    10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第6天 2018/10.31 1. 第4次周计划概览 2. 今日学习成果 3. 今日时间表 4. 今日反思 5. ...

  10. 10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第5天 2018/10.30

    10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第5天 2018/10.30 1. 第4次周计划概览 2. 今日学习成果 3. 今日时间表 4. 今日反思 今天 ...

最新文章

  1. diy 扫地机器人 滚刷_不想动手倒垃圾?自集尘扫地机器人彻底解放你的双手!...
  2. 【Git报错】 ! [rejected] master - master (fetch first)
  3. ASP.net的身份验证方式有哪些?分别是什么原理?
  4. nagios通过微信告警(无限制告警条数)
  5. 2.STM32中对Key_GPIO_Config()函数的理解(自定义)之轮询控制按键LED
  6. linux 编译C++错误整理
  7. 今天去医院拿宝宝的微量元素检查结果
  8. Java开发技巧:Java如何编译运行?
  9. [洛谷3121]审查
  10. 有的人走着走着就散了!
  11. Spark源码分析之Job触发原理
  12. 只显示小方格_魔力科学小实验 | 只能剪一刀,如何将图片中的红白方块分开?...
  13. Redis 官方文档译注
  14. ros路由器cpu占用率高的原因和解决
  15. 推荐几个设计师常去的优秀素材网站!收藏好哦!
  16. 如何区分网线是几类的_如何判断网线是几类线?
  17. JavaScript权威指南7(四) 第十一章 JavaScript 标准库
  18. IT项目经理沟通技巧的重要性
  19. 解决TypeError:Cannot read properties of undefined并深入解读TypeError错误类型
  20. 参数方程求二阶导时候不能直接把y,x分别对t求二阶导然后再相除作为d²y/dx²的原因

热门文章

  1. php 工业通讯录,PHP 制作通讯录(六)
  2. mysql导出csv 分隔符_导出到CSV文件,CSV文件好像是以逗号为分隔符的吧?如果数据库字段里含有逗号怎么处理?比如说下面这个字...
  3. jpress连接不上mysql_win10+jdk+mysql+tomcat+jpress环境搭建与部署
  4. JSONObject.toBean方法复制不成功
  5. php处理数组函数大全
  6. springboot(运行原理参考借鉴)
  7. C++ 指针二维数组, C++二维指针数组笔记
  8. 关于个人电脑连不上公司svn服务器,显示拒绝访问的错误
  9. 技术人员,你的表达能力怎样?
  10. 数据分析第二章确定分析思路