bzoj 5340: [Ctsc2018]假面】的更多相关文章

Description 题面 Solution 生命值范围比较小,首先维护每一个人在每个血量的概率,从而算出生存的概率,设为 \(a[i]\) 询问时,只需要考虑生存的人数,可以 \(DP\) 设 \(g[i][j]\) 表示前 \(i\) 个人活了 \(j\) 个的概率 \(g[i][j]=g[i-1][j-1]*a[i]+g[i-1][j]*(1-a[i])\) 那么考虑每一个人时,我们对其他人做这个 \(DP\) 就行了,可以做 \(O(C*n^3)\) 实际上这是个生成函数 \((a[i…
BZOJ5340: [Ctsc2018]假面 https://lydsy.com/JudgeOnline/problem.php?id=5340 分析: 背包,只需要求\(g_{i,j}\)表示强制活第\(i\)个人一共活了\(j\)个人的概率,\(f_j\)表示活了\(j\)个人的概率 . 这个东西有\(g_{i,j}=f_{j}-g_{i,j+1}\times p_i/(1-p_i)\) 转移即可,有小细节. \(p_i\)可能为\(0\)使得没有逆元,不过此时答案一定为\(0\). 在计算…
题目大意:n个人,k种假面,每人戴一种,戴第i种的可以看见第i+1种,戴第k种的可以看见第1种,给出m条关系表示一个人可以看到另一个人,问k可能的最大值和最小值.(n<=100,000,m<=1,000,000) 思路:染色,若点i颜色为ci,就把点i能到的点染成ci+1,能到点i的点染成ci-1,如果染之前已经染过了,设要染的点为j,则cj和ci+1(-1)模k同余,若cj不等于ci+1(-1),则k必然为|ci+1(-1)-cj|的因子,取gcd即可.若没有出现这种情况,最大答案为各连通块…
https://www.lydsy.com/JudgeOnline/problem.php?id=5340 https://www.luogu.org/problemnew/show/P4564 https://loj.ac/problem/2552 (这送分题我写不出来……我退役吧) 也懒得写题解了,看https://kelin.blog.luogu.org/solution-p4564吧. 什么你说op=1的你没听懂,那你可能和我一样了(握手(大雾. 那么遵从原题解的命名,f[u][i]表示…
5343: [Ctsc2018]混合果汁 题目描述 小 R 热衷于做黑暗料理,尤其是混合果汁. 商店里有 \(n\) 种果汁,编号为 \(0,1,\cdots,n-1\) .\(i\) 号果汁的美味度是 \(d_i\),每升价格为 \(p_i\).小 R 在制作混合果汁时,还有一些特殊的规定,即在一瓶混合果汁中,\(i\) 号果汁最多只能添加 \(l_i\) 升. 现在有 \(m\) 个小朋友过来找小 R 要混合果汁喝,他们都希望小 R 用商店里的果汁制作成一瓶混合果汁.其中,第 \(j\) 个…
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1064 分析: 如果a看到b,则a->b 那么: 1.如果图中有环,则说明这个环的长度肯定是答案的倍数.所以最大种类数=所有环的长度的gcd,最小种类数=所有环的长度的公约数中>=3的最小数 2.如果图中没有环且都是单独的长链,那么最大种类数=每个联通图中最长链的和,最小种类数=3(如果没有则-1) 3.要考虑一种特殊情况:a->b->c->d a->e-&g…
题目链接 LOJ 2552 Luogu P4564 考场上这道题我先是写了个70分暴力,然后发现似乎可以NTT,然鹅问题是--我没学过NTT,遂脑补之,脑补出来了,下午出成绩一看,卡成暴力分(70)--同是\(O(Qk^2\log k)\),学姐的拉格朗日什么玩意就能过TAT--学姐太强了-- 遂不忿,今天上午重写NTT,努力卡常,卡不进去-- 那还是写正解吧. 首先,发现血量上限很少,0操作时,暴力维护每一时刻每个人是每种血量大小的概率即可. 1操作怎么办呢?设\(alive_i\)是\(i\…
莫名其妙的变成了我们的noip互测题... 其实这题思想还是比较简单的,只是分类不好分而已 其实就是一个dfs的事 首先,非常明显,原题目中的所有关系可以抽象成一个图(这是...显而易见的吧...) 接下来,我们仅需在图上讨论即可 当然,这个图有几个部分组成其实并没有那么重要,毕竟,这些部分基本是互不干扰的. 所以接下来我们只需要对每一个块分别处理即可 我们来分类: 首先,如果所有块都是树,我们只需求出每个树上的最长链即可 接下来,如果存在环(包括真实的环和类环,即1-2-3-1和1-2-4+1…
http://www.lydsy.com/JudgeOnline/problem.php?id=1064 题意: 思路: 考虑以下几种情况: ①无环并且是树: 无环的话就是树结构了,树结构的话想一下就知道它的k最大值就是它的最长链,最小值就是3(如果链长>=3的话),如果有多棵树,只需要把它们的最长链加起来即可. ②存在环并且顺序相同 这种情况下的话k肯定是环长的约数,有多个环时就是它们之间的最大公约数.这样找最大和最小的约数即可. ③存在环并且顺序不同 上面这个图的话就不是一个简单的单顺序的环…
LINK 思路 首先考虑减血,直接一个dp做过去,这个部分分不难拿 然后是\(op=1\)的部分 首先因为要知道每个人被打的概率,所以需要算出这个人活着的时候有多少个人活着时概率是什么 那么用\(g_{i,j}\)表示第i个人还活着的时候还有其他的j个人活着的概率 这个东西暴力DP是\(n^3\)的 那么可以考虑优化,用\(f_{i,j}\)表示前i个人有j个人活着的概率 有转移:\(f_{i,j}=f_{i-1,j-1}*(1-p_i)+f_{i-1,j}*p_i\),其中\(p_i\)表示第…
Description Solution 边分治+边分树合并 这个题很多做法都是启发式合并的复杂度的,都有点卡 以前有个套路叫做线段树合并优化启发式合并,消掉一个 \(log\) 这个题思路类似,建出边分树,通过一些操作把它变成线段树,就可以线段树合并了 首先边分树的相关定理: 如果一棵包含 \(N\) 个结点的树中每个点的度均不大于 \(D\),那么存在一条边,使得分出的两棵子树的结点个数在 \([N/(D+1),N*D/(D+1)]\) 那么边分树的深度和度数是相关的,我们只需要通过加虚点把…
题目 先来考虑一下第一问,血量有\(P\)的概率减\(1\) 由于我们最后需要求每一个人的期望血量,于是考虑维护出每个人处于不同血量时候的概率 一个简单\(dp\)即可 \[dp_{i,j}=dp_{i,j+1}P+dp_{i,j}\times (1-P)\] \(dp_{i,j}\)表示第\(i\)个人血量为\(j\)的概率 第二问,发现概率的选中的人中的存活人数有关 于是每一个人只有两种状态,生或者是死,我们考虑求出每种存活人数对应的概率是多少 显然这里我们有一个这样的\(dp\) \[f_…
题目链接 BZOJ5340 题解 我们能很容易维护每个人当前各种血量的概率 设\(p[u][i]\)表示\(u\)号人血量为\(i\)的概率 每次攻击的时候,讨论一下击中不击中即可转移 是\(O(Qm^2)\)的 现在考虑一下结界 如果我们设\(f[u][i]\)表示除了\(u\)还存活\(i\)个人的概率 那么 \[ans[u] = (1 - p[u][0]) \sum\limits_{i = 0}^{k - 1} \frac{f[u][i]}{i + 1}\] 所以我们只需计算\(f[u][…
考场上以为CTSC的概率期望题都不可做,连暴力都没写直接爆零. 结果出来发现全场70以上,大部分AC,少于70的好像极少,感觉血亏. 设a[i][j]表示到当前为止第i个人的血量为j的概率(注意特判血量为0的情况).那么a[i][0]则为这个人的死亡率. 设dp[i]表示当前指定集合中,有i个人存活的概率. 可以发现a[][]和是可以推导出dp[]的,直接DP可以得到70分.同时发现dp[]存在逆变换,所以复杂度就可以通过了. 但是如果写丑了还是会被卡掉,优化方法可以加快读,减少取模次数,以及预…
题目大意 有\(n\)(\(n\leq200\))个非负整数\(m_1,m_2,...,m_n\)(\(\forall i\in[1,n],m_i\leq100\)),有\(q\)(\(q\leq2*10^5\))个操作,每个操作是以下两种之一: (1)给出位置\(x\),概率\(q\),若\(m_x\)大于0,则有\(q\)的概率将\(m_x\)减一:若\(m_x\)为0,则不进行任何操作 (2)给出一个数\(k\)和\(k\)个不重复的位置\(d_1,d_2,...d_k\),在\(m_{d…
传送门 \(Q \leq 200000 , C \leq 1000 , m_i \leq 100\)-- 先考虑如何维护最后一次操作时所有人的血量期望.不难发现我们需要的复杂度是\(O(Qm_i)\)的,所以不难想到一个Easy的DP:设\(f_{i,j}\)表示当前操作结束后第\(i\)个人血量为\(j\)的概率,转移考虑技能是否命中. 然后考虑结界的释放.注意到结界是否释放到每一个人只和TA和其他人是否存活有关,而和血量无关.所以考虑枚举每一个人,在TA存活的前提下再设一个DP:\(g_{i…
题目传送门 题意: 有 \(n\) 个怪物,第 \(i\) 个怪物初始血量为 \(m_i\).有 \(Q\) 次操作: 0 x u v,有 \(p=\frac{u}{v}\) 的概率令 \(m_x\) 减 \(1\),另外 \(1-p\) 的概率啥也不干.如果 \(m_x=0\),那么这个操作无效. 1 k x[1] x[2] ... x[k],在 \(x_1,x_2,\dots,x_k\) 这 \(k\) 个怪物中的血量不为 \(0\) 的怪物中,随机选择一个怪物.问对于 \(i=1,2,\d…
BZOJ 1064: [Noi2008]假面舞会 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1655  Solved: 798[Submit][Status][Discuss] Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢的面具.每个面具都有一个编号,主办方会把此编号告诉拿该面具的人.为了使舞会更有神秘感,主办方把面具分为…
HNOI2018省队集训 Day 1 流水账 T1 tree 换根+求\(lca\)+求子树和,一脸bzoj3083遥远的国度的既视感.子树和讨论一下就好了,\(lca\)?也是大力讨论一波. 先写了个线段树标记永久化,一发过了小样例,然后大样例...没几组询问就\(WA\)了.写了个暴力,每次输出求出来的\(lca\)(我怎么这么机智啊),发现\(WA\)了,然后就对着自己的大力讨论大力魔改.大概是\(10:00\)的时候大样例终于过了,没写拍(因为不会写\(win\)下的拍qaq). T2…
(总计:共66题) 4.18~4.25:19题 4.26~5.2:17题 5.3~5.9: 6题 5.10~5.16: 6题 5.17~5.23: 9题 5.24~5.30: 9题 4.18 [BZOJ3786]星系探索(伪ETT) [BZOJ4337][BJOI2015]树的同构(树的最小表示法) [BZOJ3551][ONTAK2010]Peaks(加强版)(Kruskal重构树,主席树) [CTSC2017]游戏(Bayes定理,线段树) 4.19 [CTSC2017]吉夫特(Lucas定…
[THUPC2018]城市地铁规划 (日常讲题之前 YY--) 一眼出 \(O(n^3+nk)\) 做法. \(dp[i][j]\) 表示前 \(i\) 个点,前 \(i\) 个点度数和为 \(j\) 的最小值. \[dp[i][j]=\min\limits_{1\le k\le n-1}(dp[i-1][j-k]+f(k))\] 答案是 \(dp[n][2n-2]\). 我把它优化到了 \(O(n^2\sqrt{n})\),然后就自闭了. (讲题之后--) 换成 prufer 序列,也就是前…
题目链接 loj#2552. 「CTSC2018」假面 题解 本题严谨的证明了我菜的本质 对于砍人的操作好做找龙哥就好了,blood很少,每次暴力维护一下 对于操作1 设\(a_i\)为第i个人存活的概率,\(d_i\)为死掉的概率,\(g_{i,j}\)是除i以外活了j个人的概率 那个选中i人的答案就是 \[a_i\times\sum_{j = 0} ^{k - 1}\frac{g_{i,j}}{j + 1}\] 对于\(g_{i,j}\) ,设\(f_{i,j}\)表示前\(i\)个人有\(…
此题,回想Sunshinezff学长给我们出的模拟题,原题啊有木有!!此处吐槽Sunshinezff爷出题不人道!! 不过也感谢Sunshinezff学长的帮助,我才能做出来.. 1064: [Noi2008]假面舞会 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1262 Solved: 624 [Submit][Status][Discuss] Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都…
Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢的面具.每个面具都有一个编号,主办方会把此编号告诉拿该面具的人.为了使舞会更有神秘感,主办方把面具分为k (k≥3)类,并使用特殊的技术将每个面具的编号标在了面具上,只有戴第i 类面具的人才能看到戴第i+1 类面具的人的编号,戴第k 类面具的人能看到戴第1 类面具的人的编号. 参加舞会的人并不知道有多少类面具,但是栋栋对此却特别好奇…
http://www.lydsy.com/JudgeOnline/problem.php?id=1064 表示想到某一种情况就不敢写下去了.... 就是找环的gcd...好可怕.. 于是膜拜了题解.. 和我想的差不多.. 首先发现这3种情况: 1.单链或者几条单链任意两条只相交于连续的一段的单链块.则最大的答案是$\sum |单链| + \sum |单链块种最长的链|$,最小答案是3. 2.环.环的长度是最大答案的倍数,因此我们取gcd,也可以看做是标号差(第一次访问和第二次访问的标号差). 3…
题目 有\(n\)个敌方单位,初始生命值分别为\(m_1,\cdots,m_n\) : 假面可以释放\(Q\)个技能: $op = 0  ,  id , u , v $ 表示对\(id\)号敌人有\(\frac{u}{v}\)的概率造成\(1\)点伤害: $op = 1  ,  k  ,  a_1,\cdots a_k $ 表示在这些位置中生命值为正的位置里随机选择一个位置释放结界: 你需要对每个\(op=1\),输出\(a_1,\cdots, \ a_k\)中结界的期望(\(op=1\)操作最…
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1064 给一个有向图染色,每个点的后继必须相同,问至少&至多有多少种染色方案 sol:  图由多个联通块组成,对于每个联通块,考虑以下3种情况: 如果有环,分为3类讨论 对于第一种简单环,答案一定是环长的约数 对于第二种有反向边的环,答案一定是两条链长差的约数 trick:将有向边化为无向边,正向边权为1,反向为-1 这样1,2可以一起做 对于第三种大环套小环,将小环缩点即可(gcd(a,b)…
http://www.lydsy.com/JudgeOnline/problem.php?id=1064 思路:第一眼看的时候以为是差分约束,但是是做不了的,不过能保证的就是这题绝对是图论题...(废话) 分联通块考虑,如果每个联通块都是没有有向环的话,那么各个联通块中,最长链就是最大答案,3就是最小答案. 只要有一个联通块有环,那么答案一定是这个环长度的因数,最大答案,就是这些环长度的gcd 不过,要是有这个非正常的环怎么办? 我们可以看到,4->3和2->3都指向了3,这怎么办?那么我们只…
有两种情况需要考虑 1.链:可以发现对最终的k没有影响 2.环:如果是真环(即1->2->3->4->1),可以看出所有可行解一定是该环的因数 假环呢??(1->2->3->4,1->5->4),可行解便是两条路的差值的因数 So??对于每条边,正建1,反建-1,dfs,每出一个环,就计算gcd 没有环呢??最小是3,最大是所有链加和喽 #include<cstdio> #include<iostream> #include&l…
题意 题目链接 Sol 多年以后,我终于把这题的暴力打出来了qwq 好感动啊.. 刚开始的时候想的是: 设\(f[i][j]\)表示第\(i\)轮, 第\(j\)个人血量的期望值 转移的时候若要淦这个人,那么\(f[i][j] = (f[i - 1][j] + 1) * p + (f[i - 1][j]) * (1 - p)\) 然后发现自己傻逼了..因为期望不能正着推. 考虑直接推概率,设\(t[k][i][j]\)表示第\(k\)轮,第\(i\)个人,血量为\(j\)的概率 这玩意儿是可以转…