Bzoj 3498 Cakes(三元环)】的更多相关文章

题目链接 感觉我可能学的假的(复杂度没问题,但是常数巨大). 一个比较真的说明见这儿:https://czyhe.me/blog/algorithm/3-mem-ring/3-mem-ring/. \(Description\) n个点m条边的无向图,每个点有点权.对于任意一个三元环\((i,j,k),i<j<k\),其贡献为\(max\{a_i,a_j,a_k\}\).求所有三元环的贡献和. 一般的三元环计数问题:根据出度是否\(\leq\sqrt m\)将点分为两类. 对于\(dgr[x]…
题面(权限题就不放题面了) 题解 三元环模板题,按题意模拟即可. #include <cstdio> #include <cstring> #include <vector> using std::vector; const int N = 1e5 + 10, M = 2.5e5 + 10; int n, m, a[N], deg[N], u[M], v[M], vis[N], tmp; long long ans; vector<int> to[N]; i…
题目描述 N个点m条边,每个点有一个点权a.对于任意一个三元环(j,j,k)(i<j<k),它的贡献为max(ai,aj,ak) 求所有三元环的贡献和.N<100000,,m<250000. 输入 The first line of the standard input contains two integers  n and m (1<=N<=100000,1<=M<=250000) separated by a single space and deno…
题意 题目链接 Sol 按照套路把边转成无向图,我们采取的策略是从权值大的向权值小的连边 然后从按权值从小到大枚举每个点,再枚举他们连出去的点\(v\) 如果\(v\)的度数\(\leqslant M\),那么就再暴力枚举\(v\)连出去的点\(t\),看\(u\)与\(t\)是否联通(打标记) 否则暴力枚举\(u\)连出去的点\(t\),看\(v\)与\(t\)是否联通(直接hash表) 复杂度为\(O(M \sqrt{M})\) #include<bits/stdc++.h> #defin…
首先引入一个最常见的经典三元环问题. #include <bits/stdc++.h> using namespace std; const int maxn = 100005; vector <int> g[maxn], low, high; map <int, int> mp[maxn]; int n, m, in[maxn], vis[maxn]; int main() { scanf("%d %d", &n,&m); for(…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3498 [题目大意] N个点m条边,每个点有一个点权a. 对于任意一个三元环(j,j,k)其贡献为max(a[i],a[j],a[k]),请你求出贡献值之和. [题解] 我们将无向边转化成从权值大的点指向权值小的点的有向边,按权值从小到大的顺序枚举起始点,枚举相连的点,如果其出度小于sqrt(m),那么枚举与其相连的点,判断是否和起始点相连,否则,枚举起始点相连的点,判断是否和枚举点相…
Description \(n\) 个点 \(m\) 条边,每个点有一个点权 \(a_i\). 对于任意一个三元环 \((i,j,k)(i<j<k)\),它的贡献为 \(\max(a_i,a_j,a_k)\),求所有三元环的贡献和. Input The first line of the standard input contains two integers n and m (1<=N<=100000,1<=M<=250000) separated by a sing…
本题BZOJ权限题,但在bzojch上可以看题面. 题意: N个点m条无向边,每个点有一个点权a. 对于任意一个三元环(i,j,k)(i<j<k),它的贡献为max(ai,aj,ak) 求所有三元环的贡献和. N<100000,m<250000 Solution: 本题裸的三元环计数. 无向图三元环计数的问题大致做法: 统计每个点的度数,对于一条无向边$<u,v>$,若$deg[u]==deg[v]$则从编号小的点向编号大的点连有向边,否则从$deg$较大的向较小的点连…
题目链接 CF 原题 \(Description\) 有n个点,其中有m条边连接两个点.每一个没有连边的三元组\((i,j,k)(i<j<k)\)对答案的贡献为\(A*i+B*j+C*k\),求所有无连边三元组的贡献和. \(Solution\) 直接求无连边三元组依旧很难.考虑用所有方案去减,那 Ans=所有方案-至少有1条连边+至少有2条连边-有3条边("至少"显然比较好做啊). 对于所有方案,A,B,C可以分别统计,即枚举哪个是A/B/C,剩下的随便组合. 对于至少1…
题面 传送门(bzoj) 传送门(CF) \(llx\)身边妹子成群,这天他需要从\(n\)个妹子中挑出\(3\)个出去浪,但是妹子之间会有冲突,表现为\(i,j\)之间连有一条边\((i,j)\),定义一种选择方案的权值为\(Ai+Bj+Ck,i<j<k\),求所有选择方案的权值之和 题解 容斥,至少\(0\)条边相连的方案\(-\)至少\(1\)条边相连的方案\(+\)至少\(2\)条边相连的方案\(-\)至少\(3\)条边相连的方案 至少\(3\)条边相连的方案最难数,是个三元环计数,和…