rl

[CF377D][线段树][扫描线]Developing Game

孤者浪人 提交于 2019-11-29 05:44:50
CF377D 把 l , r l,r l , r 看成两维坐标,假设最后有解,那一定存在一个 ( L , R ) (L,R) ( L , R ) 使得 L ≥ m a x { l [ i ] } , L ≤ m i n { v [ i ] } L\ge max\{l[i]\},L\le min\{v[i]\} L ≥ m a x { l [ i ] } , L ≤ m i n { v [ i ] } 且 R ≥ m a x { v [ i ] } , R ≤ m i n { r [ i ] } R\ge max\{v[i]\},R\le min\{r[i]\} R ≥ m a x { v [ i ] } , R ≤ m i n { r [ i ] } ,否则显然不满足条件 即是把 l , v , r l,v,r l , v , r 看作一个横坐标 ( l , v ) (l,v) ( l , v ) 纵坐标 ( v , r ) (v,r) ( v , r ) 的矩形,要求尽量多的矩形使得它们的面积并不为空(可以为0,就是矩形并为一个点的情况) 那就可以线段树+扫描线了 Code: # include <bits/stdc++.h> # define pb push_back using namespace std ; inline int read ( ) { int res = 0

左神算法第八节课:介绍递归和动态规划(汉诺塔问题;打印字符串的全部子序列含空;打印字符串的全排列,无重复排列;母牛数量;递归栈;数组的最小路径和;数组累加和问题,一定条件下最大值问题(01背包))

余生颓废 提交于 2019-11-27 16:55:36
暴力递归: 1,把问题转化为规模缩小了的同类问题的子问题 2,有明确的不需要继续进行递归的条件(base case) 3,有当得到了子问题的结果之后的决策过程 4,不记录每一个子问题的解 动态规划 1,从暴力递归中来 2,将每一个子问题的解记录下来,避免重复计算 3,把暴力递归的过程,抽象成了状态表达 4,并且存在化简状态表达,使其更加简洁的可能 一:递归 1. 汉诺塔问题 汉诺塔问题(不能大压小,只能小压大),打印n层汉诺塔从最左边移动到最右边的全部过程。 左中右另称为 from、to、help。 划分子问题: 1、先把1~n-1从from移动到help; 2、把单独的n移动到to; 3、1~n-1从help移动到to; 时间复杂度就是:T(n) = T(n-1) + 1 + T(n-1) = 2T(n-1)+1(一个等比公式)。T(n-1)是移动到help;1是从from直接移动到to;T(n-1)是把全部n-1挪回去。总的步数是2的N次方减一。 2. 打印一个字符串的全部子序列,包括空字符串 例如:一个字符串awbcdewgh 他的子串:awbc,awbcd,wbcde...很多个子串,但是都是连续在一起 他的子序列:abc,abcd,abcde...很多个子序列,但是子序列中的字符在字符串中不一定是连在一起的 所以 子串!=子序列 思路:穷举,例如“abc”

文字竖排,英文竖排

﹥>﹥吖頭↗ 提交于 2019-11-27 10:33:11
竖排,别再调盒子宽度来让文字换行实现竖排!!    也别再用<br> + line-height,看着难受!! writing-mode: horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr    =====================================额外用例! 1.一些图标也不必更换样式后引入,当然css3的rotate也是可以的,对于图标 /* css */ 1 .icon-play { 2 font-family: 'icomoon'; 3 } 4 5 .verticle-mode { 6 writing-mode: tb-rl; 7 -webkit-writing-mode: vertical-rl; 8 writing-mode: vertical-rl; 9 *writing-mode: tb-rl; 10 } <!-- html --> 1 <p><strong>默认流</strong></p> 2 <span class="icon-play">r</span> 箭头朝右 3 <p><strong>垂直流</strong></p> 4 <span class="icon-play verticle-mode">r</span> 箭头朝下 样式显示为: 2