题目

题目传送门


题解

  • 贪心方法不太好想,但会了方法代码很简单
  • 我们可以把每条边的权值分成两半加到两端点上,用新的端点权值排序,每次交替加或减即可
  • 贪心思想的证明:
    1. 声明:端点u,vu,vu,v,边权disdisdis,两端点权值valu,valvval_u,val_vvalu​,valv​
    2. 若两个端点都选:获得的价值 =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和原来一样
    3. 若只选一个端点:获得的价值=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;
}

[国家集训队]阿狸和桃子的游戏(贪心)相关推荐

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

    题目:[国家集训队]阿狸和桃子的游戏 思路: 截个图,这个思路太巨了Orz. 图可以点.

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

    题目描述 题目描述 阿狸和桃子正在玩一个游戏,游戏是在一个带权图G=(V, E)上进行的,设节点权值为w(v),边权为c(e).游戏规则是这样的: 1.阿狸和桃子轮流将图中的顶点染色,阿狸会将顶点染成 ...

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

    把边权转换为点权.具体来说,把一条边的边权各一半加到两个顶点上,然后每个人选的时候,贪心的选取点权最大的点即可. 如果一条边的两个顶点被同一个人选上了,那么它就会额外提供等同于边权的贡献:否则的话,两 ...

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

    https://www.luogu.com.cn/problem/P4643 打比赛签到题是这题的加强版,完全不会,人傻了 记w(u)w(u)w(u)表示和u点相连的边权之和加上自身的点权 可以发现答 ...

  5. [bzoj2563] 阿狸和桃子的游戏 贪心

    2563: 阿狸和桃子的游戏 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 814 Solved: 585 [Submit][Status][Discu ...

  6. 题解BZOJ 2563 阿狸和桃子的游戏 [贪心]

    大家都很强,可与之共勉. 说贪心的话,代码短的和巧妙的数论题一样吓人.可是要转化出模型其实还是非常不容易的.比如说这个[2012国家集训队Round 1 day2],着实很巧妙. 阿狸和桃子正在玩一个 ...

  7. BZOJ_P2563 阿狸和桃子的游戏(贪心)

    BZOJ传送门 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 504 Solved: 359 [Submit][Status][Discuss] Des ...

  8. BZOJ 2563 阿狸和桃子的游戏 (贪心)

    Description 阿狸和桃子正在玩一个游戏,游戏是在一个带权图G=(V, E)上进行的,设节点权值为w(v),边权为c(e).游戏规则是这样的: 1. 阿狸和桃子轮流将图中的顶点染色,阿狸会将顶 ...

  9. P4643-[国家集训队]阿狸和桃子的游戏【结论】

    正题 题目链接:https://www.luogu.com.cn/problem/P4643 题目大意 给出nnn个点mmm条边的无向图,两个人轮流选择一个未被选择的点加入点集. 然后每个人的权值为选 ...

最新文章

  1. 2017全球教育机器人行业研究报告(附PDF下载)
  2. MultiResUNet笔记
  3. Java反射,参数为数组
  4. spring boot热部署devtools
  5. 长能耐了?想造反了?你老婆没了.......
  6. 使用tomcat8下的websocket进行web前后端通信
  7. 下划线_Python中下划线的5种含义
  8. 我的Linux系统开始学习的过程
  9. Java中的接口与抽象类的区别
  10. verilog将像素数据写入txt_【测试工具】测试数据生成工具datafaker
  11. 解决ES只能查询10000条数据的问题
  12. ttl转rs232发送十六进制_浅析 UART、RS232、TTL 之间的关系(转)
  13. Oracle——03索引
  14. c语言 遍历搜索文件夹(获取文件夹中所有内容)
  15. 断层成像CT和ET重建算法
  16. 浏览器工作流程_浏览器如何工作
  17. SQL SERVER2008查询分析器的最基本的使用——建库、建表、插入数据
  18. 运维面试题(每日一题)
  19. 如何在excel中将两列数据匹配
  20. HDU-1276 士兵队列训练问题

热门文章

  1. ipcam的几个概念
  2. 构建单拷贝同源蛋白系统发育树,一条命令提序列!
  3. win 11 微软 输入法 提示框 提示栏 消失 不见 不显示 找回 显示 可行性 解决方案
  4. 2018 SUCTF招新赛
  5. [从头读历史] 第261节 左传 [BC657至BC598]
  6. [JavaScript] audio在浏览器中自动播放
  7. 春招+秋招核心面试问题
  8. qq修改群名服务器失败,qq建群失败什么原因 q群一直创建失败 - 云骑士一键重装系统...
  9. svn执行update操作后出现:Error : Previous operation has not finished; run 'cleanup' if it was interrupted.
  10. kali为一加三(oneplus3)编译lineage15.1(安卓8.1)