![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HNOI
LauZiyang
exploring
展开
-
省选专练HNOI2008越狱
不能越狱(相邻两个房间的人的宗教信仰不同)的方案为:M*(M-1)^(N-1),第一个监狱里的犯人可以有M个宗教选择,第二个监狱里的犯人可以有M-1中选择(保证和第一个监狱里的犯人不重复即可),同理,第三个监狱的犯人只需和第二个监狱里的不一样,也是M-1个选择,,,,以此类推,共N个监狱,除第一个监狱有M个选择,其余N-1个监狱只有M-1中选择,所以M*(M-1)^(N-1) 高精度就好了 #原创 2018-01-13 12:12:26 · 150 阅读 · 0 评论 -
省选专练之【HNOI2004】树的计数
一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵。 给定n,d1, d2, …, dn,编程需要输出满足d(vi)=di的树的个数。 第一行是一个正整数n,表示树有n个结点。第二行有n个数,第i个数表示di,即树的第i个结点的度数。其中1<=n<=150,输入数据保证满足条件的树会超过10^17个。 ...原创 2018-09-26 21:50:22 · 199 阅读 · 0 评论 -
省选专练之HNOI2008遥远的行星
少见的模糊DP 发现误差允许很大 可以模糊着做,不暴力算 #include<bits/stdc++.h> using namespace std; const int N=2e5+100; double m[N]; double F[N]; int sum[N]; double a; int n; int main(){ // freopen("test.in","r",s...原创 2018-09-11 21:21:59 · 130 阅读 · 0 评论 -
省选专练之 [HNOI2015]亚瑟王
一道典型的题很难读懂 读懂我也做不起的题 看了一下题解 大抵是照着打出来了 表示前i个卡片有严格j张生效的期望概率 转移是这样的 这是啥子意思:由于一张牌只能用一次 一个轮中假设用了j-1张剩下的有r-j的次数会考虑第i张 则有选和不选两种转移 最后统计每种的概率是相同的 #include<bits/stdc++.h> using namespace ...原创 2018-08-21 20:52:34 · 133 阅读 · 0 评论 -
省选专练[HNOI2011]数学作业
额典型的矩阵快速幂 所以毒瘤在每一位都得改变矩阵的权 // luogu-judger-enable-o2 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; t...原创 2018-08-27 16:45:24 · 106 阅读 · 0 评论 -
省选专练之斜率优化[HNOI2008]玩具装箱toy
定义:S(i)为长度前缀和 易得: 由于L是常数L++ 令K为当前最优解 则 展开 定义新函数 带回原式 转为斜率式 完毕 #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring>...原创 2018-08-16 14:23:00 · 137 阅读 · 0 评论 -
省选专练[HNOI2012]三角形覆盖问题
典型的(对我来说不典型)的多边形的并 通用算法:扫描线+链表 不断往上扫描并且利用一个cover数组暴力改 然后用链表维护添加和删除 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using ...原创 2018-07-17 21:22:24 · 203 阅读 · 0 评论 -
省选专练之HNOI2007最小矩形覆盖&模板:旋转卡壳
1:先求出凸包 2:由于矩形的一条边必然在凸包上枚举这条边 3:左右(l,r)利用点乘算出(因为存在cos) 4:上下(p)利用叉乘算出(因为存在sin) #include<bits/stdc++.h> using namespace std; const double eps=1e-12; const int N=2e6+100; int cmp(double A){ ...原创 2018-07-16 21:45:55 · 128 阅读 · 0 评论 -
省选专练[HNOI2008]水平可见直线
就是一个单纯的上凸壳扫描法水过#include<bits/stdc++.h> using namespace std; const int N=600000; const double eps=1e-16; struct Point{ double x,y; int id; Point(double _x=0.0,double _y=0.0):x(_x),y(_y){} fri...原创 2018-05-26 21:41:50 · 115 阅读 · 0 评论 -
省选专练[HNOI2011]数矩形
做为一个省选题他是不怎么够格的明显的是矩形的两条对角线是一样大的,那么排个序就可以找出来。以对角线长度为第一关键字排序,然后对角线的中点坐标为2,3关键字排序辣么直接线性暴力比较但是就存在复杂度分析:如果出现一堆点分布在一个圆上他实际虽然看上去多,但是均摊下来也只有N^2的所以这个时间复杂度也是可以的。#include<bits/stdc++.h> using namespace st...原创 2018-05-26 21:07:49 · 173 阅读 · 0 评论 -
省选专练[HNOI2011]XOR和路径
高斯消元+期望dp这种题套路还是明显吧利用点的期望推边的。首先这个得按位算:我TM看见XOR还以为是线性基呢。对于每一位对于每个点f[]表示到达1的期望f[n]=0;f[i]=sigma(son[x]->w&(1<<bit)?1/cd[x]:0)高斯消元就好了#include<bits/stdc++.h> using namespace std; const ...原创 2018-03-31 09:38:28 · 122 阅读 · 0 评论 -
省选专练[HNOI2010]BOUNCE 弹飞绵羊
LCT模板,挺简单的 #include #include #include #include #include const int N=1e6+7; using namespace std; int ch[N][2]={0}; int fa[N]={0}; int rev[N]={0};//lazy int val[N]={0}; int siz[N]={0}; int原创 2017-12-08 17:13:57 · 128 阅读 · 0 评论 -
省选专练HNOI2010city城市建设
妈的,我也是个睿智,当年CDQ在wc讲的时候给了辣么多例题,最后压轴题就是这个。于是学了CDQ分治的我当天晚上强行写了这个。题意很简单,在不改变树的状况下,强行修改边权,维护动态最小生成树。两种做法,都不简单。考虑对询问进行分治,假设正在处理询问区间 [l,r][l,r] 。把所有边分为待修改(即在区间 [l,r][l,r] 中存在修改)和确定的。考虑把待修改的边权赋值为INF后来做Kruskal...原创 2018-02-12 15:41:27 · 179 阅读 · 0 评论 -
省选专练[HNOI2015]菜肴制作
知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴。 ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1。 由于菜肴之间口味搭配的问题,某些菜肴必须在另一些菜肴之前制作,具体的,一共有 M 条形如”i 号菜肴’必须’先于 j 号菜肴制作“的限制,我们将这样的限制简写为<i,j>。 现在,酒店希望能求出一个最优的菜...原创 2018-10-18 22:48:06 · 170 阅读 · 0 评论