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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU 6836 Expectation(矩阵生成树 + 期望)

發布時間:2023/12/4 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 6836 Expectation(矩阵生成树 + 期望) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Expectation

思路

題目要求每個生成樹邊權&\&&的期望值,假設當前這顆生成樹對二進制數的第iii位有貢獻,則這個位上的構成生成樹的邊權值一定是111,所以我們可以跑313131位二進制數的,矩陣樹,每個位上的貢獻度等于,這個位上的生成樹數量乘以這個位上的2次冪,最后再跑一邊生成樹計數,然后即可求得期望。

代碼

/*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h>#define mp make_pair #define pb push_back #define endl '\n' #define mid (l + r >> 1) #define lson rt << 1, l, mid #define rson rt << 1 | 1, mid + 1, r #define ls rt << 1 #define rs rt << 1 | 1using namespace std;typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii;const double pi = acos(-1.0); const double eps = 1e-7; const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-') f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x; }ll A[110][110];const int mod = 998244353;ll quick_pow(ll a, ll n, ll mod) {ll ans = 1;while(n) {if(n & 1) ans = ans * a % mod;a = a * a % mod;n >>= 1;}return ans; }ll inv(ll a) {return quick_pow(a, mod - 2, mod); }ll gauss(int n){ll ans = 1;for(int i = 1; i <= n; i++){for(int j = i; j <= n; j++) {if(A[j][i]){for(int k = i; k <= n; k++) swap(A[i][k], A[j][k]);if(i != j) ans = -ans;break;}}if(!A[i][i]) return 0;for(ll j = i + 1, iv = inv(A[i][i]); j <= n; j++) {ll t = A[j][i] * iv % mod;for(int k = i; k <= n; k++)A[j][k] = (A[j][k] - t * A[i][k] % mod + mod) % mod;}ans = (ans * A[i][i] % mod + mod) % mod;}return ans; }void add(int x, int y, int w) {(A[x][y] -= w) %= mod;(A[y][y] += w) %= mod; }const int N = 1e4 + 10;int x[N], y[N], w[N], n, m;int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int T = read();while(T--) {n = read(), m = read();for(int i = 1; i <= m; i++) {x[i] = read(), y[i] = read(), w[i] = read();}ll ans = 0;for(int i = 0; i <= 30; i++) {memset(A, 0, sizeof A);for(int j = 1; j <= m; j++) {add(x[j], y[j], w[j] >> i & 1);add(y[j], x[j], w[j] >> i & 1);}ans = (ans + (gauss(n - 1) * (1 << i) % mod)) % mod;}memset(A, 0, sizeof A);for(int j = 1; j <= m; j++) {add(x[j], y[j], 1);add(y[j], x[j], 1);}ans = ans * inv(gauss(n - 1)) % mod;printf("%lld\n", (ans % mod + mod) % mod);}return 0; }

總結

以上是生活随笔為你收集整理的HDU 6836 Expectation(矩阵生成树 + 期望)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美mv日韩mv国产网站 | 成人深夜在线 | 久久视频在线免费观看 | 亚洲自拍偷拍一区二区 | 大奶子情人 | 强行无套内谢大学生初次 | 国产一区免费观看 | 玖玖在线播放 | 亚洲一区中文字幕 | 欧美成人免费高清视频 | 亚洲成人第一页 | 伊人久久综合 | 91丝袜美腿 | 亚洲色图狠狠干 | 韩日欧美| 成人毛片一区二区三区 | 日韩精品视频一区二区三区 | 草草网址 | 成人爽a毛片一区二区免费 日本高清免费看 | 人妻一区二区三区在线 | 污污的视频在线免费观看 | 日韩毛毛片 | 夜夜天天干 | 99国产精品国产免费观看 | 一区二区视频观看 | 国产视频三级 | 久久五 | 天天摸天天舔天天操 | 亚洲国产精品综合 | 熟妇人妻无乱码中文字幕真矢织江 | 国产精品调教 | 日本伦理在线 | 色四月婷婷 | 欧美天天搞 | 亚洲涩情| 国产精品欧美亚洲 | 免费性爱视频 | 久久亚洲国产精品 | 五月婷婷社区 | 精品在线小视频 | 青青草精品在线 | 国精无码欧精品亚洲一区蜜桃 | 欧美精品videos | 日本精品视频在线观看 | 国产精品亚洲精品 | 另类捆绑调教少妇 | 欧美aⅴ在线观看 | 第一宅男av导航入口 | 男同激情视频 | 午夜在线视频观看 | 人妻在线一区二区 | 欧美一级性视频 | 国产又粗又长又黄的视频 | 精品久久久一区二区 | 射射射综合网 | 你懂的国产视频 | 日本va在线| 国产欧美日韩中文字幕 | 人人妻人人澡人人爽精品日本 | 91在线视频免费 | 我的公把我弄高潮了视频 | 久久影库 | 国产亚洲精品成人无码精品网站 | 成人av片在线观看 | 伊人久久激情 | 老司机午夜免费福利 | www.亚洲精品 | 欧美乱轮 | 波多野结衣视频网站 | 天天操天天添 | 动漫女被黄漫免费视频 | 69国产精品 | 日本xxxx免费| www.久久成人 | 亚洲国产成人精品91久久久 | 女人叫床很黄很污句子 | 麻豆短视频 | 欧美激情中文字幕 | 亚洲精品在线网站 | 九九九九九精品 | 亚洲国产一区二区在线 | 在线观看日韩一区二区 | 日本美女黄网站 | 欧美性受xxxx黑人猛交88 | 久草精品视频在线观看 | 看毛片的网址 | 国产精品入口久久 | 99久久精品国产色欲 | 超碰碰碰碰 | 国产在线视频一区 | 欧美性做爰毛片 | 大黑人交交护士xxxxhd | 最近中文字幕一区二区 | 欧美做爰全过程免费观看 | 少妇精品一区 | 国产理论一区 | 亚洲伦理在线观看 | 久精品免费视频 | 国产黄色一区二区 |