链接

[http://codeforces.com/contest/1043/problem/E]

题意

有n个人,每个人都有做出a,b题的分数,xi,yi,但是有些人是不能组队的,问你每个人和其他能组队的人最少分数和是多少

(组队时只能一个人做一个题,且不能相同)

分析

对于一个人和别人组队要么解决a,要么解决b, 他的分数是min(xi+yj,xj+yi);

所以我们只需要对统计xi+yj的情况和xj+yi的情况,若xi+yj<xj+yi 等价于xi-yi<xj-yj;

所以就对xi-yi;排序,后面就统计对其他人的分数最小和,最终减去不能组队的就是答案了具体看代码

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=3e5+10;
ll x[N],y[N];
ll ans[N];
int a[N];
vector<int> ve[N];
bool cmp(int b,int c){
return x[b]-y[b]<x[c]-y[c];
}
int main(){
int n,m,i,j;
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//freopen("in.txt","r",stdin);
cin>>n>>m;
int u,v;
for(i=1;i<=n;i++){
cin>>x[i]>>y[i];
a[i]=i;
}
for(j=1;j<=m;j++)
{
cin>>u>>v;
ve[u].push_back(v);
ve[v].push_back(u);
}
sort(a+1,a+n+1,cmp);
ll sum=0;
for(i=1;i<=n;i++){
ans[a[i]]=(i-1)*y[a[i]]+sum;
sum+=x[a[i]];
}
sum=0;
for(i=n;i>0;i--){
ans[a[i]]+=(n-i)*x[a[i]]+sum;
sum+=y[a[i]];
}
for(i=1;i<=n;i++)
for(j=0;j<ve[i].size();j++)
{
ll Min=min(x[i]+y[ve[i][j]],x[ve[i][j]]+y[i]);
ans[i]-=Min;
}
for(i=1;i<=n;i++)
cout<<ans[i]<<' ';
cout<<endl;
return 0;
}

E. Train Hard, Win Easy的更多相关文章

  1. 【Codeforces Round #519 by Botan Investments E】Train Hard, Win Easy

    [链接] 我是链接,点我呀:) [题意] [题解] 设每个人做第一题.第二题的分数分别为x,y 我们先假设没有仇视关系. 即每两个人都能进行一次训练. 那么 对于第i个人. 考虑第j个人对它的贡献 如 ...

  2. Codeforces 1043 - A/B/C/D/E/F - (Undone)

    链接:http://codeforces.com/contest/1043 A - Elections - [水水水水题] 题意: 我和另一个人竞争选举,共有 $n$ 个人投票,每个人手上有 $k$ ...

  3. Codeforces Round #519

    题目链接:传送门   A. Elections (思维+暴力) 思路: 从最小的k开始枚举就好了- -. #include <bits/stdc++.h> using namespace ...

  4. Codeforces Round #519 题解

    A. Elections 题意概述 给出 \(a_1, \ldots, a_n\),求最小的 \(k (k \ge \max a_i)\), 使得 \(\sum_{i=1}^n a_i < \s ...

  5. Codeforces Round #519 by Botan Investments(前五题题解)

    开个新号打打codeforces(以前那号玩废了),结果就遇到了这么难一套.touristD题用了map,被卡掉了(其实是对cf的评测机过分自信),G题没过, 700多行代码,码力惊人.关键是这次to ...

  6. 【Win 10 应用开发】RTM版的UAP项目解剖

    Windows 10 发布后,其实SDK也偷偷地在VS的自定义安装列表中出现了,今天开发人员中心也更新了下载.正式版的SDK在API结构上和以前预览的时候是一样的,只是版本变成10240罢了,所以大家 ...

  7. Xperf Basics: Recording a Trace (the easy way)(转)

      http://randomascii.wordpress.com/2013/04/20/xperf-basics-recording-a-trace-the-easy-way/   Some ti ...

  8. iframeWin For Easy UI. 为 Easy UI 扩展的支持IFrame插件

    iframeWin For Easy UI. 为 Easy UI 扩展的支持IFrame插件 在一个项目中用了Easy UI,但是发现里面的 Dialog .Window.Messager 弹窗都不支 ...

  9. 微软职位内部推荐-Senior SDE for Win Shell Exp

    微软近期Open的职位: Job posting title: Senior Software Development Engineer Location: China, Beijing Divisi ...

随机推荐

  1. 用Python实现数据结构之树

    树 树是由根结点和若干颗子树构成的.树是由一个集合以及在该集合上定义的一种关系构成的.集合中的元素称为树的结点,所定义的关系称为父子关系.父子关系在树的结点之间建立了一个层次结构.在这种层次结构中有一 ...

  2. windows7系统最大支持多少内存

      目前Windows 7 64位版仅能使用最大为192GB内存. 这是各个版本的具体数据:64位的Windows  7家庭普通版最高可支持8GB内存,家庭高级版最高可支持16GB内存,64位的Win ...

  3. ccf题库20170903--Json查询

    题目如下: 试题编号: - 试题名称: JSON查询 时间限制: .0s 内存限制: .0MB 问题描述: 问题描述 JSON (JavaScript Object Notation) 是一种轻量级的 ...

  4. account

    Account Doc V3_ADD 1. 用户头像 用户头像今后会放在阿里云上,所以: dev: http(s)://pyserver.oss-cn-hangzhou.aliyuncs.com/DE ...

  5. SWFUpload多文件上传使用指南

    SWFUpload是一个flash和js相结合而成的文件上传插件,其功能非常强大.以前在项目中用过几次,但它的配置参数太多了,用过后就忘记怎么用了,到以后要用时又得到官网上看它的文档,真是太烦了.所以 ...

  6. Linux - CentOS7上的时间同步

    1. 时区的概念 1.1 时区简介 地球是自西向东自转,东边比西边先看到太阳,东边的时间也比西边的早.东边时刻与西边时刻的差值不仅要以时计,而且还要以分和秒来计算,这给人们带来不便.所以为了克服时间上 ...

  7. linked-list-cycle-ii (数学证明)

    题意:略. 这个题最关键的点在于后面,如何找到循环开始的节点. 第一阶段,先用快慢指针找到相遇的节点C.(至于为什么,了解一下欧几里德拓展解决二元不定方程.)A是表头.B是开始循环的位置. 第一次阶段 ...

  8. 2017-2018-2 20155314《网络对抗技术》Exp5 MSF基础应用

    2017-2018-2 20155314<网络对抗技术>Exp5 MSF基础应用 目录 实验内容 实验环境 基础问题回答 预备知识 实验步骤--基于Armitage的MSF自动化漏洞攻击实 ...

  9. 图、dfs、bfs

    graphdfsbfs 1.clone graph2.copy list with random pointer3.topological sorting4.permutations5.subsets ...

  10. Jmeter之tomcat性能测试+性能改进措施

    Jmeter用于tomcat性能测试,因为项目部署在tomcat,正常情况下,一个tomcat可以承受500个并发,通过修改配置,及其相关的tomcat优化,可以承受到1000个并发. 如何测试tom ...