bzoj 1529: [POI2005]ska Piggy banks 乱搞
来源:互联网 发布:韩语入门教材知乎 编辑:程序博客网 时间:2024/05/16 19:35
题意
Byteazar 有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar 已经把每个存钱罐的钥匙放到了某些存钱罐里. Byteazar 现在想买一台汽车于是要把所有的钱都取出来. 他想尽量少的打破存钱罐取出所有的钱,问最少要打破多少个存钱罐.
n<=1000000
分析
每次从任意一个点开始往回搜,如果碰到一个已经被选了的点,那么就退出并把搜索栈中的点标为已选。否则的话,若碰到一个点在搜索栈内,则花费1的代价选掉这个点。
代码
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;const int N=1000005;int n,a[N],ans;bool ins[N],vis[N];void dfs(int x){ if (ins[x]) { if (!vis[x]) ans++,vis[x]=1; return; } ins[x]=1; dfs(a[x]); vis[x]=1;}int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=1;i<=n;i++) if (!vis[i]) dfs(i); printf("%d",ans); return 0;}
阅读全文
0 0
- bzoj 1529: [POI2005]ska Piggy banks 乱搞
- bzoj 1529: [POI2005]ska Piggy banks
- BZOJ 1529: [POI2005]ska Piggy banks
- BZOJ 1529: [POI2005]ska Piggy banks
- 1529: [POI2005]ska Piggy banks
- 1529: [POI2005]ska Piggy banks
- 【并查集】【bzoj 1529】: [POI2005]ska Piggy banks
- BZOJ 1529 POI2005 ska Piggy banks 并查集
- BZOJ 1529: [POI2005]ska Piggy banks 并查集
- BZOJ 1529: [POI2005]ska Piggy banks 并查集
- BZOJ 1529 [POI2005]ska Piggy banks 并查集
- POI2005:ska Piggy banks
- [POI2005]SKA-Piggy Banks
- 【POI2005】【BZOJ1529】ska Piggy banks
- bzoj1529: [POI2005]ska Piggy banks
- bzoj1529: [POI2005]ska Piggy banks
- 【bzoj1529】 [POI2005]ska Piggy banks
- 【BZOJ】【P1529】【POI2005】【ska Piggy banks】【题解】【并查集】
- PHPWAMP出现无响应的解决方案,PHPWAMP集成环境在某些系统无响应什么办?
- POJ
- 大话设计模式 第一章 简单工厂模式
- Spark stages和依赖的划分
- [Spring Boot] 4. Spring Boot实现自动配置的原理
- bzoj 1529: [POI2005]ska Piggy banks 乱搞
- 《上帝掷骰子吗?量子物理史话》
- 复习笔记8-27之不同位数机器的各类型长度
- hexo博客的乱码问题
- 重构手法-在对象之间搬移特性
- 欧拉函数与欧拉定理
- IDEA 的使用(快捷键、括号对齐的方式)
- 包含常用功能的 gulpfile.js
- 用NodeJS+Mongodb+Pug开发博客网站