标签:mes std iostream panel div -- bitset 统一 while
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <bitset> using namespace std; const int maxn = 1005; bitset<maxn> a[maxn]; int main() { int t; scanf("%d", &t); for(int cnt=1; cnt<=t; cnt++){ int n; scanf("%d", &n); for(int i=0; i<n; i++){ a[i].reset(); //这里记得初始化 a[i][i] = 1; //自己到自己是联通的 } for(int i=0; i<n; i++){ int k; scanf("%d", &k); while(k--){ int x; scanf("%d", &x); a[i][--x] = 1;//我们的下标统一从0开始,所以 --x } } for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ if(a[j][i]) a[j] |= a[i]; //i能到达的j也能到达 } } double ans = 0; int tot = 0; for(int i=0; i<n; i++){ tot = 0; for(int j=0; j<n; j++){ if(a[j][i]) tot ++;//求方案数 } ans += 1.0/tot; //更新期望值 } printf("Case #%d: %.5lf\n", cnt, ans); } return 0; }
标签:mes std iostream panel div -- bitset 统一 while
原文地址:https://www.cnblogs.com/hzoi-poozhai/p/12681300.html