正题

题目链接:https://www.luogu.com.cn/problem/P4643


题目大意

给出\(n\)个点\(m\)条边的无向图,两个人轮流选择一个未被选择的点加入点集。

然后每个人的权值为选出的点的导出子图点权加边权和。

两个人都希望自己的权值减去对方的权值最大

求先手的权值减去后手的权值

\(1\leq n\leq 10^4,1\leq m\leq 10^5\)


解题思路

结论就是把边权均分到点权处。

证明的话假设两个点之间的点权为\(w\)。

那么如果两边颜色不同那么这个均分出来的权值会统计一个\(\frac{w}{2}-\frac{w}{2}=0\)的权值

如果两边颜色相同那么就会统计上这个权值。排序然后一个一个选就好了

时间复杂度\(O(n\log n+m)\)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int n,m,w[N],v[N],p[N],x[N],y[N],e[N],ans;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&w[i]),v[i]=w[i]*2,p[i]=i;
for(int i=1;i<=m;i++){
scanf("%d%d%d",&x[i],&y[i],&e[i]);
v[x[i]]+=e[i];v[y[i]]+=e[i];
}
sort(v+1,v+1+n);
for(int i=n;i>=1;i-=2)
ans+=v[i]-v[i-1];
printf("%d\n",ans/2);
return 0;
}

P4643-[国家集训队]阿狸和桃子的游戏【结论】的更多相关文章

  1. 洛谷P4643 [国家集训队]阿狸和桃子的游戏(思维题+贪心)

    思维题,好题 把每条边的边权平分到这条边的两个顶点上,之后就是个sb贪心了 正确性证明: 如果一条边的两个顶点被一个人选了,一整条边的贡献就凑齐了 如果分别被两个人选了,一作差就抵消了,相当于谁都没有 ...

  2. P4643 [国家集训队]阿狸和桃子的游戏

    传送门 这题看一眼就很不可做 考虑对于任意一个最终状态,对于一条边的贡献分成三种情况 如果此边连接的两点属于 $A$,那么对 $A$ 的贡献就是边权 $w$,即对答案的贡献为 $+w$ 如果两点都属于 ...

  3. luogu4643 [国家集训队]阿狸和桃子的游戏

    题目链接:洛谷 这道题乍一看非常的难,而且题目标题上的标签让人很害怕. 但其实这道题并不难写(只要想到了...emm) 因为我们只需要知道两个人得分之差,所以我们可以对条件进行变换. 我们将边权平分到 ...

  4. 【BZOJ2563】阿狸和桃子的游戏(贪心)

    [BZOJ2563]阿狸和桃子的游戏(贪心) 题面 BZOJ 题解 边权平均分给两个点就好了. #include<iostream> #include<cstdio> #inc ...

  5. 【bzoj2563】阿狸和桃子的游戏(贪心+构造)

    题目传送门:bzoj2563 先膜拜一波PoPoQQQ的题解:BZOJ 2563 阿狸和桃子的游戏 贪心 其实我们可以这样看:把一条边的权值均分到两个端点,那么取到两个端点就能得到这条边的边权,如果只 ...

  6. BZOJ2563阿狸和桃子的游戏

    2563: 阿狸和桃子的游戏 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 952  Solved: 682[Submit][Status][Discu ...

  7. Bzoj 2563: 阿狸和桃子的游戏 题解

    2563: 阿狸和桃子的游戏 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 970  Solved: 695[Submit][Status][Discu ...

  8. Bzoj2563 阿狸和桃子的游戏

    Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 701  Solved: 496 Description 阿狸和桃子正在玩一个游戏,游戏是在一个带权图G= ...

  9. BZOJ——2563: 阿狸和桃子的游戏

    http://www.lydsy.com/JudgeOnline/problem.php?id=2563 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit:  ...

随机推荐

  1. leaflet 动态线渲染

    可以采用leaflet插件 leaflet-ant-path ... <script src="js/leaflet-ant-path.js" type="text ...

  2. .NET 元数据概述

    元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述.将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中,而将代码转换为 Mi ...

  3. JS对象创建的几种方法

    最近一直在看JS高级程序设计这本书,有空来梳理一下几种创建对象的方式.话不多说,直接步入正题. 第一种:Object构造函数创建 var Person = new Object(); Person.n ...

  4. Thread类的常用方法----多线程基础练习

    创建多线程程序的第一种方式----继承Thread类 常用API 构造方法 public Thread() :分配一个新的线程对象. public Thread(String name) :分配一个指 ...

  5. mysql基础操作(三):数据约束

    首先创建一个数据库 create database homework default character set utf8; use homework; 1.1 默认值约束(default) -- 数 ...

  6. mysql基础操作(一):DDL、DML

    -- 1.在命令行中开启数据库: net start mysql -- 2.在命令行中关闭数据库: net stop mysql 1.DDL语句:create.drop.alter -- 查看所有的数 ...

  7. kettle 乱码问题处理方案

    一.同下图加上 "-Dfile.encoding=UTF-8" ,两都都加没有试过,可先加一处,如果没有处理到问题,再加另外一处

  8. mycat《对应关系》

  9. AWS使用ALB负载均衡遇到的问题

    文章原文 问题描述 ALB 负载均衡 RGC-Dev-ALB.xxx.cn-north-1.elb.amazonaws.com.cn 解析到2个IP 54.223.xxx.xx和52.81.xxx.x ...

  10. 除PerfDog之外,还有什么性能测试工具。

    除PerfDog之外,还有什么性能测试工具. 高通的Snapdragon Profiler 下载地址:https://developer.qualcomm.com/software/snapdrago ...