题目链接:传送门

思路:

缩点求最值,但是有一点行不通,如果被选中的点才能缩点,否则缩点没有意义;

所以就先缩选中的点,然后从小到大统计没有缩点的点,就是NO;

如果找最小值,就是一个环里的最小值,然后求和就好了。

注意:

(1)预处理si和mon

(2)对选中的点缩点,不然全部缩点后比较麻烦

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = ;
const int INF = ;
int head[maxn],next[maxn],ver[maxn],tot;
int num[maxn],low[maxn],co[maxn],tim,col,si[maxn];
int st[maxn],top;
int mon[maxn],in[maxn];
int MIN(int x,int y)
{
return x<y?x:y;
}
void Init()
{
for(int i=;i<maxn;i++) si[i]=INF,mon[i]=INF;
tot=;col=;tim=;top=;
}
void addedge(int u,int v)
{
ver[++tot]=v;next[tot]=head[u];head[u]=tot;
}
void Tarjan(int u)
{
int i,v;
low[u]=num[u]=++tim;
st[++top]=u;
for(i=head[u];i;i=next[i]){
v=ver[i];
if(!num[v]){
Tarjan(v);
low[u]=MIN(low[u],low[v]);
}
else if(!co[v]) low[u]=MIN(low[u],num[v]);
}
if(low[u]==num[u]){
col++;
co[u]=col;
si[col]=mon[u];
while(st[top]!=u){
si[col]=MIN(si[col],mon[st[top]]);
co[st[top]]=col;
top--;
}
top--;
}
}
int main(void)
{
int i,j,x,y,n,pp,rr;
scanf("%d%d",&n,&pp);
Init();
for(i=;i<=pp;i++){
scanf("%d%d",&x,&y);
mon[x]=y;
}
scanf("%d",&rr);
for(i=;i<=rr;i++){
scanf("%d%d",&x,&y);
addedge(x,y);
} for(i=;i<=n;i++)
if(!num[i]&&mon[i]!=INF) Tarjan(i); for(i=;i<=n;i++)
if(!num[i]){
printf("NO\n%d",i);
return ;
}
for(i=;i<=n;i++){
for(j=head[i];j;j=next[j]){
if(co[i]!=co[ver[j]]){
in[co[ver[j]]]++;
}
}
} int ans=;
for(i=;i<=col;i++)
if(in[i]==) ans+=si[i];
printf("YES\n%d",ans);
return ;
}

