【yLOI2018】锦鲤抄

题面

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 int

using 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

时间: 2024-10-16 00:34:18

【yLOI2018】锦鲤抄的相关文章

锦鲤抄

锦鲤抄 - 云の泣&银临蝉声陪伴着行云流浪回忆开始后安静遥望远方荒草覆没的古井枯塘匀散一缕过往晨曦惊扰了陌上新桑风卷起庭前落花穿过回廊浓墨追逐着情绪流淌染我素衣白裳阳光微凉 琴弦微凉风声疏狂 人间仓皇呼吸微凉 心事微凉流年匆忙 对错何妨你在尘世中辗转了千百年却只让我看你最后一眼火光描摹容颜燃尽了时间别留我一人 孑然一身凋零在梦境里面萤火虫愿将夏夜遗忘如果终究要挥别这段时光裙袂不经意沾了荷香从此坠入尘网屐齿轻踩着烛焰摇晃所有喧嚣沉默都描在画上从惊蛰一路走到霜降泪水凝成诗行灯花微凉 笔锋微凉难绘虚妄

校内题目锦鲤抄

v> 3.锦鲤抄 (zay.cpp/c) [题目背景] 你在尘世中辗转了千百年 却只让我看你最后一眼 火光描摹容颜燃尽了时间 别留我一人,孑然一身 凋零在梦境里面. ——银临&云の泣<锦鲤抄> [问题描述] 这首歌的文案讲述了这样一个故事: 在一个兵荒马乱的年代,有一位画师叫浅溪,非常喜欢画锦鲤.战火烧到了泰 安,他的邻居都惊慌逃命,只有他不舍得池中锦鲤没有离开.这天晚上庭院失火, 池中的锦鲤化妖,用生命护住了画师的平安. 注意:由于本题题面涉及到文案故事,在下方提供了便于理解的

那个关于浅溪与锦鲤的故事

那个关于浅溪与锦鲤的故事 <锦鲤抄> 亦歌亦史,它来自远古的佚史,褪成了一缕往事云烟,在时间长河中飘渺着,无意中凝进了你的梦境,却在现代绽放异彩. 在现代,有不少朋友为它续写番外,为它续歌传唱,个人认为都是很不错的,都很好的延续了唯美的意境.中国古诗词文化确实唯美,在我们的生活中,随意汲取一点,都可以为我们的作品锦上添花,比如影视,广告,文学,服装设计等等,这些饱含中国风的精美作品,走出国门的时候会是宣扬我们中国文化的很好的典范.------<锦鲤抄>之感 "扶桑画师浅溪

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

依旧是外链 锦鲤抄 [题目背景] 你在尘世中辗转了千百年 却只让我看你最后一眼 火光描摹容颜燃尽了时间 别留我一人,孑然一身 凋零在梦境里面. ——银临&云の泣<锦鲤抄> [问题描述] 这首歌的文案讲述了这样一个故事: 在一个兵荒马乱的年代,有一位画师叫浅溪,非常喜欢画锦鲤.战火烧到了泰安,他的邻居都惊慌逃命,只有他不舍得池中锦鲤没有离开.这天晚上庭院失火,池中的锦鲤化妖,用生命护住了画师的平安. 注意:由于本题题面涉及到文案故事,在下方提供了便于理解的另一题面版本.扶苏被画师和锦鲤的

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

啊啊啊好颓啊...石乐志 (药丸...最近更新的全都是日常了...(果然只做内部题效果滑稽)) 正在考虑把日常部分从科别体改成编日体(什么鬼)反正现在每天都能更新(x OI 整个一周 $dg$ 都没有出现QAQ ($dg:$ 突然回家.jpg) 然后就开了TIM和dg瞎扯矩阵乘法优化DP然后给了我BZOJ_2510... 最后推出来了然后发现是卷积然后妄想通过$FFT$加速(感觉自己拿衣服)然后推了N久没推出来(石乐志啊QAQ) 推完找 $dg$ 要题然而到现在为止没有回复(QAQ)然后开始刚另

[长恨歌] 御宇多年求不得

_ 迷上古风歌曲一年多,最初的入坑作是网络歌手银临的<锦鲤抄>...这位银临是大学的一个学姐... 然后被各种大神轰炸啊,男神西瓜JUN,还有曲爷.老妖等等... 可惜上天弄人啊,个人资质太差~~~ 偶然在微博上得知了<长恨歌>,曲调简单啊~ 这是一个多月前,微博上掀起的祝福王之炀老爷爷的活动,爷爷多次战胜过癌症,希望能够把曾经教书先生教过的长恨歌的曲调留在世间, 现在爷爷走了,这份恩泽长留心中吧~ (据音频怪物改编版演唱,越往后越渣啊~首次尝试神器Audition....) Ly

my dear diary

19.7.31  the first yellow ti get!!!!          xuanxue break....          (and my chinglish is so great)  19.8.1  普及-的提高组原题是什么鬼啊啊?蒟蒻不要面子的吗!哼               或许我写程序有至少1/3的时间在纠结变量名取胜么好?嗯可以总结一个常用变量名表...少纠结一会,哈哈..哈哈..(做“过程函数与递归有感”[滑稽])      19.8.1     告诉我刚入

激动人心的OI歌

歌单: OIer们,累计把\(20\)首歌翻成OI版,共计\(31\)个版本. 1 ???-->Lemon OI 3首 1.1 葛平 1.2 chen_zhe 1.3 kkksc03 2 锦鲤抄-->膜你抄 7首 2.1 chen_zhe 2.2 洛天依 2.3 葛平 2.4 RE-PV 2.5 徵羽摩柯 2.6 江雨泽 2.7 kkksc03 3 我的一个道姑朋友-->我的一个OIer朋友 3首 3.1 大连24中 3.2 chen_zhe 3.3 潜翎 4 北京东路的日子-->

[原抄] Potplayer 1.7.2710 快捷键

对着软件一个一个抄下来的. 打开文件:Ctrl+O[F3] / 简索文件:F12 / 最后文件 Ctrl+Y / 关闭:F4 打开摄像头:Ctrl+J / 打开DVD设备 Ctrl+D 播放.暂停:空格 / 关闭:F4 / 时间定位:G / 章节.书签:H音量控制: 静音:M  /  音量+ ↑  /  音量- ↓播放速度: Z原速  /  X减速  /  C加速 画面大小:全屏:ENTER(回车)  /  1原一半  /  2原大小  /  3原1.5倍  /  4原2倍  /  5最大化画面