当前位置:网站首页>【8.3】代码源 - 【喵 ~ 喵 ~ 喵~】【树】【与】
【8.3】代码源 - 【喵 ~ 喵 ~ 喵~】【树】【与】
2022-08-05 03:51:00 【ZhgDgE】
#865. 喵 ~ 喵 ~ 喵~
题意:有 m ( 1 ≤ m ≤ 1 0 5 ) m(1\leq m\leq 10^5) m(1≤m≤105) 次操作,每次操作:如果 o p = 1 op=1 op=1 ,则在可重集合中添加一个区间 [ l , r ] ( 1 ≤ l ≤ r ≤ 1 0 5 ) [l,r](1\leq l\leq r\leq 10^5) [l,r](1≤l≤r≤105) ;如果 o p = 2 op=2 op=2 ,则给定一个区间 [ l , r ] ( 1 ≤ l ≤ r ≤ 1 0 5 ) [l,r](1\leq l\leq r\leq 10^5) [l,r](1≤l≤r≤105) ,问集合中有多少个区间和给定区间相交。
思路:这种问题有一个比较经典的解决思路。假设当前有 m m m 个区间 ,给定区间 [ L , R ] [L,R] [L,R] ,则与给定区间相交的区间数量为 :左端点在 R R R 左边的区间数量 减去 右端点在 L L L 左边的区间数量,即 ∑ i = 1 m [ l i ≤ R ] − ∑ i = 1 m [ r i < L ] \sum_{i=1}^m[l_i\leq R]-\sum_{i=1}^m[r_i<L] ∑i=1m[li≤R]−∑i=1m[ri<L] 。因为左端点在 R R R 左边的区间,如果不与给定区间相交,则必然是右端点在 L L L 左边。
那么实现方式就是开两个树状数组,一个维护 { l } \{l\} { l} 一个维护 { r } \{r\} { r} ,就可以了。
AC代码:http://oj.daimayuan.top/submission/317153
#154. 树
题意:有一棵 n ( 1 ≤ n ≤ 3000 ) n(1\leq n\leq 3000) n(1≤n≤3000) 个节点的以 1 1 1 为根的有根树。现在可以对这棵树进行若干次操作,每一次操作可以选择树上的一个点然后删掉这个点和它的儿子之间的所有边。
现在想要知道对于每一个 k ∈ [ 1 , n ] k∈[1,n] k∈[1,n] ,最少需要多少次操作才能让图中恰好存在 k k k 个联通块。
思路:初始连通块数量为 1 1 1 ,定义 s i z ( i ) siz(i) siz(i) 表示点 i i i 有多少个儿子,如果删去 i i i 的子向边则连通块数量会增加 s i z ( i ) siz(i) siz(i) 。
那么问题就转化成了 01 背包问题:背包体积上限为 k ( k ∈ [ 1 , n ] ) k(k\in[1,n]) k(k∈[1,n]) ,每个物品只有一个,体积为 s i z ( i ) siz(i) siz(i) ,价值为 1 1 1 ,问恰好填满背包 k k k 个体积的最小价值。
AC代码:http://oj.daimayuan.top/submission/317187
#155. 与
题意:给定 n , k ( 1 ≤ n , k ≤ 1 0 4 ) n,k(1\leq n, k\leq 10^4) n,k(1≤n,k≤104) 。计算有多少长度为 k k k 的数组 a 1 , a 2 , ⋯ , a k a_1,a_2,\cdots,a_k a1,a2,⋯,ak ,满足:
- ∑ i = 1 k a i = n , a i ≥ 0 ∑_{i=1}^ka_i=n,a_i≥0 ∑i=1kai=n,ai≥0 。
- 对于任意的 i = 1 , … , k − 1 i=1,…,k−1 i=1,…,k−1 有 a i AND a i + 1 = a i + 1 a_i ~\text{AND} ~a_{i+1}=a_{i+1} ai AND ai+1=ai+1 。其中 AND \text{AND} AND 是与操作。
输出答案对 1 0 9 + 7 10^9+7 109+7 取模的结果。
思路:考虑二进制上的每一位,从 1 ∼ k 1\sim k 1∼k 必然是 1 , 1 , ⋯ , 1 , 0 , ⋯ , 0 , 0 1,1,\cdots,1,0,\cdots,0,0 1,1,⋯,1,0,⋯,0,0 ,那我们从二进制的角度定义,这样状态数量更少,转移起来更快。定义 d p ( b i t , j ) dp(bit,j) dp(bit,j) 表示前 0 ∼ b i t 0\sim bit 0∼bit 上这些位可以为 0 / 1 0/1 0/1 ,且 b i t ∼ inf bit\sim \inf bit∼inf 位上都为 0 0 0 ,且总和为 j j j 时的方案数 。那么我们枚举 b i t bit bit 位上有多少个 1 1 1 ,转移方程就是 d p ( b i t , j ) = ∑ j − k × 2 b i t ≥ 0 d p ( b i t − 1 , j − k × 2 b i t ) dp(bit,j)=\sum_{j-k\times 2^{bit} \geq 0}dp(bit-1,j - k\times 2^{bit}) dp(bit,j)=∑j−k×2bit≥0dp(bit−1,j−k×2bit)
边栏推荐
- Hard power or soft power, which is more important to testers?
- token, jwt, oauth2, session parsing
- SkiaSharp 之 WPF 自绘 粒子花园(案例版)
- UE4 通过互动(键盘按键)开门
- mutillidae下载及安装
- 调用阿里云oss和sms服务
- iMedicalLIS监听程序(2)
- [Paper Notes] MapReduce: Simplified Data Processing on Large Clusters
- UE4 第一人称角色模板 添加生命值和调试伤害
- High Item 02 Information System Project Management Fundamentals
猜你喜欢