LOJ-10095(缩点的特殊使用)的更多相关文章

  1. loj#2255. 「SNOI2017」炸弹 线段树优化建图,拓扑,缩点

    loj#2255. 「SNOI2017」炸弹 线段树优化建图,拓扑,缩点 链接 loj 思路 用交错关系建出图来,发现可以直接缩点,拓扑统计. 完了吗,不,瓶颈在于边数太多了,线段树优化建图. 细节 ...

  2. Tarjan求强连通分量 缩点

    强连通分量的定义: 在一张有向图中,如果两个点u,v之间能相互到达则称这两个点u,v是强连通的,在这个基础上如果有向图G中的任意两个顶点都强连通,那么称图G是一个强连通图.有向非强连通图的极大强连通子 ...

  3. 洛谷P3387 【模板】缩点 题解

    背景 今天\(loj\)挂了,于是就有了闲情雅致来刷\(luogu\) 题面 洛谷P3387 [模板]缩点传送门 题意 给定一个\(n\)个点\(m\)条边有向图,每个点有一个权值,求一条路径,使路径 ...

  4. LOJ 一本通一句话题解系列:

    第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按 ...

  5. [LOJ#2330]「清华集训 2017」榕树之心

    [LOJ#2330]「清华集训 2017」榕树之心 试题描述 深秋.冷风吹散了最后一丝夏日的暑气,也吹落了榕树脚下灌木丛的叶子.相识数年的Evan和Lyra再次回到了小时候见面的茂盛榕树之下.小溪依旧 ...

  6. LOJ 546: 「LibreOJ β Round #7」网格图

    题目传送门:LOJ #546. 题意简述: 题目说的很清楚了. 题解: 将不包含起点或障碍物的连续的行或列缩成一行或一列,不会影响答案. 处理过后,新的网格图的行数和列数最多为 \(2k + 3\). ...

  7. LOJ 2085: 洛谷 P1587: bzoj 4652: 「NOI2016」循环之美

    题目传送门:LOJ #2085. 两个月之前做的傻题,还是有必要补一下博客. 题意简述: 求分子为不超过 \(n\) 的正整数,分母为不超过 \(m\) 的正整数的所有互不相等的分数中,有多少在 \( ...

  8. BZOJ5017 [Snoi2017]炸弹[线段树优化建边+scc缩点+DAG上DP/线性递推]

    方法一: 朴素思路:果断建图,每次二分出一个区间然后要向这个区间每个点连有向边,然后一个环的话是可以互相引爆的,缩点之后就是一个DAG,求每个点出发有多少可达点. 然后注意两个问题: 上述建边显然$n ...

  9. loj 2336「JOI 2017 Final」绳

    loj 首先,所有位置最多被染色一次,因为要染多次的话,还不如一开始就染成最终的颜色.并且你可以一开始就染好色 因为最终长度为2,那么如果染完后这个序列可以被折完,那么首先最多只有两种颜色,还有就是要 ...

  10. LOJ 2554 「CTSC2018」青蕈领主——结论(思路)+分治FFT

    题目:https://loj.ac/problem/2554 一个“连续”的区间必然是一个排列.所有 r 不同的.len 最长的“连续”区间只有包含.相离,不会相交,不然整个是一个“连续”区间. 只有 ...

随机推荐

  1. 快速干掉Windows Defender

    1.快捷键Win+R,调出"运行"对话框,输入"gpedit.msc",打开组策略编辑器: 2.展开"计算机配置"→"管理模板&q ...

  2. Java实现微信客户端扫码登录

    此篇文章记录自己开发中的微信客户端扫码登录的实例以及步骤,便于以后自行学习记起的关键,看到的网友有借鉴的地方就借鉴,看不懂的也请别吐槽,毕竟每个人的思维和思路以及记录东西的方式不一样: 1.首先需要一 ...

  3. jenkins 多版本 jdk

    最近又开始使用jenkins了,遇到一个问题,开发本地使用的jdk是1.7,而我们jenkins由于需要对docker的插件的支持必须使用1.8. 这样就导致了有的开发的代码在jenkins去代码库c ...

  4. 3D Math Keynote 4

    [3D Math Keynote 4] 1.三角带. 合并三角带能够提升渲染效率. 三角扇. 2.边缩坍,将边缩减为顶点 . 网格消减,使用边缩坍,可以实现渐进式网络. 3.下图左边是面拆分.右边是焊 ...

  5. vue2.0的初始化

    vue2.0的初始化,使用 webpack构建工具生成的项目 直接上代码 main.js文件 // The Vue build version to load with the `import` co ...

  6. 如何在 Koa 中获取 client 的 ip 以及 port

    ctx.body.remoteAddress ctx.body.remotePort

  7. Linux samba多用户挂载

    samba 多用户挂载 通过multiuser挂载选项,使用基于密码验证和cifscreds实现访问控制在默认情况下,samba共享挂载后,是通过挂载时的验证来实现对挂载资源的访问控制.通过新的mul ...

  8. Vue中的~(静态资源处理)

    Webpacked 资源 首先要理解webpack是怎样处理静态资源的. 在*.vue组件中,所有的templates和css都会被vue-html-loader 和 css-loader解析,寻找资 ...

  9. c++学习路线连接

    https://blog.csdn.net/qq_36482772/article/category/7396881/4?

  10. Android 保存图片到相册

    /** * 保存图片到相册 */ public void saveImageToGallery(Bitmap mBitmap) { if (!Environment.getExternalStorag ...