task1 T2 game
来源:互联网 发布:c语言编程培训班 编辑:程序博客网 时间:2024/06/05 15:42
把边权分为两半,加在端点上,那么若一个玩家选取了两个端点,他就能获得该边的边权,若两个玩家各选取了一个端点,那么相减之后相当于没有玩家获得该边的边权。因此把边权分为两半,加在端点上,然后按端点权值排序,交错取即可。
#include<bits/stdc++.h>#define MAXN 10005using namespace std;template <typename T> void read(T &x){x=0;int f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;for(;isdigit(ch);ch=getchar())x=x*10+ch-'0';x*=f;}int n,m;double w[MAXN];inline bool cmp(double x,double y){return x>y;}int main(){freopen("game.in","r",stdin);freopen("game.out","w",stdout);read(n),read(m);for(int i=1;i<=n;++i) cin>>w[i];for(int i=1;i<=m;++i){int x,y;double v;read(x),read(y),cin>>v;v/=2;w[x]+=v;w[y]+=v;}//for(int i=1;i<=n;++i) cout<<w[i]<<" ";cout<<endl;sort(w+1,w+n+1,cmp);//for(int i=1;i<=n;++i) cout<<w[i]<<" ";cout<<endl;double tot=0.0;for(int i=1;i<=n;i+=2){tot+=w[i];}for(int i=2;i<=n;i+=2){tot-=w[i];}cout<<tot<<endl; return 0;}
阅读全文
0 0
- task1 T2 game
- Task1
- NOIP模拟(10.30)T2 Game
- 工作Task1
- Task1 notMNIST
- ife task1
- task1总结
- t2
- t2
- t2
- T2
- t2
- T2
- Cambridge5 Test1 Task1
- Nachos 课程设计task1.1
- nachos课程设计 task1.2
- Nachos课程设计Task1.3
- Nachos课程设计task1.4
- 电脑蓝屏0x0000006B不重装系统的解决办法
- 行动2017—中国软件网团建活动
- elasticsearch约定查询
- JFrame.setDefaultCloseOperation
- 《加密与解密》第三篇解密篇“KeyFile保护攻击”个人实战例子(上)”
- task1 T2 game
- codeforces 632A Grandma Laura and Apples
- U盘装windows系统(大白菜或者是深度软件)
- 随笔
- Solr搜索引擎(4)中文分词器
- Java高并发--重入锁
- Python编程常见出错信息及原因分析(4)
- 欢迎使用CSDN-markdown编辑器
- Solr搜索引擎(5)通过Java代码索引MySQL