Konrad and Company Evaluation
F. Konrad and Company Evaluation
思路:题意分析见参考博客。因为求的是三元组的个数,所以在保存的时候的时候就保存为有向图,让工资少的员工指向工资多的员工,那么求三元组的时候,只需要以三元组中间的那个员工为参考点来求解即可。
ll cal(int i)
{
return (cnt[i]-g[i].size())*g[i].size();
}
那么当进行操作的时候,因为每一次会加
n
所以肯定会比之间它所连接的两个点要大,那么对于该点指向的那个点来说,组成的三元组就要重新进行计算了,所以先把之前算过的部分减去,再把新的部分加上。
代码:
// Created by CAD on 2019/10/1.
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e6+5;
int cnt[maxn];
vector<int> g[maxn];
ll cal(int i)
{
return (cnt[i]-g[i].size())*g[i].size();
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n,m; cin>>n>>m;
for(int i=1,u,v;i<=m;++i)
{
cin>>u>>v;
if(u>v) swap(u,v);
g[u].push_back(v);
cnt[u]++,cnt[v]++;
}
ll ans=0;
for(int i=1;i<=n;++i) ans+=cal(i);
int q; cin>>q;
cout<<ans<<endl;
while(q--)
{
int x; cin>>x;
ans-=cal(x);
for(auto i:g[x])
{
ans-=cal(i);
g[i].push_back(x);
ans+=cal(i);
g[x].clear();
}
cout<<ans<<endl;
}
return 0;
}
Konrad and Company Evaluation的更多相关文章
- Codeforces Round #588 (Div. 1) C. Konrad and Company Evaluation
直接建反边暴力 复杂度分析见https://blog.csdn.net/Izumi_Hanako/article/details/101267502 #include<bits/stdc++.h ...
- Codeforces 1229C. Konrad and Company Evaluation
传送门 首先考虑如何算出答案,考虑枚举中间那个点,显然每个点作为中间的点的次数为入度乘出度 所以答案就是每个点的入度乘出度之和 然后每个点开一个 $vector$ 维护从它出去的点数,每次修改的时候直 ...
- 【CF1210D】Konrad and Company Evaluation(vector,图论)
题意:有i个人,m对两两之间的关系,第i个人初始的薪水为i,有q次操作,第i次操作会把v[i]号的薪水提升成n+i 如果两个人之间存在关系,薪水高的会向薪水低的炫耀 定义u,v,w为一个三元组,当u向 ...
- Codeforces Round #588 (Div. 2)
传送门 A. Dawid and Bags of Candies 乱搞. Code #include <bits/stdc++.h> #define MP make_pair #defin ...
- Codeforces Round #588 (Div. 1) 简要题解
1. 1229A Marcin and Training Camp 大意: 给定$n$个对$(a_i,b_i)$, 要求选出一个集合, 使得不存在一个元素好于集合中其他所有元素. 若$a_i$的二进制 ...
- (转)C# XMPP客户端与openfire通信(Matrix Xmpp 授权破解教程)
FROM:http://www.cnblogs.com/crabo/p/CRACK_MATRIX_XMPP.html 如此著名的XMPP , 居然试过jabber-net, agsXmpp,matri ...
- C# XMPP客户端与openfire通信(Matrix Xmpp 授权破解教程)
如此著名的XMPP , 居然试过jabber-net, agsXmpp,matrix Xmpp, 无数多个例子, 居然没有一个能实现最简单的 发消息.收消息功能.好无语. 最后还是决定从商业产品 Ma ...
- Dubbo+Zookeeper 入门Demo
1.Zookeeper安装及启动 可参考这篇文章https://www.cnblogs.com/geekdc/p/5948326.html 从下载到启动都描述的很详细,按照文章一步一步走即可. 2.D ...
- SBM is Not Sale And Run Company
data = """ Well,We will bet you dollars to donuts,there are so many crusher provider ...
随机推荐
- OnMouseWheel的通常处理
BOOL CMainWindow::OnMouseWheel(UINT nFlags, short zDelta, CPoint point) { BOOL bUp = TRUE; int nDelt ...
- bash 中 () {} [] [[]] (()) 的解释
bash 中 () {} [] [[]] (()) 的解释 来源 https://www.cnblogs.com/fhefh/archive/2011/04/16/2017895.html bash ...
- shiro学习(五、springboot+shiro+mybatis+thymeleaf)
入门shiro(感觉成功了)首先感谢狂神,然后我就一本正经的复制代码了 项目结构 运行效果 数据库 <dependencies> <!-- thymeleaf-shiro整合包 -- ...
- C++ const关键字以及static关键字
const可以用来修饰类中的成员函数以及成员变量以及类的对象 1.const修饰成员函数: 该函数是只读函数,不允许修改任何成员变量,但是可以使用类中的任何成员变量: 不允许修改任何非static的类 ...
- vue中修改数组,dom未更新的问题
vue中我们会频繁操作各种数据,但有时候发现修改完数据以后,dom并未更新? 比如有一个数组对象: obj = [{'name': 'joy'},{'name': 'bowen'}] 我要循坏插入某个 ...
- Express bodyParser中间件使用方式
bodyParser中间件用来解析http请求体,是express默认使用的中间件之一. 1.这个模块提供以下解析器 (1) JSON body parser (2) Raw body parser ...
- vue2.0关于for循环 index的使用方法
<!DOCTYPE html> <html> <head> <title>for循环</title> </head> <b ...
- ftp卡死问题
最近用org.apache.commons.net.ftp.FTPClient 写ftp的上传下载的定时任务 发现有时候线程会卡住,也不报错就一直不工作了,后来发现需要使用ftp的被动模式才行,实现 ...
- ASE19团队项目alpha阶段model组 scrum2 记录
本次会议于11月4日,19时整在微软北京西二号楼sky garden召开,持续25分钟. 与会人员:Jiyan He, Kun Yan, Lei Chai, Linfeng Qi, Xueqing W ...
- Tomcat项目自动部署脚本
一般情况下使用的Linux环境都是加固的,root路径只有超级管理员权限才能进入.我们新建一个自己的用户,在/home下会有一个用户目录,传输war包都放在这个目录下,此时不动webapps文件下的内 ...