Bzoj 3498 Cakes(三元环)
题面(权限题就不放题面了)
题解
三元环模板题,按题意模拟即可。
#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];
inline void swap(int &a, int &b) { tmp = a, a = b, b = tmp; }
inline int max(int a, int b) { return a > b ? a : b; }
inline int read() {
    int ret = 0; char ch = getchar();
    while(ch < '0' || ch > '9') ch = getchar();
    while(ch >= '0' && ch <= '9') ret = ret * 10 + ch - '0', ch = getchar();
    return ret;
}
int main () {
    n = read(), m = read();
    for(int i = 1; i <= n; ++i) a[i] = read();
    for(int i = 1; i <= m; ++i) u[i] = read(), v[i] = read(), ++deg[u[i]], ++deg[v[i]];
    for(int i = 1; i <= m; ++i) {
        if(deg[u[i]] < deg[v[i]] || (deg[u[i]] == deg[v[i]] && u[i] > v[i])) swap(u[i], v[i]);
        to[u[i]].push_back(v[i]);
    }
    for(int i = 1; i <= n; ++i) {
        for(auto j : to[i]) vis[j] = i;
        for(auto j : to[i])
            for(auto k : to[j]) {
                if(vis[k] == i) ans += max(max(a[i], a[j]), a[k]);
            }
    } printf("%lld\n", ans);
    return 0;
}
												
											Bzoj 3498 Cakes(三元环)的更多相关文章
- BZOJ.3498.[PA2009]Cakes(三元环 枚举)
		
题目链接 感觉我可能学的假的(复杂度没问题,但是常数巨大). 一个比较真的说明见这儿:https://czyhe.me/blog/algorithm/3-mem-ring/3-mem-ring/. \ ...
 - BZOJ3498PA2009 Cakes——三元环
		
题目描述 N个点m条边,每个点有一个点权a.对于任意一个三元环(j,j,k)(i<j<k),它的贡献为max(ai,aj,ak) 求所有三元环的贡献和.N<100000,,m< ...
 - BZOJ3498: PA2009 Cakes(三元环)
		
题意 题目链接 Sol 按照套路把边转成无向图,我们采取的策略是从权值大的向权值小的连边 然后从按权值从小到大枚举每个点,再枚举他们连出去的点\(v\) 如果\(v\)的度数\(\leqslant M ...
 - BZOJ 3498: PA2009 Cakes 一类经典的三元环计数问题
		
首先引入一个最常见的经典三元环问题. #include <bits/stdc++.h> using namespace std; const int maxn = 100005; vect ...
 - BZOJ 3498 PA2009 Cakes(三元环处理)
		
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3498 [题目大意] N个点m条边,每个点有一个点权a. 对于任意一个三元环(j,j,k ...
 - [BZOJ 3498] [PA 2009] Cakes
		
Description \(n\) 个点 \(m\) 条边,每个点有一个点权 \(a_i\). 对于任意一个三元环 \((i,j,k)(i<j<k)\),它的贡献为 \(\max(a_i, ...
 - BZOJ 3498 PA2009 Cakes
		
本题BZOJ权限题,但在bzojch上可以看题面. 题意: N个点m条无向边,每个点有一个点权a. 对于任意一个三元环(i,j,k)(i<j<k),它的贡献为max(ai,aj,ak) 求 ...
 - BZOJ.5407.girls(容斥 三元环)
		
题目链接 CF 原题 \(Description\) 有n个点,其中有m条边连接两个点.每一个没有连边的三元组\((i,j,k)(i<j<k)\)对答案的贡献为\(A*i+B*j+C*k\ ...
 - BZOJ.5407.girls/CF985G. Team Players(三元环计数+容斥)
		
题面 传送门(bzoj) 传送门(CF) \(llx\)身边妹子成群,这天他需要从\(n\)个妹子中挑出\(3\)个出去浪,但是妹子之间会有冲突,表现为\(i,j\)之间连有一条边\((i,j)\), ...
 
随机推荐
- PowerDesigner16  把设计图导出成图片
			
1. 用鼠标选择要导出的对象,必须先选择. 2. 选择Edit—>Export Image 导出为你需要的格式图片,见下图:
 - 【转载】Java JVM : Xms Xmx PermSize MaxPermSize 区别
			
转载自:http://cxh61207.iteye.com/blog/1160663 java JVM虚拟机选项: Xms Xmx PermSize MaxPermSize 区别 Xms 是指设定程 ...
 - Linux和windows下检查jsp后门文件的方法
			
Linux下: find . -name "*.jsp" | xargs egrep -liw "createNewFile| File\(| File |applica ...
 - 重复代码Duplicated Code---要重构的信号
			
什么时候需要重构,当你在项目代码里面嗅到这个味道的时候,就要进行重构. 首个介绍的味道是重复代码的味道. 它表现出来的特征是这些: 1.一个类里面,两个函数中,含有相同的代码,类似的代码: ...
 - bzoj 2957: 楼房重建 ——线段树
			
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...
 - Tomcat8利用Redis配置Session共享
			
同一个应用在运行多个tomcat实例的时候,经常需要共享Session.tomcat配置共享session有多种方式 1.利用tomcat自身集群特性进行配置: 2.利用Memcache第三方缓存进行 ...
 - POJ  3276    Face The Right Way      (尺取法)
			
题目链接 Description Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in a row and many of them are f ...
 - echart自定义tooltip
			
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
 - 10.异步SRAM的FPGA读写操作
			
异步SRAM:正如其名,不是与特定的时钟信号同步运行,而是根据输入信号的状态运行的.因为没有信号表明读取时已确定了有效数据,也没有信号表明写入时已接收到数据,所以,需要获取制造商的数据手册,根据时序图 ...
 - uboot makefile构建分析
			
前言 几年前分析过uboot的构建及启动过程,做了笔记,但最终没有转为文章.这次又有机会开发嵌入式产品了(之前一年多都是在搞x86 linux),看了下uboot的构建过程,觉得有必要写下整个分析过程 ...