Description

有一张带点权有向图,你要在其中修建若干个检查站,使得对于每一个点 \(p\) ,都有 \(\geq 1\) 个检查站,满足:

  1. 存在一条从这个检查站出发到点 \(p\) 的路径;
  2. 存在一条从点 \(p\) 出发到这个检查站的路径。

    求出修建检查站的点权和的最小值,以及当点权和有最小值时的修建方案数。

Solution

对于每个强连通分量,只需要修建 \(1\) 个检查站。

所以可以考虑缩点,这样最小点权和就是每个强连通分量中最小点权之和。

至于修建方案数,可以考虑乘法原理。总方案数等于每个强连通分量中方案数的乘积。

而每个强连通分量的方案数就是强连通分量中点权等于最小点权的点的个数。

然后这道题目就愉快地做完了。

using std::vector;
struct Edge {
ll to, nex;
} e[1000010];
ll dfn[1000010], low[1000010], dfncnt;
ll s[1000010], in_stack[1000010], tp;
ll belong[1000010], sc, sz[1000010];
ll head[1000010], cnt;
ll ans = 1, ans2;
ll val[1000010];
vector<ll> scc[1000010];
void add(ll u, ll v) {
e[++cnt].to = v;
e[cnt].nex = head[u];
head[u] = cnt;
}
void tarjan(ll u) {
low[u] = dfn[u] = ++dfncnt;
s[++tp] = u, in_stack[u] = 1;
for(ll i = head[u]; i; i = e[i].nex) {
ll v = e[i].to;
if(!dfn[v]) {
tarjan(v);
low[u] = min(low[u], low[v]);
} else if(in_stack[v]) {
low[u] = min(low[u], dfn[v]);
}
}
if(dfn[u] == low[u]) {
ll it = 0;
++sc;
while(s[tp] != u) {
belong[s[tp]] = sc;
sz[sc]++;
in_stack[s[tp]] = 0;
scc[sc].push_back(val[s[tp]]);
--tp;
}
belong[s[tp]] = sc;
sz[sc]++;
in_stack[s[tp]] = 0;
scc[sc].push_back(val[s[tp]]);
--tp;
std::sort(scc[sc].begin(), scc[sc].end());
rep(i, 0, sz[sc] - 1) if(scc[sc][i] == scc[sc][0]) ++it;
ans = ans * it % 1000000007ll;
ans2 += scc[sc][0];
}
}
int main() {
ll n, m;
read(n);
rep(i, 1, n) read(val[i]);
read(m);
rep(i, 1, m) {
ll x, y;
read(x), read(y);
add(x, y);
}
rep(i, 1, n) if(!dfn[i]) tarjan(i);
print(ans2), putchar(' '), print(ans);
return 0;
}

CF427C题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. C#WebService的创建与发布

    VS中新建项目-Web-ASP.NET Web应用程序 然后确定,选择空模版就可以了 其中CRMService.asmx是点击项目新建Web服务(asmx) 这样基本的功能就能用了,然后就是发布 点击 ...

  2. 第6章:深入理解Pod对象

    Pod是最小的部署单元,也是后面经常配置的地方,本章节带你熟悉Pod中常见资源配置及参数. 也就是YAML这部分: ... template: metadata: labels: app: web s ...

  3. 4、saltstack的使用

    官方文档地址:http://repo.saltstack.com/#rhel 4.1.saltstatck介绍: 用户要一致,这里使用的是root用户: 用于批量管理成百上千的服务器: 并行的分发,使 ...

  4. Sherlock and His Girlfriend题解

    题目描述 Sherlock 有了一个新女友(这太不像他了!).情人节到了,他想送给女友一些珠宝当做礼物. 他买了 n件珠宝.第i 件的价值是i+1.那就是说,珠宝的价值分别为2,3,4,-,n+1 . ...

  5. ORA-12560: 解决TNS:协议适配器错误

    1)安装成功,但无法连接数据库 2)网上查找原因:32位的不能运行64位的oracle,而且不会有64位的版本 3)解决办法:大致是修改客户端数据库为32位的(此方法OK) (1)解压instantc ...

  6. hdu 2159 二维完全背包

    Problem Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务.久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级.现 ...

  7. MySQL参数配置

    参数名称 参数说明 缺省值 最低版本要求 user 数据库用户名(用于连接数据库) 所有版本 passWord 用户密码(用于连接数据库) 所有版本 useUnicode 是否使用Unicode字符集 ...

  8. buu 相册

    一.拖入jeb,这个神器里面,感觉对jeb使用还是不熟悉,对我逆向产生了一些障碍. 抓住题目给的提示,邮箱,全局直接搜索,mail. 看下它的交叉引用 找到了发邮件的方法, C2的MAILFROME说 ...

  9. Spring boot中相关的注解

    一.相关类中使用的注解 @RestController:REST风格的控制器 @RequestMapping:配置URL和方法之间的映射 @SpringBootApplication:应用程序入口类 ...

  10. java基础---设计模式(1)

    出处:https://blog.csdn.net/zhangerqing/article/details/8194653 java的设计模式分为三大类 创建型模式: 工厂方法模式.抽象工厂模式.单例模 ...