先思考图上是\(tag\)的特殊情况。

考虑我们按拓扑序反过来操作,就可以得到我们任意想要的顺序。

那么我们把所有的图都缩点操作,那么我们只需要考虑一个联通分量里就行了。

一个联通分量最后只会剩下一个不可取的,我们只要判断这个就可以了。

那么按照权值大小排序,再一次判断是否可取即可。

#include<iostream>
#include<cstdio>
#include<stack>
#include<algorithm>
#define ll long long
#define N 500004 std::stack<int>QWQ; ll n,m,k; ll head[N],cnt,scc[N],siz[N],in[N]; struct P{
int to,next;
}e[N * 10]; inline void add(int x,int y){
e[++cnt].to = y;
e[cnt].next = head[x];
head[x] = cnt;
} struct E{
int w,id;
}p[N]; bool operator < (E a,E b){
return a.w > b.w;
} ll dfn[N],low[N],vis[N],dfncnt,sccnt; inline void tarjan(ll u){
dfn[u] = low[u] = ++dfncnt;
QWQ.push(u);
vis[u] = 1;
for(int i = head[u];i;i = e[i].next){
int v = e[i].to;
if(!dfn[v]){
tarjan(v);
low[u] = std::min(low[u],low[v]);
}else if(vis[v]){
low[u] = std::min(low[u],dfn[v]);
}
}
if(dfn[u] == low[u]){
++sccnt;
while(QWQ.top() != u){
scc[QWQ.top()] = sccnt;
siz[sccnt] ++ ;
vis[QWQ.top()] = 0;
QWQ.pop();
}
siz[sccnt] ++ ;
scc[QWQ.top()] = sccnt;
vis[QWQ.top()] = 0;
QWQ.pop();
}
} ll ans; int main(){
scanf("%lld%lld%lld",&n,&m,&k);
for(int i = 1;i <= n;++i)
scanf("%d",&p[i].w),p[i].id = i;
std::sort(p + 1,p + n + 1);
for(int i = 1;i <= m;++i){
ll x,y;
scanf("%lld%lld",&x,&y);
add(x,y);
}
for(int i = 1;i <= n;++i){
if(!dfn[i]){
tarjan(i);
}
}
for(int i = 1;i <= n;++i){
for(int j = head[i];j;j = e[j].next){
int v = e[j].to;
if(scc[v] != scc[i])
in[scc[v]] ++ ;
}
}
ll got = 0;
for(int i = 1;i <= n;++i){
int u = p[i].id;
if(in[scc[u]])
got ++ ,ans += p[i].w,siz[scc[u]] -- ;
else
if(siz[scc[u]] > 1)
got ++ ,ans += p[i].w,siz[scc[u]] -- ;
if(got == k)
break;
}
std::cout<<ans<<std::endl;
}

