[bzoj 2563] 阿狸和桃子的游戏
2015-12-20 21:18
471 查看
题目在这里
先orz一发El_Shaarawy_S
绝对的贪心好题。
考虑对答案的贡献。
对于一个点i,如果选它,能获得的权值为w[i];如果不选它,那么另外一个人肯定会选,所以权值是-w[i];
而对于一条边i,
如果这条边的两个点都选,权值是c[i];
如果只选一个点,权值是0;
如果两个点都不选,权值是-c[i];
设答案为ans,另W=ans+∑w[i]+∑c[i]
可知上述点和边的选取对于W的贡献变为2w[i],0,2c[i],c[i],0
这样的话,选取一个点的权值为w[i]+∑c[j] (j是包含第i个点的边)。
由于点与点之间的权值是独立的,不会互相影响(即一个点选不选对其它点不影响),所以每个人都会选择权值最大的。将权值排序后贪心加即可。
orz El_Shaarawy_S
先orz一发El_Shaarawy_S
绝对的贪心好题。
考虑对答案的贡献。
对于一个点i,如果选它,能获得的权值为w[i];如果不选它,那么另外一个人肯定会选,所以权值是-w[i];
而对于一条边i,
如果这条边的两个点都选,权值是c[i];
如果只选一个点,权值是0;
如果两个点都不选,权值是-c[i];
设答案为ans,另W=ans+∑w[i]+∑c[i]
可知上述点和边的选取对于W的贡献变为2w[i],0,2c[i],c[i],0
这样的话,选取一个点的权值为w[i]+∑c[j] (j是包含第i个点的边)。
由于点与点之间的权值是独立的,不会互相影响(即一个点选不选对其它点不影响),所以每个人都会选择权值最大的。将权值排序后贪心加即可。
orz El_Shaarawy_S
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <string> #include <cstdlib> #include <algorithm> #include <vector> #include <deque> #include <queue> #include <map> #include <set> #include <ctime> #define putarray(a,n) for (int i=1;i<=n-1;i++) printf("%d ",a[i]); printf("%d\n",a ); using namespace std; const int MAXN=10005; int n,m,val[MAXN],ans; int Get() { char ch; int v=0; bool f=false; while (!isdigit(ch=getchar())) if (ch=='-') f=true; v=ch-48; while (isdigit(ch=getchar())) v=v*10+ch-48; if (f) return -v;else return v; } bool cmp(const int &a,const int &b) { return a>b;} int main() { n=Get(),m=Get(); int x,y,c; ans=0; for (int i=1;i<=n;i++) c=Get(),val[i]=c<<1,ans-=c; for (int i=1;i<=m;i++) x=Get(),y=Get(),c=Get(),val[x]+=c,val[y]+=c,ans-=c; sort(val+1,val+1+n,cmp); for (int i=1;i<=n;i+=2) ans+=val[i]; printf("%d\n",ans); return 0; }
相关文章推荐
- <LeetCode OJ> 9. Palindrome Number
- 南沙政府应急系统之GIS一张图(arcgis api for flex)讲解(六)地图搜索模块
- Microsoft Smooth Streaming协议环境配置
- boost-内存管理(scoped_array)
- 《挑战程序设计竞赛》2.6 数学问题-素数 AOJ0009 POJ3126 3421 3292 3641
- 利用多态,实现一般处理程序(ashx)中的AOP(切面编程)
- 开源跳板机(堡垒机)Jumpserver v3.0.0 发布
- 网络爬虫入门
- 聊聊Quartz那点事儿
- 限制图片显示的尺寸
- 利用运行时关联(runtime)给分类(Category)中的属性存值.
- 数组易错题与课堂小结
- 软件工程实践总结
- python函数的使用和返回值
- 贪心+二分 Codeforces609D Gadgets for dollars and pounds
- email驗證
- Windows下动态库和静态库的浅要对比分析
- 有关Doxygen及Graphviz代码分析软件
- 虚拟机VMware无法识别USB设备
- centos7 yum install php php-fpm