题目链接:https://vjudge.net/contest/148901#overview

  A题,排序以后xjbg即可。

  B题,弄个数组记录当前列是不是删除以及当前行是不是已经大于下一行然后乱搞即可。

  C题,线段树写的比较无脑,但是可以直接搞,在遍历的时候记录最大的,然后继续找的时候更新答案即可。

  D题,题意是给出m个限制条件,每个限制条件表示[L,R]范围内&和为x。问是不是存在这样的数组。方法是线段树记录区间内&的和。然后m组每次更新[L,R]都使得|上x,因为要&为1,二进制下该位必须为1,而|上去能够使得这位结果必为1(很巧妙)。然后就可以做了。代码如下:

 #include <stdio.h>
#include <algorithm>
#include <string.h>
#include <map>
#include <vector>
#include <queue>
#include <set>
#include <iostream>
#define t_mid (l+r>>1)
#define ls (o<<1)
#define rs (o<<1|1)
#define lson ls,l,t_mid
#define rson rs,t_mid+1,r
using namespace std;
const int N = + ;
typedef long long ll;
typedef pair<int,int> pii; int c[N<<];
int lazy[N<<];
int n,m;
void up(int o) {c[o] = c[ls] & c[rs];}
void down(int o,int l,int r)
{
if(l == r) return ;
if(lazy[o])
{
c[ls] |= lazy[o];
c[rs] |= lazy[o];
lazy[ls] |= lazy[o];
lazy[rs] |= lazy[o];
lazy[o] = ;
}
}
void build(int o,int l,int r)
{
if(l == r)
{
c[o] = lazy[o] = ;
return ;
}
build(lson);
build(rson);
up(o);
}
void update(int o,int l,int r,int ql,int qr,int f)
{
if(l == ql && r == qr)
{
c[o] |= f;
lazy[o] |= f;
return ;
}
down(o,l,r);
if(qr <= t_mid) update(lson,ql,qr,f);
else if(ql > t_mid) update(rson,ql,qr,f);
else
{
update(lson,ql,t_mid,f);
update(rson,t_mid+,qr,f);
}
up(o);
}
int query(int o,int l,int r,int ql,int qr)
{
if(l == ql && r == qr) return c[o];
down(o,l,r);
if(qr <= t_mid) return query(lson,ql,qr);
else if(ql > t_mid) return query(rson,ql,qr);
else return query(lson,ql,t_mid) & query(rson,t_mid+,qr);
} int x[N],y[N],z[N];
bool can()
{
for(int i=;i<=m;i++)
{
if(query(,,n,x[i],y[i]) != z[i]) return false;
} puts("YES");
for(int i=;i<=n;i++) printf("%d%c",query(,,n,i,i), i==n?'\n':' ');
return true;
} int main()
{
cin >> n >> m;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",x+i,y+i,z+i);
update(,,n,x[i],y[i],z[i]);
}
if(can() == false) puts("NO");
return ;
}

D

  E题,思路参见这个。我自己代码如下:

 #include <stdio.h>
#include <algorithm>
#include <string.h>
#include <map>
#include <vector>
#include <queue>
#include <set>
#include <iostream>
#define t_mid (l+r>>1)
#define ls (o<<1)
#define rs (o<<1|1)
#define lson ls,l,t_mid
#define rson rs,t_mid+1,r
using namespace std;
const int N = + ;
typedef long long ll;
typedef pair<int,int> pii; ll a[];
ll p,q;
int n; int main()
{
cin >> p >> q;
cin >> n;
for(int i=;i<=n;i++) cin >> a[i];
int i;
for(i=;i<=n;i++)
{
if(q == || (double)p/q < a[i]) break;
p -= a[i] * q;
swap(p, q);
}
if(i == n + && q == ) puts("YES");
else puts("NO");
return ;
}

E

