NOI Online 2022 一游

TG

啊,上午比提高,根据去年的经验,题目配置估计那至少一黑

所以直接做 1 题即可。(确信)

总体:估分 140,炸了但没完全炸

奇怪的过程

开题:3 2 1 (雾

事情是这样的:我又根据经验,觉得 T1 不会太简单。。。

突然发现 T3 和 T2 似乎可做,恩?然后 T3 搞半天发现一个需要 cdq 的神奇东西

果断放弃。


接着看 T2 ,好吧,不知脑子如何灵光,我越看越像字符串?

这也是往年经验:去年考的字符串,今年可能还考。

折腾了 0.5h 的自动机,字典树,哈希,最后依然放弃

思考的算法,也是从正解,到 70,最后 40。。。


终于看到 T1,仔细地思考,发现就是一个长得和 弹飞绵羊 询问神似的东西,

还不用修改,这不,直接倍增?用若干分钟码完,调了一下过了大样例,大概是我唯一能 A 的题

  • 大致思路:预处理出这个点在全局在哪个点加入时弹出

    那么在这中间的点一定不是“成功的”,因为至少有这个点在栈中

    可以连边,一定形成一颗树,问题就转换成一个点往上跳多少次才能跳出区间

    用倍增即可

#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long uLL;
typedef long double LD;
typedef long long LL;
typedef double db;
const int N = 5e5 + 5;
inline int Rd() {
register int x = 0; char C = getchar();
for (; C < '0' || C > '9'; C = getchar()) ;
for (; C > '/' && C < ':'; C = getchar()) x = (x << 1) + (x << 3) + (C ^ 48);
return x;
}
int n, Ti, a[N], b[N], st[N], top, t[N], lst[N], Ecnt, dep[N], Q[N], hd, tl, fa[N][25];
struct Ed { int to, nxt; } e[N << 1];
inline void Ae(int fr, int go) {
e[++Ecnt] = (Ed){ go, lst[fr] }, lst[fr] = Ecnt;
}
inline void bfs() {
fa[n + 1][0] = n + 1;
Q[++tl] = n + 1;
for (int u; hd < tl; ) {
u = Q[++hd];
for (int i = lst[u], v; i; i = e[i].nxt) {
v = e[i].to, dep[v] = dep[u] + 1;
fa[v][0] = u, Q[++tl] = v;
}
}
}
inline int work(int x, int lim) {
register int St = x;
for (int i = 19; ~i; i--)
if (fa[x][i] <= lim) x = fa[x][i];
return dep[St] - dep[x] + 1;
}
int main() {
freopen("stack.in", "r", stdin);
freopen("stack.out", "w", stdout);
n = Rd(), Ti = Rd();
for (int i = 1; i <= n; i++) a[i] = Rd();
for (int i = 1; i <= n; i++) b[i] = Rd();
for (int i = 1; i <= n; i++) {
while (top && (a[st[top]] == a[i] || b[st[top]] <= b[i])) t[st[top--]] = i;
st[++top] = i;
}
while (top) t[st[top--]] = n + 1;
for (int i = 1; i <= n; i++) Ae(t[i], i);
bfs();
for (int j = 1; j <= 19; j++)
for (int i = 1; i <= n + 1; i++)
fa[i][j] = fa[fa[i][j - 1]][j - 1];
for (int l, r; Ti--; ) {
l = Rd(), r = Rd();
printf("%d\n", work(l, r));
}
}

点真不戳,写完 T1 就 11 点了,去写了 T2 的 40 和 T3 的 10 分就滚蛋了

关键是 T2 的 40 还写挂了?输得这么彻底~

赛后

竟然是 2蓝 + 1 紫?难度比去年差距可不小

其他人 T1 用 线段树(或 BIT)+ 离线,omg 我真的想不到

不过我的倍增常数绝对小(蜜汁自信

lage T2 以优秀的复杂度过了大样例?%%%

总结

  1. 不能凭借以前的经验
  2. 仔细思考,不写挂暴力
  3. 多方面思考

PJ

下午 pj ,炸上天。

t1 送分,10 min 切了后,剩下的时间交给 t2 ,t3

然后 t2 坐电脑前 2.5h 推不出规律,,,

打了个暴力。。。

剩下的时间去想 t3,由于自身能力与心态吧。

一个四维 dp 没想到,也是暴力。

炸了,%%% ljh t3 过大样例

总结

  1. 数学思维
  2. dp

总结

可能是最后一次 online 了,

存者且偷生,希望我能尽力补全 dp、数学短板

NOI Online 2022 一游的更多相关文章

  1. 让NOI Linux变得可用

    开始用NOI Linux-- 上古加阉割,还是32位,完全不可用的亚子-- 怎么办,我真的好想念16.04 于是就走上魔改之旅-- 一些神奇的操作 git 听说直接装的话会是上古版本 sudo add ...

  2. 微信小程序体验(2):驴妈妈景区门票即买即游

    驴妈妈因为出色的运营能力,被腾讯选为首批小程序内测单位.驴妈妈的技术开发团队在很短的时间内完成了开发任务,并积极参与到张小龙团队的内测问题反馈.驴妈妈认为,移动互联网时代,微信是巨大的流量入口,也是旅 ...

  3. 如何快速优化手游性能问题?从UGUI优化说起

    WeTest 导读   本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法.   在之前的文 ...

  4. 游走 bzoj 3143

    游走(2s 128MB)walk [问题描述] [输入格式] [输出格式] [样例输入] 3 3 2 3 1 2 1 3 [样例输出] 3.333 [样例说明] 题解: 主要算法:贪心:高斯消元: 题 ...

  5. 基于Adobe Flash平台的3D页游技术剖析

    写在前面 从黑暗之光,佛本是道,大战神的有插件3D页游.再到如今的魔龙之戒. 足以证明,3D无插件正在引领页游技术的潮流. 目前,要做到3D引擎,有以下几个选择. 说到这里,我们发现.这些都不重要. ...

  6. 龙之谷手游WebVR技术分享

    主要面向Web前端工程师,需要一定Javascript及three.js基础:本文主要分享内容为基于three.js开发WebVR思路及碰到的问题:有兴趣的同学,欢迎跟帖讨论. 目录:一.项目体验1. ...

  7. 手游录屏直播技术详解 | 直播 SDK 性能优化实践

    在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用 ...

  8. 【BZOJ-3143】游走 高斯消元 + 概率期望

    3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2264  Solved: 987[Submit][Status] ...

  9. Dota2 demo手游项目历程

    最近其实是打算认真研究c++ primer和设计模式的原著,然后写一些读书笔记的,不过设计模式原著里生词太多,大多都看的不是很明白,因此暂时放弃阅读设计模式,打算用这些时间做一个类似我叫mt2的手游d ...

随机推荐

  1. Servlet学习记录

    个人认为servlet属于一种控制程序,可以处理浏览器的请求并做出对应的回应.我们经常使用的是让一个类去继承HttpServlet,然后在doget或者dopost里面写东西. 目前我个人常在doge ...

  2. C++---使用类

    运算符重载 概念 运算符重载就是想法转换, 目的是简化函数调用的方式 重载就是赋予新的含义, 运算符重载也是, 即同一个运算符可以有不同的功能 C++本身已经对一些运算符进行了重载, 同时C++允许程 ...

  3. nfs客户端的一次处理

    为什么要说这个呢,由于节点环境不一致,导致在重建pod时,我们暂且叫该pod为 cxpod,cxpod所在宿主机出现了问题现象如下:一.cxpod始终处于创建中 ContainerCreating [ ...

  4. 帝国CMS内容页模板过滤清理简介smalltext前后空格的方法!

    在内容模板你需要调用的地方使用如下代码输出简介即可过滤简介smalltext前后的空格了: <? $qian=array(" "," ","\t ...

  5. Go xmas2020 学习笔记 06、Control Statements、Declarations & Types

    06-Control Statements. If-then-else. Loop. for. range array. range map. infinite loop. common mistak ...

  6. Markdown练习

    这是一级标题 这是二级标题 这是三级标题 这是无序列表1 这是无序列表2 有序1 有序2 重点 计网 1. 第一章 第一部分 1.概念.组成.功能和分类 1. 概念 计算机网络是互连的.自治的计算机的 ...

  7. 《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)

    1.简介 自动化测试中如何输出日志文件.任何软件,都会涉及到日志输出.所以,在测试人员报bug,特别是崩溃的bug,一般都要提供软件产品的日志文件.开发通过看日志文件,知道这个崩溃产生的原因,至少知道 ...

  8. 【洛谷】P4555 [国家集训队]最长双回文串

    P4555 [国家集训队]最长双回文串 题源:https://www.luogu.com.cn/problem/P4555 原理:Manacher 还真比KMP好理解 解决最长回文串问题 转化为长度为 ...

  9. -2.输入加速(cin,cout)

    + ios::sync_with_stdio(false);//加速几百毫秒 cin.tie(0); // 接近scanf cout.tie(0);

  10. 【MQ】java 从零开始实现消息队列 mq-02-如何实现生产者调用消费者?

    前景回顾 上一节我们学习了如何实现基于 netty 客服端和服务端的启动. [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]java 从零开始实现消息队列 mq-02-如何实现生产者调用 ...