Mouse Hunt
Mouse Hunt
给定一个n个点的图,每个点有权值\(c_i\),并且只有一条出边。现在你要在一些点上打标记,使得从任何一个点出发最终都会经过有标记的点。求标记点的权值和最小值。
就是找环啊!拓扑排序啊!
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=2e5+5;
int n, c[maxn], a[maxn], in[maxn], vis[maxn];
int q[maxn], h, t, ans;
int dfs(int now){
vis[now]=1;
if (vis[a[now]]) return c[now];
return min(c[now], dfs(a[now]));
}
int main(){
scanf("%d", &n); int now;
for (int i=1; i<=n; ++i) scanf("%d", &c[i]);
for (int i=1; i<=n; ++i){ scanf("%d", &a[i]); ++in[a[i]]; }
for (int i=1; i<=n; ++i) if (!in[i]) q[t++]=i;
while (h<t){
now=q[h++]; --in[a[now]];
if (!in[a[now]]) q[t++]=a[now];
}
for (int i=1; i<=n; ++i) if (in[i]&&!vis[i]) ans+=dfs(i);
printf("%d\n", ans);
return 0;
}
Mouse Hunt的更多相关文章
- 【Edu49 1027D】 Mouse Hunt DFS 环
1027D. Mouse Hunt:http://codeforces.com/contest/1027/problem/D 题意: 有n个房间,每个房间放置捕鼠器的费用是不同的,已知老鼠在一个房间x ...
- CF1027D Mouse Hunt 思维
Mouse Hunt time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...
- Codeforces B. Mouse Hunt(强连通分解缩点)
题目描述: Mouse Hunt time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- Mouse Hunt CodeForces - 1027D(思维 找环)
Medicine faculty of Berland State University has just finished their admission campaign. As usual, a ...
- Codeforces 1027D Mouse Hunt (强连通缩点 || DFS+并查集)
<题目链接> 题目大意: 有n个房间,每个房间都会有一只老鼠.处于第i个房间的老鼠可以逃窜到第ai个房间中.现在要清理掉所有的老鼠,而在第i个房间中防止老鼠夹的花费是ci,问你消灭掉所有老 ...
- 【CF1027D】Mouse Hunt(拓扑排序,环)
题意:给定n个房间,有一只老鼠可能从其中的任意一个出现, 在第i个房间设置捕鼠夹的代价是a[i],若老鼠当前在i号房间则下一秒会移动到b[i]号, 问一定能抓住老鼠的最小的总代价 n<=2e5, ...
- 【Codeforces 1027D】Mouse Hunt
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 先求出来强连通分量. 每个联通分量里面,显然在联通块的尽头(没有出度)放一个捕鼠夹就ok了 [代码] #include <bits/st ...
- 题解 CF1027D 【Mouse Hunt】
这道题原本写了一个很复杂的DFS,然后陷入绝望的调试. 看了一下题解发现自己完全想复杂了. 这里大概就是补充一些题解没有详细解释的代码吧... (小声BB)现在最优解rank4(话说$O2$负优化什么 ...
- CF1027D Mouse Hunt题解
题目: 伯兰州立大学的医学部刚刚结束了招生活动.和以往一样,约80%的申请人都是女生并且她们中的大多数人将在未来4年(真希望如此)住在大学宿舍里. 宿舍楼里有nn个房间和一只老鼠!女孩们决定在一些房间 ...
随机推荐
- MyCAT 1.6 安装部署
1 mycat 安装部署 1 下载解压Mycat-server-1.6-RELEASE-20161010173036-linux.tar.gz 到/usr/local/mycat 2 下载解压jdk- ...
- jQuery UI vs Kendo UI & jQuery Mobile vs Kendo UI Mobile
jQuery UI vs Kendo UI http://jqueryuivskendoui.com/#introduction jQuery Mobile vs Kendo UI Mobile ht ...
- Ubuntu登录异常: 输入正确的密码, 但是却无法进入系统, 总是返回到登录界面, 但是用ctrl+alt+F1-F文字界面登录都可以进入。
今天打开电脑的时候, 在输入密码之后, 未进入ubuntu的桌面, 而是显示了几行英文之后有返回到了登录界面.显示的英文如下: could not write bytes: Broken pipe ...
- sort排序应用
private static int SortTestObj2Compare(TestSortClass obj1, TestSortClass obj2) { ...
- 未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService...匹配的导出
***以下操作后一定要重启VS,重启VS,重启VS重要的事情说三遍*** //************************************************************* ...
- 使用网络用户命令行工具的/passwordreq:yes
提示:"新建域时,本地administrator帐户将成为域administrator账户.无法新建域,因为本地administrator账户密码不符合要求.目前,本地administrat ...
- day17-jdbc 8.ResultSet介绍
但是这些东西在mysql那里有问题.mysql的驱动不是很完善.getClob().getBlob()不好使不是因为程序的问题,而是因为mysql驱动的问题,oracle驱动就没有这个问题,证明ora ...
- ROS Learning-017 Arduino-For-ROS-002 第一个程序: Hello World
Arduino For ROS-002 - 第一个程序: Hello World 我的Ubuntu系统:Ubuntu 14.04.10 TLS 32位 Arduino的版本:Arduino 1.6.1 ...
- 使用RSS提升DPDK应用的性能(转)
本文描述了RSS以及在DPDK中如何配置RSS达到性能提升和统一分发. 什么是RSS RSS(Receive Side Scaling)是一种能够在多处理器系统下使接收报文在多个CPU之间高效分发的网 ...
- 华为JAVA机试流程
1.JAVA机试流程:①打开IE浏览器,输入机试系统IP地址(以当天告知的地址为准):②输入姓名.手机,选择“C/C++”或“JAVA”,登录:③登录后显示题目,阅读题目并点击页面最下方的“下载框架文 ...