集训Day5】的更多相关文章

Loj #6073.「2017 山东一轮集训 Day5」距离 Description 给定一棵 \(n\) 个点的边带权的树,以及一个排列$ p\(,有\)q $个询问,给定点 \(u, v, k\),设$ path(u,v) \(表示\) u$ 到 $v \(的路径,\)dist(u,v) \(表示\) u$ 到\(v\) 的距离,希望你求出 Input 第一行一个整数 \(type =0/1\)表示这个测试点的数据类型. 第二行两个整数 \(n,q\). 接下来$ n−1$ 行,每行三个整数…
「2017 山东一轮集训 Day5」苹果树 \(n\leq 40\) 折半搜索+矩阵树定理. 没有想到折半搜索. 首先我们先枚举\(k\)个好点,我们让它们一定没有用的.要满足这个条件就要使它只能和坏点相连.其他的点没有要求.这样算出来了至少\(k\)个点没有用的生成树个数,我们要得到恰好\(k\)个点的生成树个数就简单容斥一下就好了. 然后我们要得到有\(k\)个点没有用的情况下的点集的方案数.看到\(40\)这个范围我们容易想到折半搜索. 然后就没了. 但是我没写容斥,写的枚举集合划分(被吊…
自闭集训 Day5 树上数据结构 前置知识 点分治 边分治 树链剖分 LCT Top Tree LCT时间复杂度 线段树每次查询是严格\(\log n\)的,然而splay维护连续段的时候,如果每次查询可以缩点,那么访问的区间数是均摊\(O(1)\)的.(??) 所以用splay维护LCT是一个log,而线段树维护就是两个log. 捉迷藏 边分治多好,干什么点分治-- 每个点开个堆维护子树最远点.开个堆维护儿子最远点的前二大的值.开个堆维护全局最大值,然后随便搞. 边分治由于每次只需要合并两个子…
自闭集训 Day5 生成函数 一般生成函数 无脑地把序列变成多项式: \[ \{a_i\}\rightarrow A(x)=\sum_{n} a_nx^n \] 形式幂级数 生成函数是一种形式幂级数.我们不关心这个函数的具体的取值,只关心多项式的系数.在需要的时候可以把\(x​\)当成任意值. 例题 求\(\{n^2\}\)的生成函数. 这个--只要知道\(\{{n+k-1\choose k-1}\}\)的生成函数是\(\frac 1 {(1+x)^k}\)就没了. 例题 简单生成函数题,不讲了…
下面是Day5的题目!(其实都咕了好几天了 100+70+40=210. T1 皇后 XY 的疑难 (1s 512MB) 1.1 题目描述 有一个n*n的王国城堡地图上,皇后XY喜欢看骑士之间的战斗,于是他准备布置m个骑士,其中 每一个骑士都可以向8个方向,上.下.左.右.左上.左下.右上.右下移动若干距离.且每一个骑士都可以攻击他八个方向上离它最近的骑士. 皇后XY等不及看骑士之间的对决,但他又担心骑士的安危,她想提前知道每一个骑士会被从几个方向攻击到,设为 s.很显然 s 属于[0,8] .…
我们就像一把穿刺敌人的利刃,把敌人开肠破肚----凡尔登高地前气势汹汹的德军 今天没有考试,挺好,有时间自己做题了 今天主要复习+学习了数据结构,列了个表: 已完成:单调队列,线段树,set/vector,大根堆小根堆对顶堆 2.未完成:树状数组(紧急且重要),红黑树(可能永远都不会写了),主席树,treap平衡树(紧急且重要),二叉树,权值平衡树 做的题: 1.已完成:P1801 黑匣子(对顶堆/set/vector) ,P1168 中位数(线段树/对顶堆) ,P1276 校门外的树(增强版)…
day5 五道栈的题加上字符串. 单调队列. T1 表达式括号匹配   洛谷P1739 题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@"作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回"YES":否则返回"NO".表达式长度小于255,左圆括号少于20个. 输入格式 一行:表达式 输出格式 一行:"YES" 或"NO" #…
T1 Description 小$W$和小$M$一起玩拼图游戏啦~ 小$M$给小$M$一张$N$个点的图,有$M$条可选无向边,每条边有一个甜蜜值,小$W$要选$K$条边,使得任意两点间最多有一条路径,并且选择的$K$条边甜蜜值之和最大. Input 第一行三个正整数$N,M,K$. 接下来$M$行,每行三个正整数$A,B,C$表示$A,B$两点间有一条甜蜜值为$C$的无向边. Output 一行输出最大甜蜜值之和. Sample Input 5 4 3 1 2 10 1 3 9 2 3 7 4…
Description Mike有一个农场,这个农场n个牲畜围栏,如今他想在每一个牲畜围栏中养一仅仅动物,每仅仅动物能够是牛或羊,并且每一个牲畜围栏中的饲养条件都不同,当中第i个牲畜围栏中的动物长大后,每仅仅牛能够卖a[i]元,每仅仅羊能够卖b[i]元,为了防止牛羊之间相互影响,Mike找到了m条规律.每条规律给出一个三元组(i, j, k)表示假设第i个围栏和第j个围栏养的是不同的动物,那么Mike就须要花费k的代价请人帮忙处理牛羊之间的影响.只是同一时候Mike也发现k条特殊的规则(S, a…
思路:考试的时候打了LCT,自以为能过,没想到只能过80.. 考完一想:lct的做法点数是100W,就算是nlogn也会T. 讲一下lct的做法把:首先如果一条边连接的两个点都在同一个联通块内,那么这条边对答案没有影响,可以忽略,因此,问题变成了每次询问两个点中路径上权值最大的边(这里的权值我们令它为加入这条边的时间),边我们用一个点连接两个端点来表示. 正解:由于是无根树,因此我们用并查集按秩合并,每次把小的加到大的里面去,询问的时候暴力走lct查找最大即可. #include<cstdio>…