题面

https://www.luogu.org/problem/P5008

题解

为了带入氛围还把$QQ$音乐里的《锦鲤抄》点开听了听。

让我们想想删除的顺序是什么样子的:最优的顺序一定是从拓扑序最大的点倒着删,删到拓扑序最小的点。

其中有入度的强连通分量可以全都删完(最后通过“入度”退回拓扑序小的强连通分量)如果最后一个了,就必须留一个点。

贪心即可。

#include<stack>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 500500
#define M 2000500
#define mod 1000000007
#define ri register intusing namespace std;inline int read() {int ret=0; char ch=getchar();while (ch<'0' || ch>'9') ch=getchar();while (ch>='0' && ch<='9') ret*=10,ret+=(ch-'0'),ch=getchar();return ret;
}stack<int> s; vector<int> to[N];
int dfn[N],low[N],a[N],bel[N],id[N];
int n,m,k,u[M],v[M],sc=0,vc=0,ins[N],siz[N];void tarjan(int x) {dfn[x]=low[x]=++sc; s.push(x); ins[x]=1;for (ri i=0;i<to[x].size();i++) {int y=to[x][i];if (!dfn[y]) {tarjan(y);low[x]=min(low[x],low[y]);}else {if (ins[y]) low[x]=min(low[x],dfn[y]);}}if (low[x]==dfn[x]) {++vc;while (1) {int t=s.top(); s.pop(); ins[t]=0;bel[t]=vc;siz[vc]++;if (t==x) break;}}
}bool cmp(int x,int y) {return a[x]>a[y];
}int main() {n=read(); m=read(); k=read();for (ri i=1;i<=n;i++) a[i]=read();for (ri i=1;i<=m;i++) {u[i]=read(); v[i]=read();to[u[i]].push_back(v[i]);}for (ri i=1;i<=n;i++) if (!dfn[i]) tarjan(i);for (ri i=1;i<=m;i++) {if (bel[u[i]]!=bel[v[i]]) siz[bel[v[i]]]++;}for (ri i=1;i<=n;i++) id[i]=i;sort(id+1,id+n+1,cmp);int ans=0,cnt=0;for (ri i=1;i<=n;i++) {int cur=id[i];if (siz[bel[cur]]>1) {siz[bel[cur]]--;ans+=a[cur];if (++cnt==k) {printf("%d\n",ans);return 0;}}}printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/shxnb666/p/11437503.html

【yLOI2018】锦鲤抄相关推荐

  1. [yLOI2018] 锦鲤抄

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

  2. 计算机音乐锦鲤抄,锦鲤抄 MIDI File Download :: MidiShow

    Introduction 锦鲤抄midi "锦鲤抄" is a MIDI music piece in Classical Music style, played by Acous ...

  3. P5008-[yLOI2018]锦鲤抄【tarjan】

    正题 题目链接:https://www.luogu.com.cn/problem/P5008 题目大意 给出nnn个点mmm条边的一张有向无环图,你每次可以选择一个有入度的点获取其点权然后删除这个点. ...

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

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

  5. 使用python 定时发送微信信息给喜欢的人

    原创 使用python 定时发送微信信息给喜欢的人 2019-11-08 16:34:18 冒牌技术小哥 阅读数 171 文章标签: python 更多 分类专栏: python 版权声明:本文为博主 ...

  6. 【NOI2022】PV「什么是信息学精神?」

    [NOI2022]PV「什么是信息学精神?」 [NOI2022]PV「什么是信息学精神?」_哔哩哔哩_bilibili [最美教师]徐先友老师:用10年带出一支信息学强队 [最美教师]徐先友老师:用1 ...

  7. 天刀服务器在线人数统计,天刀手游各大区活跃人数统计 神刀削弱后不降反增!...

    随着所有玩家达到90级并且新一轮职业调整之后,各项数据也有了改变.另外随着剑荡的临近,各位大佬也开始逐渐转职等待剑荡,我们看看都有哪些变化! 1.前言 等级封存:少侠们在新版本之前最高只能达到90级满 ...

  8. NOI2019滚粗记

    Day -15 期末考完了,爆炸爆炸,就连数学和物理都错了好多傻*错误QwQ 哎呀管他的,NOI我来了! 跑到广附集训来了23333 Day -14 -- -2 做题,听题,哇和一群队爷在一个教室,真 ...

  9. HTML5CSS3基础:HTML的图片、音频、视频(3)

    该篇文章对图片.音频.视频的格式和常用标签使用作了个简单总结,主要还是说明这三者在html中如何使用. 文章目录 历篇文章目录 第四节:HTML的图片.音频.视频 前言 一.图片 1.格式 2.标签 ...

最新文章

  1. 你现在还在使用刷脸支付吗?不,刷手支付已来!!!不侵犯隐私、秒速支付...
  2. DataTable 排序
  3. ML之XGBoost:XGBoost算法模型(相关配图)的简介(XGBoost并行处理)、关键思路、代码实现(目标函数/评价函数)、安装、使用方法、案例应用之详细攻略
  4. 字段计算器中的功能_Flask实践:计算器
  5. 全球和国产十大AI芯片
  6. 我的物联网大学【第13章】:王强的逆袭翻身
  7. 单片机毕业设计 stm32万能红外遥控器
  8. “红山开源”创新论坛 | ChinaOSC
  9. 【DS1302驱动】
  10. 5736. Single-Threaded CPU
  11. jenkins,maven--创建自由风格的软件项目任务
  12. 搭建8086汇编语言学习环境——dosbox
  13. css中的z-index层级问题
  14. C:通过三边判断三角形种类
  15. HP-SuperDome MP收集日志
  16. 2W 字详解 Redis 集群环境搭建实践
  17. 5、玩转树莓派音频——打造便携式合成器
  18. EntityFrameWork数据迁移——暨改变数据库结构的方法
  19. vscode之 Couldn‘t find a tree builder with the features you requested: lxml. Do you need to install a
  20. 【编程题练习】牛客-阿里:二叉树(卡特兰数)

热门文章

  1. 5G、物联网和人工智能:2021年的艺术和技术工作
  2. 【Robot】 信息安全自学教程汇总 转自【Eastmount 】
  3. 这篇文章告诉你几款必备软件
  4. 影视剪辑师考证+课程 自媒体人的必备证书 2022年爆款证书
  5. Oracle 学习——变量
  6. 三大背包问题c++(秀儿,你坐下好吗?)
  7. 学校放学铃声响了...3分钟理解【观察者模式】
  8. 【设计模式】观察者模式(Observer)
  9. 20217高考成绩查询,2017年高考各分数段的官方统计!
  10. 第一次用IDEA创建maven工程时间