去年花了大概并不长的时间口胡了四个 (D1T2, D1T3, D2T1, D2T2),感觉比 ZJOI 2018 不知道友好到哪里去了。然后 D1T1 不会算复杂度跑路了,D2T3 只会  (后面用奇技淫巧优化到了  然后卡了。

在 little_waxberry 神仙的指点下意识到 D2T3 只用关心每条直线最上面的一次 occurence(也就是说剥掉上层凸壳之后上面的直线只会起到增加其它直线 rank 的作用而不会被计入答案),顿悟,才发现之前自己一直在试图把凸壳前  层的完整形态求出来(其实前  层加起来就已经有  段了,标算的复杂度是不可能做到的,这辈子都不可能做到的),然后会了。可能这就是菜吧。

感觉这个 2020 年状态一直不太行……经常浮躁而无法静下来去分析一个问题试图突破……希望,能改改吧。

D1T1

由于某种原因鸽了。

人有多大胆,地有多大产。

考虑怎么判断和牌:dp 即可。 表示考虑了值为  的牌,有  个 的顺子, 个  的顺子, 个对子的方案数,再记一下不同对子个数的最大值。注意只存那些目前还没和的状态,总共只有几百个。

再用一个 dp 套它,dp for dp. 时间复杂度 .

D1T2

套路数据结构题

令  表示节点  上有 tag 的概率并维护。遗憾的是这玩意没法转移。

观察为啥没法转移。考虑除了  之外再维护  表示  到根的链上至少有一个 tag 的概率。然后这二者可以相互转移。

用线段树维护。时间复杂度

#include <bits/stdc++.h>
#define rep(i, n) for(int i = 0; i < (int)(n); i ++)
#define rep1(i, n) for(int i = 1; i <= (int)(n); i ++)
#define MP make_pairusing namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int MOD = 998244353;
const int INV2 = (MOD + 1) / 2;
int pwi2[100005];int n, m, sum;
int f[262144], g[262144];
int cnt[262144];void pushdown(int v)
{cnt[v << 1] += cnt[v];f[v << 1] = (1 - pwi2[cnt[v]] + 1LL * f[v << 1] * pwi2[cnt[v]] + MOD) % MOD;cnt[v << 1 | 1] += cnt[v];f[v << 1 | 1] = (1 - pwi2[cnt[v]] + 1LL * f[v << 1 | 1] * pwi2[cnt[v]] + MOD) % MOD;cnt[v] = 0;
}
void modify(int rt, int cl, int cr, int l, int r, int ccnt)
{if(r < cl || l > cr) {sum = (sum - g[rt] + MOD) % MOD;g[rt] = 1LL * (g[rt] + f[rt]) * INV2 % MOD;sum = (sum + g[rt]) % MOD;return;}if(l <= cl && r >= cr) {cnt[rt] ++;sum = (sum - g[rt] + MOD) % MOD;g[rt] = 1LL * (g[rt] + 1) * INV2 % MOD;sum = (sum + g[rt]) % MOD;f[rt] = 1LL * (f[rt] + 1) * INV2 % MOD;return;}sum = (sum - g[rt] + MOD) % MOD;g[rt] = 1LL * g[rt] * INV2 % MOD;sum = (sum + g[rt]) % MOD;f[rt] = 1LL * f[rt] * INV2 % MOD;pushdown(rt);int mid = cl + cr >> 1;modify(rt << 1, cl, mid, l, r, ccnt);modify(rt << 1 | 1, mid + 1, cr, l, r, ccnt);
}int main()
{scanf("%d%d", &n, &m);pwi2[0] = 1;rep1(i, m) pwi2[i] = 1LL * pwi2[i - 1] * INV2 % MOD; int cur = 1;rep(i, m) {int t, l, r;scanf("%d", &t);if(t == 1) {scanf("%d%d", &l, &r);modify(1, 1, n, l, r, 0);cur = 2 * cur % MOD;} else {l = 1LL * cur * sum % MOD;printf("%d\n", l);}}return 0;
}
 

D1T3

2 * 2 矩乘的 1e5 n log^2 n,比想象中稳

设最终在根上的值为 

我们不关心一个节点上的具体值;我们只关心它和  的大小关系。

考虑我们对于每个   计算  的叶子集合数量。

固定  之后,有些叶子只要得到控制权我们就能改变它和  的大小关系;有些则不行。记前者为好的叶子,后者为坏的叶子。

令 

ZJOI 2019 补题记录相关推荐

  1. Good Bye 2019补题记录

    Good Bye 2019补题记录 A. Card Game 题目描述 Two players decided to play one interesting card game. There is ...

  2. 2019 CCPC-Wannafly Winter Camp Day8 (Div2, onsite) 补题记录

    一篇来自ACM入门者的补题记录 最近有点懒,想着还有最后一篇博客没完成,是我最大的补题动力. 不过终于在camp过去三个月的时候完成了所有的补题博客,有点欣慰,下一个目标应该是补一补一年前暑期训练的题 ...

  3. 2019 CCPC-Wannafly Winter Camp Day1 (Div2, onsite)(补题记录)

    一篇来自ACM入门者的补题记录 文章目录 A.机器人 B.吃豆豆 C.拆拆拆数 E.流流流动 F.爬爬爬山 I.起起落落 J.夺宝奇兵 A.机器人 题意:有两条平行线段A,B,长度从1~n,机器人一开 ...

  4. Codeforces补题记录(1)

    文章目录 Codeforces补题记录(1) 1.Codeforces Round #632 (Div. 2)(2020.4.11) A.Little Artem B.Kind Anton *C.Eu ...

  5. 18-6-2补题记录

    1.一直在TLE的A题 -待补完 题意:第一行输入n和m 第二行输出n个数字 接下来m行输入l.r.d  要求判断l到r间的乘积能否被d整除. 思路:粗看很简单,好像可以直接暴力求解,再看妈耶这范围大 ...

  6. 2022 年牛客多校第四场补题记录

    A Task Computing 题意:给定长度为 nnn 的序列 {(wi,pi)}\{(w_i,p_i)\}{(wi​,pi​)},从中选出 mmm 项并重新排列得到子序列 {a1,a2,⋯,am ...

  7. HGAME2021刷题补题记录(懒 暂时断更)

    HGAME2021之我真的是web入门选手吗? week1 (应该可以发了吧 我看了下 week1提交好像0分) web(纯fw 赛时就写了两题) 什么什么顺风车那题 合成大西瓜 misc 不起眼压缩 ...

  8. Codeforces 补题记录

    首先总结一下前段时间遇到过的一些有意思的题. Round #474 (Div. 1 + Div. 2, combined)   Problem G 其实关键就是n这个数在排列中的位置. 这样对于一个排 ...

  9. 2022年牛客多校第三场补题记录

    A Ancestor 题意:给出两棵 nnn 个节点的树 A,BA,BA,B,A,BA,BA,B 树上每个节点均有一个权值,给出 kkk 个关键点的编号 x1,x2,⋯,xkx_1, x_2, \cd ...

  10. 牛客多校第五场7月31日补题记录

    B Boxes 题意:有 nnn 个盒子,每个盒子中装有黑球白球概率均为 12\displaystyle \frac{1}{2}21​.打开第 iii 个盒子所需代价为 wiw_iwi​.现在有一个机 ...

最新文章

  1. gan 总结 数据增强_白话GAN及其解决小样本问题的探讨
  2. SAP S4 OP/Cloud大乱斗
  3. 高性能 Windows C++ 通用组件 VC-Logger v2.0.3 正式发布
  4. 橡皮筋进度条ElasticProgressBar
  5. careercup-树与图 4.6
  6. [翻译]NUnit---String Collection File Directory Assert (七)
  7. CoreJava 笔记总结-第四章 对象与类
  8. OSI七层协议与TCP连接
  9. (转)Scala中的Some和Option
  10. 开源GIS(七)——openlayers中单击获取要素(深度好文)
  11. MATLAB基础篇——基本语法
  12. 平面设计素材:15000套高端平面logo,免费赠送给所有平面设计师...
  13. 鸿蒙系统概述(HarmonyOS)学习这一篇就够了!
  14. 变位词算法C语言,第二章 啊哈!算法(变位词)
  15. 线程sta模式_STA和MTA线程模式的区别
  16. 读者使用计算机终端是指,网络数据库使用导航-新读者专用.ppt
  17. Http请求 RestfulApi请求工具类 RestfulHttpClient
  18. 人脸识别门禁系统成楼宇安全管理首选!
  19. 没事儿就学习(5):快速排序(Fortran)
  20. go语言的类型转换 整型转字符串 字符串转整型

热门文章

  1. 计算机网络传播工作方式,计算机网络传播发展现状分析
  2. 在微型计算机的主要性能指标中内存容量指,在微型计算机的主要性能指标中,内存容量通常指...
  3. 原生Vim中的高效操作
  4. IE 浏览器下面显示时间为NAN完美解决
  5. ES5 中的一些拓展
  6. PowerPC60x系列的L2 cache相关资料阅读笔记
  7. Premiere:监控素材
  8. Eclipse将代码收缩if/for/try,支持自定义区域收缩
  9. 如何在多台服务器上备份文件,如何设置两台服务器互为备份
  10. java jndi教程_JNDI教程.ppt