2017 ZSTU寒假排位赛 #5的更多相关文章

  1. 2017 ZSTU寒假排位赛 #7

    题目链接:https://vjudge.net/contest/149498#overview. A题,水题,直接按照题意模拟一下即可. B题,我用的是线段树.大力用的差分标记(上次听zy说过,下次再 ...

  2. 2017 ZSTU寒假排位赛 #1

    题目链接:https://vjudge.net/contest/147102#overview. A题:给出一堆的点,要找出两条垂直的直线,一条与x轴呈45度.-->使得所有的点到任意一条直线的 ...

  3. 2017 ZSTU寒假排位赛 #2

    题目链接:https://vjudge.net/contest/147632#overview. A题,状态压缩一下然后暴力即可. B题,水题,略过. C题,有负数,前缀和不是单调的,因此不能用尺取法 ...

  4. 2017 ZSTU寒假排位赛 #8

    题目链接:https://vjudge.net/contest/149845#overview. A题,水题. B题,给出 p个 第一个人的区间 和 q个第二个人的区间,问[l,r]中有多少个整数满足 ...

  5. 2017 ZSTU寒假排位赛 #6

    题目链接:https://vjudge.net/contest/149212#overview. A题,水题,略过. B题,水题,读清题意即可. C题,数学题,如果把x表示成x=nb+m,则k=n/m ...

  6. 2017 ZSTU寒假排位赛 #4

    题目链接:https://vjudge.net/contest/148543#overview. A题:n个罪犯,每个人有一个犯罪值,现在要从里面选出连续的c个人,每个人的犯罪值都不能超过t,问选法的 ...

  7. 2017 ZSTU寒假排位赛 #3

    题目链接:https://vjudge.net/contest/147974#overview. A题,费用流,不会..跳过了. B题,给一个图,问至少添加几条边能成为强连通图.显然缩点,要使得成为一 ...

  8. Codeforces Round #341 (Div. 2)

    在家都变的懒惰了,好久没写题解了,补补CF 模拟 A - Wet Shark and Odd and Even #include <bits/stdc++.h> typedef long ...

  9. 2017杭电ACM集训队单人排位赛 - 6

    2017杭电ACM集训队单人排位赛 - 6 排名 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 59 1 X X 1 1 X X 0 1 ...

随机推荐

  1. MyBatis 源码篇-整体架构

    MyBatis 的整体架构分为三层, 分别是基础支持层.核心处理层和接口层,如下图所示. 基础支持层 反射模块 该模块对 Java 原生的反射进行了良好的封装,提供了更加简洁易用的 API ,方便上层 ...

  2. ES6用来判断数值的相关函数

    最近在学习ES6的基础知识,整理了一下ES6用来判断数值的相关函数 Math.sign() =>判断正负数的函数 Math.trunc() =>取整函数 Number.isInteger( ...

  3. C# 7.0 语法

    C# 7.0的语法主要是优化了之前的写法,使得更加简洁方便.try catch when  这个使用场景很少,正常的开发无业务处理的时候不建议使用 . #region 2.字符串嵌入值 Console ...

  4. setTimeout与setInterval的使用

    setTimeout:间隔一段时间后执行,只执行一次. function show(){ console.log(1); } setTimeout(show(),200);//直接执行无延时 setT ...

  5. linux 最常用命令

    1.创建文件.文件夹 touch 文件名 mkdir 文件夹 2.文件赋权 filename 3.查看文件大小 work/testing ll -h .查找文件 find / -name 'filen ...

  6. C8051F环境搭建

    https://www.silabs.com/ USB调试器 U-EC6: 支持JTAG模式.C2模式 JTAG接口定义: 适用型号C8051F00x C8051F01x C8051F02x C805 ...

  7. 使用ABAP批量下载Markdown源文件里的图片到本地

    执行我github里的这个report: 选中一段markdown文档,ctrl C: 然后直接执行report: 执行完毕: 所有文件都下载到本地文件夹: 这个report使用到的工具类:zcl_c ...

  8. 命令行工具--LLDP

    目录 命令行工具--LLDP 一.场景引入 二.什么是LLDP? 三.在CentOS上安装LLDP 四.命令详解 五.脚本 命令行工具--LLDP 一.场景引入 有的时候,我们需要知道服务器上联交换机 ...

  9. python函数大全

    1.range函数 可创建一个整数列表,用于for循环中 格式为:range(start,stop[,step]) start:计数从start开始,默认从0开始 stop:计数从stop结束,但不包 ...

  10. python Pillow 图片处理模块,好强大有没有

    python Pillow 图片处理模块,好强大有没有 Pillow 需要给 python 另外安装 第一个用法:https://www.cnblogs.com/ibingshan/p/1105739 ...