[yLOI2018] 锦鲤抄的更多相关文章

  1. P5008 [yLOI2018] 锦鲤抄(Tarjan+贪心)

    洛谷 题意: 给出一个有向图,每次可以删除存在入度的点及其出边,每次删除一个点可以获得其权值. 问最终能够获得的最大权值为多少. 思路: 考虑DAG:我们直接倒着拓扑序来选,即可将所有入度不为\(0\ ...

  2. 6.20校内考试整理——大美江湖&&腐草为萤&&锦鲤抄题解

    先安利一下题目作者:一扶苏一 先看第一题: 这道题就是一道简单的模拟题,只要不管一开始的位置,模拟移动与格子对应的触发事件就行了.话不多说,看代码: #include<iostream> ...

  3. zay大爷的神仙题目 D1T3-膜你抄

    依旧是外链 锦鲤抄 [题目背景] 你在尘世中辗转了千百年 却只让我看你最后一眼 火光描摹容颜燃尽了时间 别留我一人,孑然一身 凋零在梦境里面. ——银临&云の泣<锦鲤抄> [问题描 ...

  4. 改编《OI抄》

    最近经历的事情比较多,网上常常流传着<锦鲤抄>修改版,于是就再修改了修改,就能唱起来了. 算是一种情怀吧. 请欣赏: OI抄 作词:某些dar佬 FYHSSGSS ssdfzhyf 作曲: ...

  5. WinterCamp2017吃饭睡觉记

    noip考完后励志好好学习进HE队然后Au,就这样每天勤奋刻苦发愤图强不知不觉就到冬令营了. 除了我之外的大佬们都是以上经历. 我呢……一个很爱浪的蒟蒻. 冬令营到了,伟大的CCF本着报一个录一个的原 ...

  6. [日常]蒟蒻的高一生活 Week 4

    啊啊啊好颓啊...石乐志 (药丸...最近更新的全都是日常了...(果然只做内部题效果滑稽)) 正在考虑把日常部分从科别体改成编日体(什么鬼)反正现在每天都能更新(x OI 整个一周 $dg$ 都没有 ...

  7. 【6.20校内test】

    反正考的不是很好吧,赶脚炸了啊qwq 然后这两天一直在忙一些神奇的事情,所以没有整理完 手动@water_lift T1:大美江湖: [题目背景] 细雪飘落长街,枫叶红透又一年 不只为故友流连,其实我 ...

  8. 校内考试之zay与银临(day1)

    T1大美江湖(洛谷P5006) zayの题解: 这个题的本质是模拟 不过有卡ceil的地方 ceil是对一个double进行向上取整,而对于int/int来说,返回值是int 举个生动的栗子 ceil ...

  9. NIOP 膜你题

    NOIp膜你题   Day1 duliu 出题人:ZAY    1.大美江湖(mzq.cpp/c) [题目背景] 细雪飘落长街,枫叶红透又一年不只为故友流连,其实我也恋长安听门外足音慢,依稀见旧时容颜 ...

随机推荐

  1. 【二食堂】Beta - Scrum Meeting 7

    Scrum Meeting 7 例会时间:5.19 18:30~18:50 进度情况 组员 当前进度 今日任务 李健 1. 文本区域的前后端对接完成,bug已经修复issue2. 自定义关系的添加与删 ...

  2. OO第四单元及学期总结

    OO第四单元及学期总结 第四单元两次作业的架构设计 第一次作业 类图: 树形结构:使用Operation类管理UMLOperation以及parent为该UMLOperation的参数(UMLpara ...

  3. 一文带你掌握【TCP拥塞窗口】原理

    ❝ 关注公众号:高性能架构探索.后台回复[资料],可以免费领取 ❞ 学过网络相关课程的,都知道TCP中,有两个窗口: 滑动窗口(在我们的上一篇文章中有讲),接收方通过通告发送方自己的可以接受缓冲区大小 ...

  4. Oracle 11g 新建用户

    create user XXXuser identified by XXXpassword;--创建用户XXXuser,设置初始密码XXXpassword alter user XXXuser ide ...

  5. python write() argument must be str, not bytes

    python pickle from __future__ import absolute_import from __future__ import division from __future__ ...

  6. 盘点 GitHub 年度盛会|附视频

    「Universe 2021」是 GitHub 于今年举办的开发者盛会,本次 Universe 2021 大会采用线上直播模式,为期两天已于上周落下帷幕. 这是 GitHub 举办的一年一度开发者盛会 ...

  7. docker 加入域名

    先运行docker镜像 # 进入 docker 容器 mynginx 是容器名 docker exec -i -t mynginx /bin/bash #安装vim apt-get install v ...

  8. SQL注入之猫舍之sqlmap的使用

    先说一下最常用的基础指令 -u 指定注入点(一般为url栏的网址) --dbs 跑库名 --tables 跑表名 --columns 跑字段名 --dump 枚举数据(高危指令,容易进去) -D 库名 ...

  9. 一个疏忽损失惨重!就因为把int改成Integer,第2天被辞了

    1 故事背景 一个程序员就因为改了生产环境上的一个方法参数,把int型改成了Integer类型,因为涉及到钱,结果上线之后公司损失惨重,程序员被辞退了.信不信继续往下看.先来看一段代码: public ...

  10. [python]RobotFramework自定义库实现UI自动化

    1.安装教程 环境搭建不多说,网上资料一大堆,可参考https://www.cnblogs.com/puresoul/p/3854963.html,写的比较详细,值得推荐.目前python3是不支持r ...