2021.08.06 P4392 Sound静音问题(ST表) [P4392 BOI2007]Sound 静音问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 序列a,求a中子序列长度为m且子序列max-min<=cha的子序列起点. PS:st表容易MLE,只需要开logm的数组,而不是logn,而且不需要记录原数组: ​ 如果没有一个子序列满足条件,输出NONE!! 分析: 裸的ST表. 代码如下: #include<cstdio> #include&l…
2021.08.06 P2441 角色属性树(树形结构) P2441 角色属性树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 求离x最近的祖先y且(x,y)>1. 分析: 数据水,暴力能过.正解究竟是啥,很令人疑惑. 代码如下: #include<cstdio> #include<algorithm> #include<iostream> using namespace std; const int N=2e5+10; int n,m…
2021.08.06 P3478 STA-Station(树形结构) [P3478 POI2008]STA-Station - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 给定一个 nn 个点的树,请求出一个结点,使得以这个结点为根时,所有结点的深度之和最大. 一个结点的深度之定义为该节点到根的简单路径上边的数量. 分析: 设x的父节点为y,则根节点从y移到x: \[f[x]=f[y]-size[x]+(n-size[x]) \\ f[x]=f[y]+n-2*szie[…
---------------------- 链接:Miku ----------------------- 这道题本质上还是个st表,只要两个st表,然后对于每一个点,查询他开始的 长度为m的去年的最大值,最小值之差就可以了. ------------------------- 然而这个题还有个坑点,太大了,直接写会MLE,我们重新读一下题,题目说了区间是M. 那我们最多开到log2(m)就可以了,再大也用不到啊(这个小优化让它变成了绿题) --------------------------…
一开始写了个RMQ然后就T了... 好吧正解是单调队列, 维护两个单调队列... -------------------------------------------------------------------------------- #include<bits/stdc++.h>    #define rep(i, n) for(int i = 0; i < n; i++) #define clr(x, c) memset(x, c, sizeof(x))   using na…
1342: [Baltic2007]Sound静音问题 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 710  Solved: 307[Submit][Status][Discuss] Description 静音问题 数字录音中,声音是用表示空气压力的数字序列描述的,序列中的每个值称为一个采样,每个采样之间间隔一定的时间. 很多声音处理任务都需要将录到的声音分成由静音隔开的几段非静音段.为了避免分成过多或者过少的非静音段,静音通常是这样定义的:m…
BZOJ_1342_[Baltic2007]Sound静音问题_单调队列 题意: 给出n个数,求∑[ max{a[i]~a[i+m-1]} - min{a[i]~a[i+m-1]} <= c ] 分析: 滑动窗口 我们维护两个单调队列,分别存最大,最小值 代码: #include <cstdio> #include <cstdlib> #include <cstring> #include <iostream> #include <algorit…
构造函数,是一种特殊的方法.主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载.写一个类,如果没有写任何的构造函数,那么这个类有一个默认的无参数的构造函数.如果写了构造函数,那么在这个类中就有两个构造函数,一个默认的,一个是自己写的,不过,自己写了构造函数,之前默认的那个构造函数就不能用了,如果还想用之前的那个默认的构造函数,就必须再重新写一个无参数…
public class person { public string name; } public class person { public string Name { set; get; } } 上面的两个类,第一个person存储的是name属性,由于是public属性,可以由其他类访问,第二个person的name属性通过了set.get进行了封装,get.set分别是可读可写.等价于如下代码 public class person { private string name; pub…
class Person//声明一个Person类 { //类中的声明与Main中不同,类中声明的是字段而不是函数. public string gender; public string name="Tom";//在类中只能给字段赋值一行代码 "); } class Program { static void Main(string[] args) { ; Person p1 = new Person();//定义Person类的对象p1 p1.gender = "…