最新要闻
- 焦点日报:肾脏衰竭 球王贝利病情继续恶化:家人开始筹备葬礼
- 当前头条:喜提安卓13!小米平板5/Pro 12.4推送MIUI 14开发版:支持光子引擎
- 每日热文:SSD/内存白菜价难持续:国产厂商被制裁 三星等大厂减产提价
- AMD RX7900被吐槽空气卡 溢价千元普遍:国内用户持币等 买它还是4080?
- 【世界播资讯】小米又一爆款诞生!小米净水器销量破500万台
- 热推荐:新冠后丧失嗅觉的关键原因找到了 科学家:长期失灵也能恢复
- 环球通讯!3199元起 爱奇艺奇遇MIX VR一体机发布:4K级3000吋巨幕 支持Steam串流
- 焦点快播:趁早加满!下轮国内油价上调几成定局
- 影驰发布全球第三款8GHz DDR5内存:如此"光污染" 绝了
- 焦点速讯:电解质水到底有没有用?我来告诉你
- 美国人预期寿命降至25年来最低:三大因素导致一半的死亡
- 11月智能手机销量出炉:小米大卖340万台 国产第一
- 今日最新!东京奥运会陷入丑闻:审计人员发现实际成本高出20%
- 经典大富翁游戏《富甲天下3》登陆Steam 2023年1月9日发售
- 全球速看:美国“毅力号”在火星上丢了个东西:意义重大
- 微软:这四款游戏大作被索尼永久禁止登陆Xbox平台
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
最新快讯!Codeforces 1097 G Vladislav and a Great Legend 题解 (DP)
(资料图片)
题目链接
思路
首先看到这种求\(x^k\)形式的,直接无脑转下降幂:\(x^k=\sum_{i=1}^k S2(k,i)\cdot x^{\underline{i}}\),其中\(S2\)表示第二类斯特林数,\(x^{\underline i}\)表示\(x\cdot(x-1)\cdots(x-i+1)\)。这是一个恒等式。
这题由于\(k\le 200\),所以可以直接\(O(k^2)\)暴力求出斯特林数。假设现在已经确定了点集\(s\),要求\(f_s\)。由于\(x^{\underline i}=\binom xi \cdot i!\),所以只要对所有\(1\le i\le k\),求出在点集\(s\)构成的虚树中选\(i\)条边的方案数就可以了。考虑对所有的点集\(s\)一起计算答案,我们希望能求出一个数组\(g_i\)表示在树上选择一个大小为\(i\)的边集,并再选一个点集使得这个点集构成的虚树包含边集中的所有边的方案数。算出\(g\)之后就能直接用斯特林数求答案了。
假设现在已经选好了边集,什么样的点集构成的虚树才能包含里面所有的边?每条边都是有两个端点的,一个深度大一个深度小,把深度小的称为上节点,另一个称为下节点。首先找出边集内所有满足"下节点的子树内没有任何被选择的边"的这些边,它们的下节点的子树内(包括下节点本身)必须有至少一个点被选(条件1)。然后再看存不存在一条被选的边满足所有其他被选边都在它的下节点的子树内,如果存在,它的下节点子树外必须有至少一个点被选(条件2)。发现这两个条件合起来就是充要的。到这里应该都不难想。
然后就可以\(dp\)了,\(dp_{i,j}\)表示在点\(i\)的子树中,所有点的父边(包括i)一共有\(j\)条边被选,且选的点集满足条件1的方案数。转移的时候是对所有的儿子做一个背包。\(dp\)的总复杂度看似是\(O(nk^2)\)的,其实是\(O(nk)\)的,这题的重点就是知道这个方法复杂度是对的并且敢写。复杂度证明后面会说。统计答案的话,按照条件2中的那种边存不存在分两种情况讨论,dp的时候对每个节点顺便统计一下即可。
重点:复杂度证明
官方题解写得很不负责,直接就说跟那种两个节点只在LCA处贡献复杂度的证明方式类似,其实根本不一样。
我们要证明的就是总计算量是\(O(nk)\)级别的。首先把树的形态改造一下,容易发现改造之后每个点都只有最多两个儿子,且树中最多有\(2n\)个节点,且对这个树dp的计算量不比之前少,所以对改造之后的树证明复杂度即可。
首先对于任意一个节点做背包的计算量是\(min(k,size(ls))\cdot min(k,size(rs))\)。把节点分成两类,证明这两类节点的总计算量都是\(O(nk)\):
- 有任意一个儿子的子树大小达到k的。令\(p=min(k,size(ls),size(rs))\),则这个点的计算量为\(kp\)。我们做dp是在树中从下往上计算的,处理完这个节点后,上面再用到这个节点的子树大小贡献复杂度时,也只会贡献\(min(k,k+p)=k\),相当于有\(p\)的大小"消失"了,被消耗掉了。并且发现每一个点贡献的大小只能被消耗一次。所以这部分的总计算量是\(O(nk)\)。
- 其余节点。发现有任意一个儿子的子树大小达到k的节点其实构成了树上包含根的一个连通块,而其余节点是挂在连通块下面的一些子树。把每个这种子树分别拿出来计算复杂度,对于任意一个子树,其中的两个点只会在LCA处贡献复杂度,所以子树内部计算量最多\(size^2\)。而所有子树的\((\sum size)\le n\),且所有这种子树的\(size\)都是\(O(k)\)级别的(因为子树根的两个儿子大小都达不到k)。所以总计算量仍然是\(O(nk)\)。证毕。
这题的总复杂度也就是\(O(nk)\)。
点击查看代码
#include #define rep(i,n) for(int i=0;i#define fi first#define se second#define mpr make_pair#define pb push_backvoid fileio(){ #ifdef LGS freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif}void termin(){ #ifdef LGS std::cout<<"\n\nEXECUTION TERMINATED"; #endif exit(0);}using namespace std;const LL MOD=1e9+7;LL qpow(LL x,LL a){LL res=x,ret=1;while(a>0){if(a&1) (ret*=res)%=MOD;a>>=1;(res*=res)%=MOD;}return ret;}int dp[100010][210],dp2[100010][210][3];LL n,t,sz[100010],pw2[100010],f[100010],s2[210][210];vector g[100010];void dfs(LL pos,LL par){ sz[pos]=1; vector son; rep(i,g[pos].size()) if(g[pos][i]!=par) { dfs(g[pos][i],pos); sz[pos]+=sz[g[pos][i]]; son.pb(g[pos][i]); } rep(i,son.size()+3) rep(j,t+3) rep(k,3) dp2[i][j][k]=0; dp2[0][0][0]=1; LL cursum=0; rep(i,son.size()) { rep(j,min(cursum+1,t+1)) rep(k,3) if(dp2[i][j][k]) { (dp2[i+1][j][k]+=(LL)dp2[i][j][k]*pw2[sz[son[i]]]%MOD)%=MOD; repn(p,min(sz[son[i]],t)) { if(j+p>t) break; (dp2[i+1][j+p][min(2,k+1)]+=(LL)dp2[i][j][k]*dp[son[i]][p]%MOD)%=MOD; } } cursum+=sz[son[i]]; } repn(i,t) dp[pos][i]=(dp2[son.size()][i][1]+dp2[son.size()][i][2])%MOD; repn(i,t) (dp[pos][i]*=2LL)%=MOD; repn(i,t-1) { LL val=(LL)dp[pos][i]*(pw2[n-sz[pos]]-1+MOD); (f[i+1]+=val)%=MOD; } for(int i=2;i<=t;++i) (f[i]+=(LL)dp2[son.size()][i][2]*pw2[n-sz[pos]]%MOD*2)%=MOD; for(int i=t-1;i>0;--i) (dp[pos][i+1]+=dp[pos][i])%=MOD; (dp[pos][1]+=(pw2[sz[pos]]-1+MOD)%MOD)%=MOD; (f[1]+=(pw2[sz[pos]]-1+MOD)*(pw2[n-sz[pos]]-1+MOD))%=MOD;}int main(){ fileio(); pw2[0]=1;repn(i,100005) pw2[i]=pw2[i-1]*2%MOD; cin>>n>>t; LL x,y; rep(i,n-1) { scanf("%lld%lld",&x,&y); g[x].pb(y);g[y].pb(x); } dfs(1,0); s2[1][1]=1; for(int i=2;i<=t;++i) { s2[i][1]=s2[i][i]=1; for(int j=2;j
114行的臭代码(恼
关键词: 知道这个
-
最新快讯!Codeforces 1097 G Vladislav and a Great Legend 题解 (DP)
题目链接思路首先看到这种求$x^k$形式的,直接无脑转下降幂:$x^k= sum_{i=1}^kS2(k,i) cdotx^{ ...
来源: 最新快讯!Codeforces 1097 G Vladislav and a Great Legend 题解 (DP)
焦点日报:肾脏衰竭 球王贝利病情继续恶化:家人开始筹备葬礼
02.关于线程你必须知道的8个问题(上)
当前头条:喜提安卓13!小米平板5/Pro 12.4推送MIUI 14开发版:支持光子引擎
每日热文:SSD/内存白菜价难持续:国产厂商被制裁 三星等大厂减产提价
天天热点!我的2022年个人总结
环球焦点!FreeSWITCH学习笔记:EventSocket
AMD RX7900被吐槽空气卡 溢价千元普遍:国内用户持币等 买它还是4080?
【世界播资讯】小米又一爆款诞生!小米净水器销量破500万台
热推荐:新冠后丧失嗅觉的关键原因找到了 科学家:长期失灵也能恢复
环球通讯!3199元起 爱奇艺奇遇MIX VR一体机发布:4K级3000吋巨幕 支持Steam串流
焦点快播:趁早加满!下轮国内油价上调几成定局
影驰发布全球第三款8GHz DDR5内存:如此"光污染" 绝了
焦点速讯:电解质水到底有没有用?我来告诉你
美国人预期寿命降至25年来最低:三大因素导致一半的死亡
11月智能手机销量出炉:小米大卖340万台 国产第一
天天短讯!多方安全计算(6):MPC中场梳理
云原生时代,18 岁的 NGINX 过时了吗?
AcWing1131. 拯救大兵瑞恩
今日最新!东京奥运会陷入丑闻:审计人员发现实际成本高出20%
经典大富翁游戏《富甲天下3》登陆Steam 2023年1月9日发售
全球新资讯:Apache Log4j 远程代码执行漏洞(CVE-2021-44228、CVE-2021-45046)修复方案
全球速看:美国“毅力号”在火星上丢了个东西:意义重大
微动态丨vue3的setup函数的使用
微软:这四款游戏大作被索尼永久禁止登陆Xbox平台
天天看热讯:本田底气十足 全新一代皓影上市:18.59万元起
一个比一个经典!卡梅隆电影角色人气排名:终结者T-800第一
教你用JavaScript实现进度条
世界消息!Sentinel
【天天快播报】知名游戏在美区遭和谐:美女角色太性感
【天天速看料】千元档亮度天花板!哈趣K1 Pro投影仪评测:真1080P分辨率白天也清晰
猫是牛顿流体 还是非牛顿流体?中科院严肃科普
这也可以?20万法国人请愿重踢世界杯决赛 阿根廷赢的不光彩
AMD RX 7900 XT破发:10天便宜快400块
今日要闻!Shell脚本4
风暴袭击!美国多个州宣布进入紧急状态 道路能见度可能为零
快资讯:感受彼此体温 杰士邦超薄尊享30只礼盒装19.9元
世界资讯:乘联会喊话:千方百计增加居民收入 大家踊跃买汽车稳消费
【新要闻】【验证码逆向专栏】某验三代滑块验证码逆向分析
短讯!安全多方计算(5):隐私集合求交方案汇总分析
天天观速讯丨论文解读()《Detect Rumors in Microblog Posts for Low-Resource Domains via Adver
每日讯息!GitHub实用开源项目
环球报道:韩国载有216人客机飞行中出现异常:靠一台发动机平安降落
天天热文:特斯拉股价年内大跌60%!最大空头:明年可能会更惨
每日动态!还差14亿刀回本!《阿凡达2》全球票房破6亿美元 说中国影迷不感兴趣尚早
TCL华星13.3英寸定制全隐私屏研发成功!全屏防窥、防窃听
今日看点:二次伤害猛于虎 事故后驾驶员留在现场:半小时后被撞身亡
世界热议:上干货 | 园区智慧物联管理解决方案
Shell脚本3
全球信息:国产CPU力挺国产OS!x86兆芯加入deepin深度社区
焦点速讯:《炉石传说》国服停运倒计时!官方补偿来了:10个卡包你领吗?
车门都不给配 新款雪铁龙My ami Buggy官图发布:年满14就能开
全球热文:有了AMD RX7900、4090深受市场青睐:RTX 4080还一无是处?
比亚迪仰望来了!首发极具颠覆性技术
微头条丨AcWing341. 洛谷P1073, NOIP2009 最优贸易
百事通!面向对象与面向过程
全球速递!Flex布局总结
马斯克给全球车主发福利:每人可“白嫖”30天免费EAP试用服务
阵容十分豪华 2023最受期待的十大游戏来了:暗黑4位列第三
首发天玑8100:荣耀平板V8 Pro带来超级笔记 自动去广告
起点读书宣布百部经典作品限时免费:包括《诛仙》《红楼梦》等
世界热点!男子修车时发现4S店虚报维修定损金额 要求退一赔三胜诉
Codeforces 1630 E Expected Components 题解 (组合数学)
头条:Java基础项目:超市管理项目
每日动态!2023春运车票24日开售 除夕车票要等到1月7日
《妮姬》首月收入突破6.9亿!腾讯海外收入占比提升达12.5%
今日热门!超越电竞机!Redmi K60要榨干第二代骁龙8:画质、帧率、亮度三不降
每日精选:效果堪比镀铬 2.2万元的特斯拉Model Y新配色值不值?
环球观察:高可用 Canal集群 实操( 秒懂 + 史上最全)
微头条丨认证管理(锐捷业软篇)
Intel拆分GPU部门 一把手重回技术岗 累计亏损超20亿美金
天天通讯!iPhone 14 Pro爆出“闪线门” :屏幕出现诡异的绿色和黄色细横线
全球热点评!当ChatGPT遇上弱智吧:全程爆笑
夫妻的世界翻拍哪部电视剧?夫妻的世界最后结局是什么意思?
滕王阁为什么叫阁不叫楼?滕王阁为什么是三大名楼之首?
情非情砸车是第几集?情非情盖总和保姆的结局是什么?
小昭去波斯是哪一集?小昭去波斯后她母亲去哪儿了?
男人是大猪蹄子是什么意思?男人是大猪蹄子女人是什么?
排序算法模板(更新中)
当前速读:机器学习——果蔬分类
每日消息!性能超越电竞手机!Redmi K60 Pro综合跑分达135万
信息:千万别强忍 20岁小伙憋气压抑咳嗽导致昏厥
特斯拉今年股价累计暴跌超60%!马斯克透露大跌原因
收购动视暴雪遇阻 微软哭弱:根本打不过索尼、任天堂
到手9袋!良品铺子坚果礼盒1440 仅44元包邮
每日讯息!教你用JavaScript实现背景图像滑动
户外运动有哪些项目?户外运动品牌排行榜
什么鱼营养价值最高?什么鱼只会逆流而上?
金木水火土命怎么算出来的?金木水火土哪个腿长?
玉面小飞龙是什么意思?玉面小飞龙出自哪里?
Redmi K60系列上架:三颗口碑最好的芯片都拿到了 12月27日发
每日聚焦:最快闪充旗舰!真我GT Neo5充电头曝光:支持240W充电
环球热讯:紫米裁员80%并入小米?官方澄清:ZMI品牌将继续存在
全球新资讯:9.99万元遭疯抢 五菱宏光MINI EV敞篷版下线:能跑280km
苯胺皮是什么皮?苯胺皮和纳帕皮有什么区别?
世界新动态:CloudCanal实战-五分钟搞定Oracle到StarRocks数据迁移与同步
(一)elasticsearch 编译和启动
【速看料】马斯克辞任CEO,产品经理如何用项目协作软件武装自己?
焦点速讯:字节鏖战美团的关键一役
重点聚焦!糗事百科宣布将关闭服务 自侃“享年17岁”