摘要: 题面 首先你要知道题问的是什么:使用一种数据结构,动态地维护以1为起点地最长上升子序列(把楼房的高度转化成斜率地序列)的长度; 怎么做?线段树! 我们在线段树上维护两个东西:1.这个区间内斜率的最大值 2.从这段区间开头可以看到的区间内的所有楼房 初始化:对于每一个叶子节点,从这段区间头可以看到的楼 阅读全文
posted @ 2019-11-03 21:06 神之右大臣 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题面 这道题比较显然地,是一道树形背包; 但是会有环,怎么办呢? 缩点!tarjan缩点! 然后在新图上跑树形背包就可以AC了 #include <bits/stdc++.h> #define inc(i,a,b) for(register int i=a;i<=b;i++) using names 阅读全文
posted @ 2019-11-03 19:58 神之右大臣 阅读(199) 评论(0) 推荐(0) 编辑