A

emmmmmmmmm

B

emmmmmmmmm

C(套路)

题意:

给定n和s(n,s<=1e18),计算n以内有多少个数x满足(x-x的各个位置数字之和)>=s

分析:

容易想到如果x相对于s很大很大,那么肯定是满足条件的

那些小于s的数,肯定是不行的

于是x就可以从s开始,往后枚举1e6个,去判定这1e6个有多少个是满足条件的,再往后的那些x肯定是满足的,直接算出多少个就行了

D(插板法)

题意:

给定一个长度为n(n<=1e6)的数列,对于这个数列的一个连续的子列,定义value=该子列的最大值-最小值。求这个数列所有连续子列的value和

分析:

肯定要分开考虑,考虑一个数字a[i]作为最大值能贡献多少组子列,作为最小值能贡献多少组子列(作为最小值的时候是负贡献)

下面以求最大值为例,求最小值同理

问题就转变成了要求出每个数字a[i]往左往右至多扩展多长距离才遇见第一个比其大的数

可以先把所有数字排序,然后按照从大到小的顺序将数字插入到对应位置上,那么对于当前考察的a[i],离其最近的左边隔板和右边隔板就是它作为最大值的区间

这一过程可以用set来维护

时间复杂度O(nlogn)

E(Trie树处理异或比较问题)

题意:

在一个初始为空的集合中有1e5个操作:

  1)插入一个数字p

  2)删除一个数字p(保证合法)

  3)输入p和l,询问当前集合中有多少个数字x满足p xor x < l

分析:

经典的Trie树处理异或比较问题

这里有个删除操作

实际上在Trie树上就直接暴力删就行了,复杂度O(logA)的

具体的就是从root开始沿着p数字的二进制位走,如果发现当前某一分支的sum==1,就说明这个分支下面只管理着一个节点(这就是我们要删的),所以直接在这里把树枝断掉就行了

复杂度O(qlogA)

F(线段树)

题意:

在一个初始为空的集合中有1e5个操作:

  1)将[l,r]这些数加入到集合中(如果数字重复就只保留一个)

  2)将[l,r]这些数从集合中删除(如果集合中本来就没有某个数,那这个数就不操作)

  3)将[l,r]这些数在集合中的出现情况反转,也就是将原本在集合中存在的数删除,原本不在的数加入

l,r<=1e18

在每次操作之后,输出集合的mex,即最小的没有出现在集合中的正整数

分析:

每次的结果肯定会在所有的l、所有的r+1,以及数字1中产生

考虑先把所有数据读入,将这些数字离散,建立一个线段树

对于操作1和2,就是将线段树一段区间赋值,sum直接维护

对于操作3,就是将线段树一段区间异或(只有0和1),sum=len-sum

发现这个线段树是可以lazy的,并且可以合并

对于查询,就是寻找线段树上最左边的0的点,直接根据一个节点k的sum[lchild]与len[lchild]的大小关系即可判断是向左走还是向右走,查询也是O(logn)的

时间复杂度O(nlogn)

Codeforces Educational Round 23的更多相关文章

  1. Codeforces Educational Round 33 题解

    题目链接   Codeforces Educational Round 33 Problem A 按照题目模拟,中间发现不对就直接输出NO. #include <bits/stdc++.h> ...

  2. Codeforces Educational Round 92 赛后解题报告(A-G)

    Codeforces Educational Round 92 赛后解题报告 惨 huayucaiji 惨 A. LCM Problem 赛前:A题嘛,总归简单的咯 赛后:A题这种**题居然想了20m ...

  3. [CodeForces]Educational Round 52

    幸好我没有打这场,我VP的时候在C题就卡死了,我果然还是太菜了. A Vasya and Chocolate 题意:一个巧克力\(c\)元,买\(a\)赠\(b\),一共有\(n\)元,问能买几个巧克 ...

  4. Codeforces Global Round 23 D.Paths on the Tree(记忆化搜索)

    https://codeforces.ml/contest/1746/problem/D 题目大意:一棵n节点有根树,根节点为1,分别有两个数组 s[i] 顶点 i 的魅力值 c[i] 覆盖顶点 i ...

  5. Codeforces Educational Round 37

    Solved   CodeForces 920A Water The Garden   Solved   CodeForces 920B Tea Queue   Solved   CodeForces ...

  6. CF Educational Round 23 F.MEX Queries

    写了3小时 = =.这两天堕落了,昨天也刷了一晚上hihocoder比赛,还爆了零.之后得节制点了,好好准备考研.. 首先很容易想到 压缩数据 + 线段树 然后对于Pushdown真很难写..需要牵涉 ...

  7. Codeforces Educational round 58

    Ediv2 58 随手AK.jpg D 裸的虚树,在这里就不写了 E 傻逼贪心?这个题过的比$B$都多.jpg #include <cstdio> #include <algorit ...

  8. Codeforces Educational Round 57

    这场出题人好像特别喜欢998244353,每个题里都放一个 A.Find Divisible 考察选手对输入输出的掌握 输出l 2*l即可(为啥你要放这个题,凑字数吗 #include<cstd ...

  9. Codeforces Educational Round 21

    A =w= B qwq C wvw D(multiset) 题意: 有n(n<=1e5)个数,希望通过把一个位置y的数字放到位置x上这个操作,使得新序列的某个前缀和等于总和的一半,问这样的操作是 ...

随机推荐

  1. 策略模式--Java篇

    策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户. 下面将以商场打折为例子,说明策略模式.商场收银如何促销,用打折还是 ...

  2. jquery js 分页

    <html xmlns="http://www.w3.org/1999/xhtml"><head>    <title>jQuery.pager ...

  3. Android开源项目:GifView——Android显示GIF动画

    下载:http://code.google.com/p/gifview/downloads/list 简介:android中现在没有直接显示gif的view,只能通过mediaplay来显示,且还常常 ...

  4. 支持中英文和国旗的android国家代码/国际电话区号选择器

    最近在做app登录的时候,因为需要支持国外手机号注册和登录,所以就涉及到国际电话区号的选择.在github上面找了一下,国家名称基本都是只有英文版本,而手动的去把中文一个个加上实在是一件费时费力的事情 ...

  5. iOS---开发实用传感器

    传感器 1.什么是传感器 传感器是一种感应\检测装置, 目前已经广泛应用于智能手机上 2.传感器的作用 用于感应\检测设备周边的信息 不同类型的传感器, 检测的信息也不一样 iPhone中的下面现象都 ...

  6. iOS地图----MapKit框架

    1.MapKit框架使用前提 ①导入框架 ②导入主头文件 #import <MapKit/MapKit.h> ③MapKit框架使用须知 MapKit框架中所有数据类型的前缀都是MK Ma ...

  7. Javascript IE 内存释放

    一个内存释放的实例 <SCRIPT LANGUAGE="JavaScript"><!--strTest = "1";for ( var i = ...

  8. 中国版 Office 365 (X-Tenant / Tango) 功能验证报告 - 2 基本步骤

    说明: 1. 前期准备 - 在Azure上模拟出生产环境: 包括父域域控.子域域控.父域的Exchange Server.子域的Exchange Server.对Exchange Server, 需要 ...

  9. OpenMP入门教程(三)

    承接前面两篇,这里直接逐一介绍和使用有关OpenMP的指令和函数 Directives 1.for 作用:for指令指定紧随其后的程序的循环的迭代必须由团队并行执行,只是假设已经建立了并行区域,否则它 ...

  10. list.extend的结果是None

    执行list.exend()方法后,会直接修改list本身,而不会产生返回值 In [97]: d=(43,) In [98]: type(d) Out[98]: tuple In [99]: c O ...