Developing Hololens encountered The type or namespace name 'HandMeshVertex' could not be found..

21 Days Learning Challenge (2) Use of Graphical Device Trees

UE4 通过重叠事件开启门

The most effective seven performance testing techniques of software testing techniques

UE4 更改组件变量 (以修改第一人称角色模板的最大行走速度和跳跃高度为例)

用CH341A烧录外挂Flash (W25Q16JV)
![[Paper Notes] MapReduce: Simplified Data Processing on Large Clusters](/img/89/8adef42b0cfd154e6fa7205afaeade.png)
[Paper Notes] MapReduce: Simplified Data Processing on Large Clusters

银行数据采集,数据补录与指标管理3大问题如何解决?

Web3.0 Dapps - the road to the future financial world

阿里本地生活单季营收106亿,大文娱营收72亿,菜鸟营收121亿
随机推荐
BI业务分析思维:现金流量风控分析(二)信用、流动和投资风险
The second council meeting of the Dragon Lizard Community was successfully held!Director general election, 4 special consultants joined
Open-Falcon of operation and maintenance monitoring system
Ali's local life's single-quarter revenue is 10.6 billion, Da Wenyu's revenue is 7.2 billion, and Cainiao's revenue is 12.1 billion
Haproxy搭建Web群集
How to wrap markdown - md file
十五. 实战——mysql建库建表 字符集 和 排序规则
How to discover a valuable GameFi?
Redis key基本命令
shell脚本:for循环与while循环
token、jwt、oauth2、session解析
队列题目:最近的请求次数
2022-08-04T17:50:58.296+0800 ERROR Announcer-3 io.airlift.discovery.client.Announcer appears after successful startup of presto
MySql的索引学习和使用;(本人觉得足够详细)
用CH341A烧录外挂Flash (W25Q16JV)
ffmpeg 枚举decoders, encoders 分析
Shell script: for loop and the while loop
Slapped in the face: there are so many testers in a certain department of byte
Static method to get configuration file data
On governance and innovation, the 2022 OpenAtom Global Open Source Summit OpenAnolis sub-forum came to a successful conclusion