A、(分类讨论)

  题意:你有n本书,有三种买书方案,花a元买1本,花b元买2本,花c元买3本,问最少花多少钱,使得你书的总数是4的倍数

  分析:分类讨论的题,但是要注意你可以买超过4本书……可以买5本、6本、7本让你达到4的倍数

B、=w=

C、(构造)

  题意:设mex[i][j]表示一段区间i,j内最小的没出现过的非负整数,你有m个询问[x,y],构造一个数组a,使得m个询问对应的区间中mex最小的最大。

  分析:易得让最短的区间的值填0..ans-1,构造的话就是先把最短区间从x到y依次填上0..ans-1,再将其他区间排序,从头到尾模拟着补充填

     然后看见了一种十分巧妙的构造方法,就是a[]={0,1,2...ans-1,0,1,2...}这样任意一个区间必然有0..ans-1

D、(dfs序+二分)

  题意:给你一棵树,有点权和边权,对于一个节点u,如果节点v是u的子孙,且dist(u,v)<=val(v),则u能掌握v,问每个节点分别能掌握多少节点。(n<=2e5)

  分析:根据dfs序,对于每次dfs得到的栈里的点,必然是从根开始的一条路径,对于新遍历的节点u,栈中的节点stack[i]满足dist(u,stack[i])的单调性,所以可以根据val(u)的值二分出栈中哪一段点可以掌控节点u,那么给这一段加上1

     这种当然不需要线段树,和一维数组类似,每个点记录和父亲节点的答案差d[i],那么从最底层往上走一遍就得出了每个点的答案,具体的每个点答案是所有儿子节点的答案和。

E、(线段树)

  题意:有n个数,m个操作x,y,z,每次操作先将[x,y]上的数都加上z,然后再询问整个数组最长的“山峰”序列,"山峰”是指先严格单增后严格单减的连续序列。(n<=3e5)

  分析:遇见前后数差的问题,想到写出差值数组,对于数组b[n]得到差值数组a[n-1]

     问题其实就是求a[]数组中最长的+ + + + + - - - - - - -这种序列

     对于修改也很简单,和D题一样,在两个位置删+z -z就行

     这个可以用线段树来维护

     具体的要维护3个域mx,mxl,mxr分别表示区间最长值,从左边开始可以延伸的最长值,从右边开始可以延伸的最长值

     合并[l,mid] [mid+1,r]的时候:

        先就是普通的mx[k]=max(mx[l],mx[r]),mxl[k]=mxl[l],mxr[k]=mxr[r]

        然后看能否再更新

        如果a[mid]和a[mid+1]有一个为0,说明两边无法接起来,就无法更新了

        如果a[mid]是负的,a[mid+1]是正的,也无法接起来,仍旧无法更新

        如果a[mid]和a[mid+1]同号,或者a[mid]为正,a[mid+1]为负,那么很显然可以接,mx[k]再和mxr[l]+mxl[r]比较

        对于mxl和mxr的更新,也是同理分析

Codeforces Round #381(div 2)的更多相关文章

  1. Codeforces Round #381 (Div. 1) B. Alyona and a tree dfs序 二分 前缀和

    B. Alyona and a tree 题目连接: http://codeforces.com/contest/739/problem/B Description Alyona has a tree ...

  2. Codeforces Round #381 (Div. 1) A. Alyona and mex 构造

    A. Alyona and mex 题目连接: http://codeforces.com/contest/739/problem/A Description Alyona's mother want ...

  3. Codeforces Round #381 (Div. 2) D. Alyona and a tree 树上二分+前缀和思想

    题目链接: http://codeforces.com/contest/740/problem/D D. Alyona and a tree time limit per test2 secondsm ...

  4. Codeforces Round #381 (Div. 2) D dfs序+树状数组

    D. Alyona and a tree time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  5. Codeforces Round #381 (Div. 2) C. Alyona and mex(无语)

    题目链接 http://codeforces.com/contest/740/problem/C 题意:有一串数字,给你m个区间求每一个区间内不含有的最小的数,输出全部中最小的那个尽量使得这个最小值最 ...

  6. Codeforces Round #381 (Div. 2) A B C 水 构造

    A. Alyona and copybooks time limit per test 1 second memory limit per test 256 megabytes input stand ...

  7. Codeforces Round #381 (Div. 2)D. Alyona and a tree(树+二分+dfs)

    D. Alyona and a tree Problem Description: Alyona has a tree with n vertices. The root of the tree is ...

  8. Codeforces Round #381 (Div. 2)C. Alyona and mex(思维)

    C. Alyona and mex Problem Description: Alyona's mother wants to present an array of n non-negative i ...

  9. Codeforces Round #381 (Div. 2)B. Alyona and flowers(水题)

    B. Alyona and flowers Problem Description: Let's define a subarray as a segment of consecutive flowe ...

随机推荐

  1. HIVE 在执行大量数据JOIN的时候,容易产生内存不足的情况

    情况 很多时间遇到 "Caused by: java.lang.OutOfMemoryError: Java heap space" Caused by: java.lang.Ou ...

  2. SDWebImage添加header

    title: SDWebImage添加headerdate: 2016-03-07 17:32:57tags: SDWebImagecategories: IOS keywords: SDWebIma ...

  3. Google C++单元测试框架GoogleTest---Extending Google Test by Handling Test Events

    Google TestExtending Google Test by Handling Test Events Google测试提供了一个事件侦听器API,让您接收有关测试程序进度和测试失败的通知. ...

  4. ThingkPHP对数据库进行改操作

    public function test_check(){ $Experiment = M("Experiment");//实例化Experiment对象.这个对象是跟数据库的表对 ...

  5. winform窗体(二)——控件

    一.窗体的事件 每一个窗体都有一个事件,这个窗体加载完成之后执行哪一段代码 位置:1)右键属性→事件→load 双击进入 2)双击窗体任意一个位置进入 删除事件:先将事件页面里面的挂好的事件删除,再删 ...

  6. W3School-CSS 分类 (Classification) 实例

    CSS 分类 (Classification) 实例 CSS 实例 CSS 背景实例 CSS 文本实例 CSS 字体(font)实例 CSS 边框(border)实例 CSS 外边距 (margin) ...

  7. Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

    新下载的php3.23,本地访问数据库可以,服务器上不行.如下: :( Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' 错误位置 FILE: /u ...

  8. Python安装

    Win10 安装Python 1.官网下载Python安装包,一直点击下一步进行安装 安装完Python后要设置环境变量,右键我的电脑-->属性-->高级系统设置-->环境变量--& ...

  9. Ubuntu下的生活--安装

    概要 整个安装过程是通过离线包安装,而非在线安装. 目录 JDK安装与配置 Eclipse安装与配置 Apache安装与配置 MySQL的安装 JDK安装与配置 版本:jdk-7u71-linux-i ...

  10. javascript运算符语法概述

    × 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...