[国家集训队]阿狸和桃子的游戏(贪心)
题目
题目传送门
题解
- 贪心方法不太好想,但会了方法代码很简单
- 我们可以把每条边的权值分成两半加到两端点上,用新的端点权值排序,每次交替加或减即可
- 贪心思想的证明:
- 声明:端点u,vu,vu,v,边权disdisdis,两端点权值valu,valvval_u,val_vvalu,valv
- 若两个端点都选:获得的价值 =valu′+valv′=valu+dis2+valv+dis2=valu+valv+dis=val_u'+val_v'=val_u+\frac{dis}{2}+val_v+\frac{dis}{2}=val_u+val_v+dis=valu′+valv′=valu+2dis+valv+2dis=valu+valv+dis和原来一样
- 若只选一个端点:获得的价值=valu′−valv′=valu+dis2−(valv+dis2)=valu−valv=val_u'-val_v'=val_u+\frac{dis}{2}-(val_v+\frac{dis}{2})=val_u-val_v=valu′−valv′=valu+2dis−(valv+2dis)=valu−valv符合题意
- 所以贪心思想显然正确。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e4 + 100; template <typename T>
inline void read(T &s) {s = 0; T w = 1, ch = getchar(); while (!isdigit(ch)) { if (ch == '-') w = -1; ch = getchar(); }while (isdigit(ch)) { s = (s << 1) + (s << 3) + (ch ^ 48); ch = getchar(); }s *= w;
}int n, m;
double ans;
double val[maxn]; int main() {read(n), read(m); for (int i = 1; i <= n; ++i) scanf("%lf", &val[i]); for (int i = 1; i <= m; ++i) {int x, y; double z; read(x), read(y); scanf("%lf", &z); val[x] += z / 2 * 1.0; val[y] += z / 2 * 1.0; }sort(val + 1, val + n + 1); for (int i = n; i >= 1; --i) {if (i & 1) ans -= val[i]; else ans += val[i]; }printf("%.0lf\n", ans); return 0;
}
[国家集训队]阿狸和桃子的游戏(贪心)相关推荐
- 洛谷 P4643 [国家集训队]阿狸和桃子的游戏
题目:[国家集训队]阿狸和桃子的游戏 思路: 截个图,这个思路太巨了Orz. 图可以点.
- 洛谷P4643 [国家集训队]阿狸和桃子的游戏
题目描述 题目描述 阿狸和桃子正在玩一个游戏,游戏是在一个带权图G=(V, E)上进行的,设节点权值为w(v),边权为c(e).游戏规则是这样的: 1.阿狸和桃子轮流将图中的顶点染色,阿狸会将顶点染成 ...
- P4643 [国家集训队]阿狸和桃子的游戏
把边权转换为点权.具体来说,把一条边的边权各一半加到两个顶点上,然后每个人选的时候,贪心的选取点权最大的点即可. 如果一条边的两个顶点被同一个人选上了,那么它就会额外提供等同于边权的贡献:否则的话,两 ...
- luogu P4643 [国家集训队]阿狸和桃子的游戏
https://www.luogu.com.cn/problem/P4643 打比赛签到题是这题的加强版,完全不会,人傻了 记w(u)w(u)w(u)表示和u点相连的边权之和加上自身的点权 可以发现答 ...
- [bzoj2563] 阿狸和桃子的游戏 贪心
2563: 阿狸和桃子的游戏 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 814 Solved: 585 [Submit][Status][Discu ...
- 题解BZOJ 2563 阿狸和桃子的游戏 [贪心]
大家都很强,可与之共勉. 说贪心的话,代码短的和巧妙的数论题一样吓人.可是要转化出模型其实还是非常不容易的.比如说这个[2012国家集训队Round 1 day2],着实很巧妙. 阿狸和桃子正在玩一个 ...
- BZOJ_P2563 阿狸和桃子的游戏(贪心)
BZOJ传送门 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 504 Solved: 359 [Submit][Status][Discuss] Des ...
- BZOJ 2563 阿狸和桃子的游戏 (贪心)
Description 阿狸和桃子正在玩一个游戏,游戏是在一个带权图G=(V, E)上进行的,设节点权值为w(v),边权为c(e).游戏规则是这样的: 1. 阿狸和桃子轮流将图中的顶点染色,阿狸会将顶 ...
- P4643-[国家集训队]阿狸和桃子的游戏【结论】
正题 题目链接:https://www.luogu.com.cn/problem/P4643 题目大意 给出nnn个点mmm条边的无向图,两个人轮流选择一个未被选择的点加入点集. 然后每个人的权值为选 ...
最新文章
- 2017全球教育机器人行业研究报告(附PDF下载)
- MultiResUNet笔记
- Java反射,参数为数组
- spring boot热部署devtools
- 长能耐了?想造反了?你老婆没了.......
- 使用tomcat8下的websocket进行web前后端通信
- 下划线_Python中下划线的5种含义
- 我的Linux系统开始学习的过程
- Java中的接口与抽象类的区别
- verilog将像素数据写入txt_【测试工具】测试数据生成工具datafaker
- 解决ES只能查询10000条数据的问题
- ttl转rs232发送十六进制_浅析 UART、RS232、TTL 之间的关系(转)
- Oracle——03索引
- c语言 遍历搜索文件夹(获取文件夹中所有内容)
- 断层成像CT和ET重建算法
- 浏览器工作流程_浏览器如何工作
- SQL SERVER2008查询分析器的最基本的使用——建库、建表、插入数据
- 运维面试题(每日一题)
- 如何在excel中将两列数据匹配
- HDU-1276 士兵队列训练问题
热门文章
- ipcam的几个概念
- 构建单拷贝同源蛋白系统发育树,一条命令提序列!
- win 11 微软 输入法 提示框 提示栏 消失 不见 不显示 找回 显示 可行性 解决方案
- 2018 SUCTF招新赛
- [从头读历史] 第261节 左传 [BC657至BC598]
- [JavaScript] audio在浏览器中自动播放
- 春招+秋招核心面试问题
- qq修改群名服务器失败,qq建群失败什么原因 q群一直创建失败 - 云骑士一键重装系统...
- svn执行update操作后出现:Error : Previous operation has not finished; run 'cleanup' if it was interrupted.
- kali为一加三(oneplus3)编译lineage15.1(安卓8.1)