种花

枚举 C 或者 F 最左边的那一竖,考虑对于每一个这一竖上的全 \(0\) 区间 \([l,r]\) 求答案。

记每个点向右延伸最多延伸到 \(L_{i,j}\),对于 C 的情况,枚举列 \(k\),枚举 \(i,j\),方案数为:

\[\sum_{i=l}^r\sum_{j=i+2}^r (L_{i,k}-1)(L_{j,k}-1)
\]

容易前缀和优化,F 类似做即可。

喵了个喵

首先做 \(k=2n-2\),考虑选定一个为空的栈为缓冲栈,称这个栈为 \(p\)。

对于前 \(n-1\) 个栈,每个栈放置两个不同种类的卡片的话,接下来无论进来哪种颜色我们都有能力删除,解决 \(k=2n-2\)。

考虑 \(k=2n-1\) 的情况,此时会存在一个额外的颜色,我们讨论如何处理这个颜色,注意这里的处理一定满足了前 \(n-1\) 个栈各有两个不同的颜色:

  • 记 \(p_x\) 表示某一个物品下一个与之相同的编号,若存在栈 \(i\) 中的物品 \(x,y\),\(x\) 为栈顶,\(y\) 为栈底,满足 \(p_y<p_x\),则可以将 \(p\) 放入当前栈,因为 \(y\) 一定会比 \(x\) 先被消除。
  • 如不存在,将下一个颜色 \(p\) 放置于缓冲栈,考虑下一个是栈底或者是 \(p\) 的颜色,是 \(p\) 可以直接做,若对应栈顶颜色在这个位置之前出现了奇数次则需要将某一个元素放置于缓冲栈,否则同样直接做。

建造军营

首先缩边双,因为删边双内部的边没有意义,故边双内部的边可以随便乱选,剩下的问题转到树上。

下面的做法有一、复杂。

记 \(f_{u,0/1,0/1/2}\) 表示某个边双选了点 / 没选点,儿子的子树中有 \(0\) 个 / \(1\) 个 / \(\ge 2\) 个内部选了点。

记 \(h_u\) 表示上述答案状态中 \(f_{u,0,1}\) 但是子树中被选定的点的最高点向上的每一条边都被钦定选择的方案数。

可以分类讨论转移,做到线性。

比赛

考虑猫树分治,对于每个询问拆成若干个跨越区间中点的询问。

对于右半边,我们预处理出 \(a\) 的前缀最大值和 \(b\) 的前缀最大值,枚举左半边的每一个位置并动态求出最大值,则此时右半边的最大值变化是一个分段函数。

可以用树状数组维护,好像很口胡,可以看看 https://www.cnblogs.com/jz-597/p/13933566.html

还有另一种做法是 https://www.luogu.com.cn/blog/rqy/noip-t4-sol ,大概思路是扫描线维护历史和。

最新文章

  1. JavaScript局部变量和全局变量的理解
  2. hdu2072 字典树
  3. DHT(Distributed Hash Table) Translator
  4. HBase笔记--安装及启动过程中的问题
  5. [置顶] 【IOS】IOS7 UI适配
  6. Python 函数装饰器和闭包
  7. MySQL聚簇索引和非聚簇索引的对比
  8. Best Cow Line(POJ3617)
  9. jquery IE中加载xml
  10. python 读取单所有json数据写入mongodb(单个)
  11. 抓包软件Packet Sniffer的使用
  12. BZOJ 4066 简单题(KD树)
  13. Bit banging
  14. 使用Mybatis整合spring时报错Injection of autowired dependencies failed;
  15. flask--Wtform
  16. 关于css 中position使用的浅谈
  17. [洛谷P4726]【模板】多项式指数函数
  18. Python&mdash;&mdash;Numpy的random子库
  19. Logstash学习系列之基础介绍
  20. 【转】mysql中select用法

热门文章

  1. python selenium 控制网页中内置滚动条操作
  2. js逆向到加密解密入口的多种方法
  3. WireShark抓包入门教学
  4. Java关键词synchronized解读
  5. iOS 使用xcode11新建项目
  6. 史上最简单 OpenCV for C++ 在 Windows 和 Ubuntu 上编译安装使用教程
  7. Ubuntu 安装配置 Java 环境
  8. 【模板】网络最大流 Dinic(多路增广+当前弧优化)
  9. chatGPT 桌面版安装教程
  10. http协议的请求方式