校内胡策 T9270 mjt树】的更多相关文章

题目背景 从前森林里有一棵很大的mjt树,树上有很多小动物. 题目描述 mjt树上有 n 个房间,第 i 个房间住着 ai 只第bi 种小动物. 这n个房间用n-1条路连接起来,其中房间1位mjt树的根. 现在每个房间x的小动物想知道,以房间x为根的mjt树中有多少只它们的同类. 输入输出格式 输入格式: 第一行一个整数n,表示房间数 接下来n行,每行两个整数ai,bi 再之后n-1,每行两个整数x.y,表示x和y之间有一条路径 输出格式: 一行n个数,第i个数表示以房间i为根的mjt树中bi种…
题目背景 从前森林里有一棵很大的mjt树,树上有很多小动物. 题目描述 mjt树上有 n 个房间,第 i 个房间住着 ai 只第bi 种小动物. 这n个房间用n-1条路连接起来,其中房间1位mjt树的根. 现在每个房间x的小动物想知道,以房间x为根的mjt树中有多少只它们的同类. 输入输出格式 输入格式: 第一行一个整数n,表示房间数 接下来n行,每行两个整数ai,bi 再之后n-1,每行两个整数x.y,表示x和y之间有一条路径 输出格式: 一行n个数,第i个数表示以房间i为根的mjt树中bi种…
弱省胡策 Magic 求\(n\)个点\(n\)的条边的简单联通图的个数. 毒瘤,还要写高精. 我们枚举环的大小\(k\),\(\displaystyle ans=\sum_{k=3}^nC_n^k \frac{(k-1)!}{2}n^{n-k-1}k\) 其中\(\frac{(k-1)!}{2}\)表示环的连边方案,\(n^{n-k-1}k\)就是一个大小为\(k\),\(n-k+1\)个大小为\(1\)的森林的生成树个数. 代码: 没有…
[弱省胡策]Round #5 Count 太神仙了. \(DP\)做法 设\(f_{n,m,d,k}\)表示\(n*m\)的矩阵,填入第\(k\)个颜色,并且第\(k\)个颜色最少的一列上有\(d\)个块染了\(k\)颜色. \[ \displaystyle f_{n,m,d,k}=\sum_{i=1}^nC_n^i\cdot (C_m^d)^i\cdot f_{i,m-d,0,k-1}\cdot f_{n-i,m,d+1,k} \] 边界条件特别烦,当\(n=1\)或者\(n==1\&\&…
DP+容斥原理or补集转化?/KD-Tree 唔……突然发现最早打的两场(打的最烂的两场)没有写记录……(太烂所以不忍记录了吗... 还是把搞出来了的两道题记录一下吧= =勉强算弥补一下缺憾…… Round0 A 要求问(1,2)->(n-1,m)  &  (2,1)->(n,m-1)的不相交路径条数,蒟蒻当时只想到了$N^3$的DP……即枚举当前的总步数,以及两个人分别横向走了几步. 其实正解是(也只能是?)$O(N^2)$的! ans=calc{(1,2)->(n-1,m)}…
luoguP3769 [CH弱省胡策R2]TATT PS:做这题前先切掉 P4148简单题,对于本人这样的juruo更助于理解,当然dalao就当练练手吧 题目大意: 现在有n个四维空间中的点,请求出一条最长的路径,满足任意一维坐标都是单调不降的 偏模板的K-D Tree 题目没规定起点,则从任意一点出发,按维度优先级以及每个维度坐标为关键字排序, 每点作为终点查询一次,再插入,其他就是模板化的代码了 这里用到了一个小技巧,就是初始化将子树0的值赋值,避免过多的特判,使代码更加简洁 for(LL…
orz PoPoQQQ 的神题. 我的想法是:给每一个高度都维护一个 $01$ 序列,大概就是维护一个 $Map[i][j]$ 的矩阵,然后 $Map[i][j]$ 表示第 $i$ 根柱子的高度是否 $\ge j$. 那么怎么维护 $Map[i][j]$ 呢..? 首先我们把柱子按照高度从小到大排序,然后依次给每个高度建主席树,初始时 $Map[i][0]$ 全是 $1$,然后如果当前高度 $i$ 比某个柱子 $j$ 的高度要大了,那么就单点修改 $Map[i][j]$,然后这个就是主席树动态开…
ROUND 1 第一轮是我出的. 比赛情况: #1 NanoApe 300 (完美AK) #2 && #3 swm_sxt / ccz  200 A.candy 这道题就是个nim游戏, 我们知道当且仅当选出的各堆糖果的异或和为0时,先手必败. 这样问题转化为从N个数中选1一些数使得他们的异或和为0的方案数. 30%,O(2^N) DFS. 假如只有询问, 那么可以直接用类似01背包的dp解决. for i = 1 ~ 1024 dp(i, x) += dp(i-1, x^w_i); dp…
A------------------------------------------------------------------------------------ 题目链接:http://202.197.224.59/OnlineJudge2/index.php/problem/read/id/1260 题解:随机 n 个数把矩阵补全成 n × n 的.那么就是要算伴随矩阵的第一行,也就是逆矩阵的第一列,高斯消元即可. 源码:(Q神写的高斯消元,先贴一下诶,待补) #include<cs…
因为时间关系这把没设计题面,而且居然还出了锅……T_T 信 原题是leetcode WeeklyContest52 的T1(懒得去找url了 随便搞,但是无解输-1 数字统计 原题PE603 记前n个素数组成的字符串为S 一个数字可以分成三部分,中间一段恰好为S复制某次后的结果,前面一段S的后缀,后面一段S的前缀.这3个部分分开统计. 对于每个部分,我们可以很容易写出一份暴力,然后用自然数k次前缀和的公式优化一波就可以了. #include<ctime> #include<cassert…
平衡树维护凸壳/三角函数+递推+线段树 官方题解:http://pan.baidu.com/s/1sjQbY8H 洛阳城里春光好 题目大意:(其实出题人已经写的很简短了……直接copy的-_-.sorry!) 一个平面上的n个点构成一个点集.老师会进行Q次操作,每次操作有以下两种可能:1. 插入操作:给定两个实数x,y,向点集中加入一个坐标为(x,y)的点.2. 查询操作:给定实数k,取点集中任一点(x,y),求满足方程y=kx+b的b的最大值.现在小Z想知道,对于数学老师的每次查询,符合题意的…
Prufer序列+高精度+组合数学/DP+可持久化线段树 Magic 利用Prufer序列,我们考虑序列中每个点是第几个插进去的,再考虑环的连接方式,我们有$$ans=\sum_{K=3}^n N^{N-K-1}*K*\frac{(K-1)!}{2} * \binom{N}{K}$$ 然而直接高精算会爆…… 注意到每一项与前一项相差不大,有$now=last*N/(N-K+1)$,所以我们算出来第一项以后不用每次重算后面的了…… //Round7 A #include<cstdio> #inc…
KMP/DP+树链剖分+线段树/暴力 今天考的真是……大起大落…… String QwQ题意理解又出错了……(还是说一开始理解了,后来自己又忘了为什么是这样了?) 反正最后的结果就是……我当成:后面每行只需要和第一行check一下就可以了. 因为那个图真的很像在搞串的匹配啊……一格一格往过移,看能不能匹配 然后不就是每个s[i]对A取一下模,然后KMP?看有多少个位置能匹配咯... (其实这是A=B时的做法) 将原序列增长一倍(复制一遍),对A取模做一遍,然后再对B取模做一遍,看有哪些位置是合法…
Solution 标程太暴力惹QAQ 相当于是26棵线段树的说QAQ 不过我写了另一种写法,从大到小枚举每一个字母,标记字典序在这个字母之上的位置为1,每次都建一棵线段树,维护1的数量,即区间和. 修改操作就是先查询这个区间1的数量,排序本质上就是把1一起放在这个区间前面或后面,最后查询每个位置,如果为1并且没有被标记过,就标记成当前枚举的字母即可. 将看似复杂的问题转化为了简单的区间修改和查询QAQ 不过需要各种常数优化才能过QAQ Code #include<bits/stdc++.h>…
贪心思想.将a排序后,对于每一个a,找到对应的删除m个后最小的b,每次更新答案即可. 如何删除才是合法并且最优的?首先,对于排了序的a,第$i$个那么之前就应该删除前$i-1$个a对应的b.剩下$m-i+1$可以删,那么在剩下的b中查找第$m-i+2$小即可.每次做完就删除当前a对应的b. 注意离散化. 还有数组不要开大了.... #include<bits/stdc++.h> #define LL long long using namespace std; void read(int &a…
发现一个区间[L,R]代表的2进制数是3的倍数,当且仅当从L开始的后缀二进制值 - 从R+1开始的后缀二进制值 是 3 的倍数 (具体证明因为太简单而被屏蔽). 于是我们就可以在每个点维护从它开始的后缀二进制数的值,因为在%3同余系下只有3个数,所以我们可以很容易的用线段树进行区间维护,然后答案就是 C(num[0],2) + C(num[1],2) + C(num[2],2)    [注意如果查询区间是 [l,r]的话那么 在线段树中查找的区间是 [l,r+1] ,因为区间[x,y]对应 x和…
FBI树[题目链接] 感觉我超废. MY SOLUTION:     我的想法其实也是很简单的,递归的去做,因为最后要求输出FBI的后序遍历,也就是左右头,我的方法是递归存字符数组,(按照与后序遍历完全相反的顺序存的),然后倒序输出.非常遗憾的是,因为开始时写递归写炸了(微笑),于是我修改递归变成了main函数里先进行判整个串,当n=0时,就输出了两位. #include <iostream> #include <cstdio> #include <cstring> #…
和泉纱雾与烟花大会 题目来源: UOJ 192 最强跳蚤 (只改了数据范围) 官方题解: 在这里哦~(说的很详细了 我都没啥好说的了) 题目大意: 求树上各边权乘积是完全平方数的路径数量. 这种从\(n^2\)条路径中找出满足xx条件的路径的条数的题, 我们可以根据常识判断要用到点分治. 不过这题并没有用到点分治, 这个一会再说, 我们先来看部分分. 哎呀其实这题好多部分分我都不会写(捂脸 算法1: 直接乘边权处理显然是不行哒, 怕是\(w\leq2\)怕是都要用到高精度了(什么你说\(w\le…
只要你不强制在线, 我就能分块. --Reflash 就算你强制在线, 我还是要分块. --Enzymii 今天做了一波舒老师的毒瘤题, T1据说很水但是没思路所以直接放掉了.. 去看了看T2好像可以水不错的分数, 那就去做一下. 我们先把题目放一下: (画风很迷很迷 大家稍微忍一下 忍一下) 就很显然一道数据结构题... 本来想写线段树, 但是标记看上去好像并不怎么好维护, 看一下数据范围, \(n\leq100000\)? 那我们可以分块啊~ 题目的输入格式中有一行小字说的是: "想用离线分…
容斥原理+Fib Orz HE的神犇们 蒟蒻只能改出来第三题……实在太弱 官方题解:http://pan.baidu.com/s/1o6MdtQq fib的神奇性质……还有解密a[i]的过程……这里就不细说了…… 主要学习了一下容斥>_<(然而还是没什么感觉?) 写在代码注释里了…… //Round3 C #include<cstdio> #include<set> #include<cstring> #include<cstdlib> #inc…
官方题解:http://wyfcyx.is-programmer.com/posts/95490.html A 目前只会30分的暴力……DP好像很神的样子0.0(听说可以多次随机强行算? //Round2 A #include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> #define rep(i,n) for(int i=0…
这个题是传说中的 Hack 狂魔 qmqmqm 出的构造题.当然要神. 这个题的本质实际上就是构造一个图,然后使得任意两点间都有长度为 $k$ 的路径相连,然后对于任意的 $i < k$,都存在两个点使得这两个点没有长度为 $i$ 的路径相连. 我的构造方法就是: 首先给每个点连一个自环. 构造一个大小为 $n-k+1$ 的团. 然后剩下的点造成一条链并与 $n-k+1$ 号点相连. 这样的解是一组可行解. 时间复杂度 $O(n^2)$,空间复杂度 $O(1)$. #include <cstd…
这个题是我出的 sb 题. 首先,我们可以得到: $$A_i = \sum_{j=i}^{n}{j\choose i}(-1)^{i+j}B_j$$ 我们先假设是对的,然后我们把这个关系带进来,有: $$B_i = \sum_{j=i}^{n}{j\choose i}A_j = \sum_{j=1}^{n}{j\choose i}\sum_{k=j}^{n}{k\choose j}(-1)^{j+k}B_k = \sum_{j=i}^{n}B_j\sum_{k=i}^{j}{j\choose k…
感觉这个题好神啊. 首先我们只管 $a = b$ 的情况,那么我们自然就可以把这个串对 $a$ 取模,然后用 KMP 求出能弄出几个其他的 B 串. 具体就是把串先倍长,然后倒过来,然后求 $Next$ 数组,然后从 $2n$ 开始沿着 $Next[]$ 跳,直到跳到 $\le n$ 的时候停止,看哪些位置被跳到了,哪些位置就是合法的. 问题是现在 $a \neq b$ 怎么办..? 我猜啊,我们可以求出限制是 $a$ 的倍数时,哪些 B 串是合法的,再求出限制是 $b$ 的倍数是,哪些是合法的…
反演+FFT+构造+DP 写了这么多tag,其实我一个也不会 A 第一题是反演……数据范围10W,看着就有种要用FFT等神奇算法的感觉……然而蒟蒻并不会推公式,只好写了20+10分的暴力,然而特判30分的时候好像挂了,所以并没有拿到……20分滚粗了 最近打暴力搞部分分的时候,写各种情况的判断条件什么的总是出问题……sad……以后还是自己造下数据判一下能不能过吧,不能总是靠人品啊>_> 我还是放弃FFT吧,反正……出来这种题,我也想不到要用FFT & 不会推公式……呵呵哒 //Round…
01分数规划(网络流)+状压DP+树形DP 官方题解地址:http://pan.baidu.com/s/1mg5S5z6 A 好神啊= =第一次写01分数规划 其实分数规划是要求$$ Maximize/Minimize \ \ L=\frac{A(x)}{B(x)}$$ 这里我们拿最大来举例吧……因为本题就是最大嘛~ 通用解法是:二分= = 假设最优解为$\lambda^*$,那么有$$\lambda^*=f(x^*)=\frac{A(x^*)}{B(x^*)} \\ \Rightarrow \…
Flower Dance Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://162.105.80.126/contest/%E3%80%90%E5%BC%B1%E7%9C%81%E8%83%A1%E7%AD%96%E3%80%91Round%20%230/Flower%20Dance Description 萌萌哒的TKD正在打代码,耳边放着Flower Dance,手指轻快地在键盘上舞动. 听着这美妙的旋律,TKD不禁想起了什么. 第一次…
description 洛谷 data range \[ n\le 5\times 10^4\] solution 这就是四维偏序了... 好象时间复杂度是\(O(n^{\frac{5}{3}})\)... 因为可以剪枝所以速度快了一些... code #include<bits/stdc++.h> #include<algorithm> #include<iostream> #include<cstdlib> #include<iomanip>…
题目链接: http://ch.ezoj.tk/contest/%E3%80%90%E5%BC%B1%E7%9C%81%E8%83%A1%E7%AD%96%E3%80%91Round%20%230/Flower%20Dance 题意: 在一个n*m的地图上,两个人同时从左上角走到右下角,其中有一些格子是障碍,不能走. 并且,两个人走的路径不能相交. 求总方案数. 题解: 昨天晚上做这道题一点靠谱的思路都没有.就是不相交路线那里被弄死了.. 后来听了讲解才发现..代码如此简单! 就是要开动脑筋啊!…
luogu 题意 其实就是四维偏序. sol 第一维排序,然后就只需要写个\(3D-tree\)了. 据说\(kD-tree\)的单次查询复杂度是\(O(n^{1-\frac{1}{k}})\).所以这里的复杂度是\(O(n^{\frac{5}{3}})\). code #include<cstdio> #include<algorithm> using namespace std; int gi() { int x=0,w=1;char ch=getchar(); while (…