int n,f[N],siz[N],cas; set <int> G1[N],G2[N]; intfind(int x){ return f[x] == x ? x : f[x] = find(f[x]); }
voiddfs(int u,int v){ int fx = find(u),fy = find(v); if (fx == fy) return ; if (G2[fx].size() > G2[fy].size()) swap(fx,fy); vector <pii> edg; for (auto y : G2[fx]) { G2[fy].insert(y); G1[y].erase(fx); G1[y].insert(fy); if (G1[y].size() == 1) edg.push_back(mp(fy,y)); } f[fx] = fy; siz[fy] += siz[fx]; for (auto p : edg){ dfs(p.first,p.second); } }
voidsolve(){ read(n);++cas; for (int i = 1;i <= n;++i) G1[i].clear(),G2[i].clear(),f[i] = i,siz[i] = 1; for (int i = 1;i <= n;++i) { int k;read(k); for (int j = 1;j <= k;++j) { int y;read(y); G1[i].insert(y);G2[y].insert(i); } } for (int i = 1;i <= n;++i) { if (G1[i].size() == 1) { dfs(i,*G1[i].begin()); } } int ans = 0; for (int i = 1;i <= n;++i) ans = max(ans,siz[i]); printf("Case #%d: %d\n",cas,ans); }
signedmain(){ int T;read(T); while (T--) solve(); return0; }
//Every night that summer just to seal my fate //And I scream, "For whatever it's worth //I love you, ain't that the worst thing you ever heard?" #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cctype> #include<vector> #include<cmath> #include<queue> usingnamespace std; #define ll long long #define FO(x) {freopen(#x".in","r",stdin);freopen(#x".out","w",stdout);} #define pii pair<int,int> #define mp make_pair
char buf[1 << 20], *p1, *p2; #define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 20, stdin), p1 == p2)?EOF: *p1++) template <typename T> inlinevoidread(T &t){ int v = getchar();T f = 1;t = 0; while (!isdigit(v)) {if (v == '-')f = -1;v = getchar();} while (isdigit(v)) {t = t * 10 + v - 48;v = getchar();} t *= f; } template <typename T,typename... Args> inlinevoidread(T &t,Args&... args){ read(t);read(args...); }
constdouble eps = 1e-7; constint N = 2e5 + 10; int n,m; int b[N],d[N]; double a[N],c[N];
//Every night that summer just to seal my fate //And I scream, "For whatever it's worth //I love you, ain't that the worst thing you ever heard?" #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cctype> #include<vector> #include<cmath> #include<queue> usingnamespace std; #define ll long long #define FO(x) {freopen(#x".in","r",stdin);freopen(#x".out","w",stdout);} #define pii pair<int,int> #define mp make_pair
char buf[1 << 20], *p1, *p2; #define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 20, stdin), p1 == p2)?EOF: *p1++) template <typename T> inlinevoidread(T &t){ int v = getchar();T f = 1;t = 0; while (!isdigit(v)) {if (v == '-')f = -1;v = getchar();} while (isdigit(v)) {t = t * 10 + v - 48;v = getchar();} t *= f; } template <typename T,typename... Args> inlinevoidread(T &t,Args&... args){ read(t);read(args...); }
constint N = 1e4 + 10;
int f[2][N],n,m,ans;
signedmain(){ read(n,m); int now = 1,lst = 0; ans = n + 1;f[0][1] = 1; for (int i = 1;i <= n;++i) { swap(now,lst); for (int j = 1;j <= m;++j) f[now][j] = f[lst][j]; int l;read(l); for (int j = 1;j <= l;++j) { int x,y;read(x,y); f[now][y] = max(f[now][y],f[lst][x]); if (x == 1) f[now][y] = i; } if (f[now][m]) ans = min(ans,i - f[now][m] + 1); } if (ans == n+1) puts("-1"); elseprintf("%d\n",ans); return0; }
//Every night that summer just to seal my fate //And I scream, "For whatever it's worth //I love you, ain't that the worst thing you ever heard?" #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cctype> #include<vector> #include<cmath> #include<queue> usingnamespace std; #define ll long long #define FO(x) {freopen(#x".in","r",stdin);freopen(#x".out","w",stdout);} #define pii pair<int,int> #define mp make_pair
char buf[1 << 20], *p1, *p2; #define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 20, stdin), p1 == p2)?EOF: *p1++) template <typename T> inlinevoidread(T &t){ int v = getchar();T f = 1;t = 0; while (!isdigit(v)) {if (v == '-')f = -1;v = getchar();} while (isdigit(v)) {t = t * 10 + v - 48;v = getchar();} t *= f; } template <typename T,typename... Args> inlinevoidread(T &t,Args&... args){ read(t);read(args...); }
constint N = 2e5 + 10;
int n,m,k,a[N],b[N],pre[N],suf[N],sufmax[N]; vector <int> c;
signedmain(){ read(n,m,k); for (int i = 1;i <= n;++i) read(a[i],b[i]),c.push_back(a[i]),c.push_back(b[i]),c.push_back(a[i]-1),c.push_back(b[i]-1); c.push_back(1); sort(c.begin(),c.end()); c.erase(unique(c.begin(),c.end()),c.end()); int tot = c.size(); for (int i = 1;i <= n;++i) { int l = lower_bound(c.begin(),c.end(),a[i]-1) - c.begin() + 1; int r = lower_bound(c.begin(),c.end(),b[i]-1) - c.begin() + 1; if (l < r) pre[l]--,pre[r]++; else suf[l]++,suf[r]--; } int now = 0; int ans = 0; for (int i = tot - 1;i >= 1;--i) { ans += (c[i] - c[i-1] - 1) * now; pre[i] += pre[i + 1]; suf[i] += suf[i + 1]; now = max(now,(max(pre[i],suf[i]) + m - 1) / m); ans += now; if (c[i-1] == 1) break; } printf("%d\n",2 * ans); return0; }
//Every night that summer just to seal my fate //And I scream, "For whatever it's worth //I love you, ain't that the worst thing you ever heard?" #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cctype> #include<vector> #include<cmath> #include<queue> usingnamespace std; #define ll long long #define FO(x) {freopen(#x".in","r",stdin);freopen(#x".out","w",stdout);} #define pii pair<int,int> #define mp make_pair
char buf[1 << 20], *p1, *p2; #define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 20, stdin), p1 == p2)?EOF: *p1++) template <typename T> inlinevoidread(T &t){ int v = getchar();T f = 1;t = 0; while (!isdigit(v)) {if (v == '-')f = -1;v = getchar();} while (isdigit(v)) {t = t * 10 + v - 48;v = getchar();} t *= f; } template <typename T,typename... Args> inlinevoidread(T &t,Args&... args){ read(t);read(args...); }
constint N = 1e4 + 10; constint M = 55; int n,k,d; double x[N][M],y[N][M],yy[N][M];
signedmain(){ read(n,k,d); for (int i = 1;i <= n;++i) { double sum = 0; for (int j = 1;j <= k;++j) { read(x[i][j]); sum += x[i][j] * x[i][j]; } sum = sqrt(sum); for (int j = 1;j <= k;++j) { x[i][j] /= sum; } } for (int i = 1;i <= n;++i) { for (int j = 1;j <= d;++j) { read(y[i][j]); } } for (int i = 1;i <= k;++i) { for (int j = 1;j <= d;++j) { for (int l = 1;l <= n;++l) { yy[i][j] += x[l][i] * y[l][j]; } } } for (int i = 1;i <= n;++i) { for (int j = 1;j <= d;++j) { double ans = 0; for (int l = 1;l <= k;++l) { ans += x[i][l] * yy[l][j]; } printf("%.10lf ",ans); } puts(""); } return0; }