[Luogu3769][CH弱省胡策R2]TATT】的更多相关文章

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 (…
luoguP3769 [CH弱省胡策R2]TATT PS:做这题前先切掉 P4148简单题,对于本人这样的juruo更助于理解,当然dalao就当练练手吧 题目大意: 现在有n个四维空间中的点,请求出一条最长的路径,满足任意一维坐标都是单调不降的 偏模板的K-D Tree 题目没规定起点,则从任意一点出发,按维度优先级以及每个维度坐标为关键字排序, 每点作为终点查询一次,再插入,其他就是模板化的代码了 这里用到了一个小技巧,就是初始化将子树0的值赋值,避免过多的特判,使代码更加简洁 for(LL…
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>…
本蒟蒻第一道\(K-D-Tree\)维护\(dp\) Question 题目大意:求一条路径,使得其四个维度单调不降. 先排序消掉一维再说. 对于每一个点,初始的时候绝对长度是1啊.于是,先赋值一个1,对于每一个点. 设计\(dp\)数组 \[f[i]=max_{f[j]}(a[j]<=a[i],b[j]<=b[i],c[j]<=c[i],d[j]<=d[i]) \] 那问题就转为,对于每一个点,如何求出在它之前的最大\(f[i]\)值. 发现问题类似于三维偏序,正好\(K-D-T…
真是一个自闭的题目(调了一个上午+大半个下午) 从\(WA\)到\(WA+TLE\)到\(TLE\)到\(AC\) 真的艰辛. 首先,这个题,我们可以考虑直接上四维KDTree来解决. 对于kdtree上的每个节点,我们维护三个值,分别表示各个维度的\(mn\),当前节点的\(val\)(这个是用来每次更新\(ans\)的),子树的\(val\)的最大值(用来做估价函数) 首先\(build\)出整个kdtree void up(int root) { for (int i=0;i<=3;i++…
[弱省胡策]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\&\&…
弱省胡策 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\)的森林的生成树个数. 代码: 没有…
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)}…
容斥原理+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…