考场 \(65+5+0\),并列 rk2 最高分 \(55+10+10\) T1:等比数列可以写作 \(q^kx\),发现 \(q\le1000\) 且有一档分为 \(a_i\le100\),想到 \(2^{60}>10^{18}\),即等比数列的长度最多为 \(59\),这样枚举的区间就从 \(n^2\) 下降到了 \(60n\).对于每个区间,排序后枚举 \(q\),通过预处理 \(q\) 的次幂大力剪枝,复杂度不明.写了很久,最终有RE有TLE. T3:虽然以前学过欧拉路,但之后再没写过,…
熟练剖分(tree) 树形DP 题目描述 题目传送门 分析 我们设\(f[i][j]\)为以\(i\)为根节点的子树中最坏时间复杂度小于等于\(j\)的概率 设\(g[i][j]\)为当前扫到的以\(i\)为父亲节点的所有儿子最坏时间复杂度小于等于\(j\)的概率之和 因为每遍历到一个新的节点,原来的\(g\)数组中的值就要全部更新,因此我们压掉第一维 下面我们考虑转移 对于当前枚举到的某一个节点,我们用三重循环分别扫一边 第一重循环代表当前哪一个节点充当重儿子,第二重循环枚举所有儿子,第三充循…
---恢复内容开始--- 序列 刚调出来样例就A了,假装是水题. 因为是乱序,我们要求出来每两项之间最小公比,而不是直接比 求出来每两项之间最小公比,然后扫一遍就完了.(还要注意重复情况) 那么问题就转化成了怎么求最小公比. 完了 以下是本人丑陋的代码 #include<bits/stdc++.h> #define ll long long #define A 100000 using namespace std; ll n,a[10*A],tot=0,maxlen[10*A],nowlen=…
题目大意:https://www.cnblogs.com/Juve/articles/11186805.html 题解: 先给出官方题解: 其实这题跟期望没什么关系,因为E=$\sum_\limits{x=0}^{+\infty}$p(x)*x,所以我们只要求出轻链最多为 i 的概率就行了.以下把题面所求的精彩操作称为最长轻链.而这个东西显然是可以由子节点转移到父亲节点的.F[i][j]表示在点 i 为根的子树中,向下最长轻链长度为 j 的概率.对于一个点,先枚举它选择的重儿子是谁,然后扫一遍它…
一道概率神题,考试时没读清题考完看了学长的玄学题解看了好几个小时 首先f[i][j]表示在点 i 为根的子树中,向下最长轻链长度小于等于 j 的概率. 首先递归下去并求出子树大小,然后枚举重儿子,枚举该点最长轻链长度,再次枚举儿子节点并逐个 假设当前枚举的重儿子是to1,枚举到儿子节点to2,x最长轻链长度为k,设gs为v(to2)之前考虑的儿子中最长轻链长度为k的概率如果v(to1)=v(to2)即v(to2)为重儿子,则设fs为以v(to2)为根的子树最长轻链长度为k的概率: h[k]=(f…
T3建造游乐园 这题的关键是推式子 i个点中,有g[i]个方案是度为偶数但不一定连通那么就要减去不合法的设已有j个合法,其个数为f[j],剩下i-j个的方案数是g[i-j]选出来一个固定的点在合法的j个之中对于 与这个点连接的j-1的点的选择方案数为C(i-1,j-1) #include<iostream> #include<cmath> #include<cstdio> #define ll long long using namespace std; ; ll g[…
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2758 题意:平面上有n个多边形(凸包和圆).任意两个多边形AB只有两种关系:(1)A包含B或者B包含A:(2)AB的公共面积为0.每个多边形有一个值x.m个查询.分两种:(1)修改某个多边形的值:(2)从一点s走到另一点t.每次走出一个多边形或者进入一个多边形时,都要抑或上该多边形的值.输出走到t时的值.(由抑或的性质和本题定义可得这个值跟走的路经无关) 思路:首先我们发现,这些…
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3672 题意:给出一棵有根树(1为根),边有长度.每个点u有三个属性(len[u],p[u],q[u]),每次u可以转移到u的某个祖先节点v(v满足dist(u,v)<=len[u]),代价为p[u]*dist(u,v)+q[u].求每个点都转移到1的代价. 思路:首先设f[u]表示u转移到1的最小代价,那么我们可以得到一个DP方程: f[u]=min(f[v]+p[u]*(s[u…
Orz 出题人石二队爷 我们可以先求出有n个点的联通欧拉图数量,然后使它删或增一条边得到我们要求的方案 也就是让它乘上$C_n^2$ (n个点里选2个点,要么删边要么连边,选择唯一) 那么接下来就是求有n个点的联通欧拉图数量$f[n]$ 首先来看欧拉图的定义: 一张无向图为欧拉图,当且仅当无向图连通,并且每个点的度数都是偶数. 那么设共有n个点且所有点度数皆为偶数的方案数为$g[n]$ 之后尝试计算出来它 先把一个点拿出来,剩$n-1$个点 从这$n-1$个点中选2个点,这两点之间可以连或不连边…
题目:https://www.cnblogs.com/Juve/articles/11186805.html(密码是我的一个oj用户名) solution: 反正我是想不出来... 题目大意就是要求出有多少个图删除一条边或加上一条边后成为一个连通的欧拉图 实际上答案等于有n个点的带标号连通的欧拉图数量*$C_{n}^{2}$,也就是我先数出所有的欧拉图数量,在这个欧拉图上删一条边或是加一条边得到合法方案,那么其实每一条边只会对应删或加,及$C_{n}^{2}$中选择. 数连通欧拉图则可以用容斥原…