日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

牛客-乃爱与城市拥挤程度【树形dp】

發(fā)布時間:2023/12/3 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客-乃爱与城市拥挤程度【树形dp】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

正題

題目鏈接:https://ac.nowcoder.com/acm/contest/1100/B


題目大意

nnn個點的一棵樹,對于每個點求

  • 距離該點不超過kkk的點數(shù)
  • 每個點的權(quán)值是以該點為起點長度所有不超過kkk的路徑覆蓋該點的次數(shù),求所有點的乘積

  • 解題思路

    對于第一問我們先考慮在子樹中的,sizx,zsiz_{x,z}sizx,z?表示距離該點不超過zzz的點數(shù),有轉(zhuǎn)移sizx,z=1+∑x?>ysizy,z?1siz_{x,z}=1+\sum_{x->y}siz_{y,z-1}sizx,z?=1+x?>y?sizy,z?1?
    然后那么我們每個點的答案我們就只需要計算xxx的祖宗節(jié)點即可,
    定義xxx的第zzz代祖宗表示為fazfa_zfaz?,有貢獻sizfaz,k?z?sizfaz?1,k?z?1siz_{fa_z,k-z}-siz_{fa_{z-1},k-z-1}sizfaz?,k?z??sizfaz?1?,k?z?1?

    這樣我們就解決了第111問,考慮第222

    依舊先考慮子樹定義mulx,zmul_{x,z}mulx,z?表示距離為zzzxxx點子樹中的值(注意不能計算xxx點,因為xxx的價值還不知道)
    mulx,z=∏x?>y(muly,z?1?sizy,z?1)mul_{x,z}=\prod_{x->y} (mul_{y,z-1}*siz_{y,z-1})mulx,z?=x?>y?(muly,z?1??sizy,z?1?)

    那依舊對于每一個的子樹祖宗,有貢獻mulfaz,k?zmulfaz?1,k?z?1\frac{mul_{fa_z,k-z}}{mul_{fa_{z-1,k-z-1}}}mulfaz?1,k?z?1??mulfaz?,k?z??

    但是該點的值還沒有計算,我們發(fā)現(xiàn)對于該點的值就是它和所有往上的祖宗的sizfaz,k?z+sizfaz?1,k?z?1siz_{fa_z,k-z}+siz_{fa_{z-1},k-z-1}sizfaz?,k?z?+sizfaz?1?,k?z?1?之和,在上一問計算時計入即可。

    時間復(fù)雜度O(nk)O(nk)O(nk)


    codecodecode

    #include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; const ll N=1e5+100,XJQ=1e9+7; struct node{ll to,next; }a[N*2]; ll n,k,tot,ls[N],f[N],g[N],siz[N][15],mul[N][15],fa[N],num[15]; void addl(ll x,ll y) {a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot; } void dfs(ll x) {for(ll j=0;j<=10;j++)siz[x][j]=mul[x][j]=1;for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(y==fa[x]) continue;fa[y]=x;dfs(y);for(ll j=1;j<=10;j++){siz[x][j]+=siz[y][j-1];(mul[x][j]*=mul[y][j-1]*siz[y][j-1]%XJQ)%=XJQ;}} } ll power(ll x,ll b) {ll ans=1;while(b){if(b&1) ans=ans*x%XJQ;x=x*x%XJQ;b>>=1;}return ans; } void dfs2(ll x) {ll now=x,z=k;f[x]=(num[k]=siz[x][k]);while(--z&&fa[now]){f[x]+=siz[fa[now]][z]-siz[now][z-1];num[z]=f[x];now=fa[now];}if(fa[now])f[x]++;now=x;z=k;g[x]=mul[x][k]*f[x]%XJQ;while(--z&&fa[now]){(g[x]*=mul[fa[now]][z]*power(mul[now][z-1]*siz[now][z-1]%XJQ,XJQ-2)%XJQ)%=XJQ;(g[x]*=f[x]-num[z+1])%=XJQ;now=fa[now];}for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(y==fa[x]) continue;dfs2(y);} } int main() {scanf("%lld%lld",&n,&k);for(ll i=1;i<n;i++){ll x,y;scanf("%lld%lld",&x,&y);addl(x,y);addl(y,x);}dfs(1);dfs2(1);for(ll i=1;i<=n;i++)printf("%lld ",f[i]);putchar('\n');for(ll i=1;i<=n;i++)printf("%lld ",g[i]); }

    總結(jié)

    以上是生活随笔為你收集整理的牛客-乃爱与城市拥挤程度【树形dp】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 顶臀精品视频www | 亚洲色图在线观看 | 亚洲一区二区福利 | 欧美做受xxxxxⅹ性视频 | 国产成人三级在线观看视频 | jizzz18| 韩国成人在线 | 国产午夜在线 | 日本理论视频 | 欧美 日韩 精品 | 日本一本一道 | 国精产品99永久一区一区 | 天堂中文在线8 | 欧美亚洲专区 | 欧美成人精品一区二区综合免费 | 二区三区av | 天天操夜夜干 | 人操人人 | 黄色免费视频观看 | 开心激情深爱 | 欧美色图在线播放 | 久久精品无码一区 | 欧美大片大全 | a级在线播放 | 91视频免费播放 | 成人性做爰aaa片免费 | 日韩国产在线观看 | 久草手机在线视频 | 在线日韩免费 | 善良的公与媳hd中文字 | 182av| 国产精品久久国产精麻豆96堂 | 蜜桃av一区二区三区 | 青草操 | 综合色吧 | 5566色 | av色欲无码人妻中文字幕 | 大咪咪av | 亚洲欧美综合一区 | 成年人免费视频网站 | 一区免费在线 | 丝袜熟女一区二区三区 | 黄色三级生活片 | 久久av一区二区三区 | aa成人| 韩日精品视频 | 久操影视 | 韩国一区二区在线播放 | 成人精品黄段子 | 狠狠爱欧美 | 白丝开裆喷水 | 熟女丰满老熟女熟妇 | 天天干天天搞天天射 | 在线免费小视频 | 99热播| 成人午夜小视频 | 青青在线视频观看 | 国产免费激情 | 成人123区 | 久久午夜电影网 | 成人激情视频在线播放 | 亚洲美免无码中文字幕在线 | 91激情在线观看 | 日韩一区中文 | 欧美日韩国产在线一区 | 自拍视频网站 | 日本一区二区久久 | 国产在线一二 | 不卡av一区二区 | 亚洲一区二区三区视频在线 | 亚洲一区二区三区中文字幕 | 无限资源日本好片 | 九九超碰 | 青青草成人网 | 毛片123| 99热6这里只有精品 三级av在线免费观看 | 亚洲一区二区三区中文字幕 | 午夜影院色 | 人人澡人人澡 | 日韩av在线资源 | 国产欧美三区 | 国产精品毛片一区二区在线看舒淇 | 日本午夜影院 | 色人阁婷婷| 天堂在线中文在线 | 精品www久久久久久奶水 | 色哟哟黄色 | 搞黄网站在线观看 | wwwxxx欧美| 99视频久久 | 亚洲国产综合网 | 男女啪动最猛动态图 | 狠狠五月天| 亚洲精品免费在线视频 | 泽村玲子在线 | 欧美情侣性视频 | 国产精品网站入口 | 日本www| 少妇饥渴难耐 |