1529: [POI2005]ska Piggy banks

Time Limit: 5 Sec  Memory Limit: 64 MB
[Submit][Status][Discuss]

Description

Byteazar 有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar 已经把每个存钱罐的钥匙放到了某些存钱罐里. Byteazar 现在想买一台汽车于是要把所有的钱都取出来. 他想尽量少的打破存钱罐取出所有的钱,问最少要打破多少个存钱罐.

Input

第一行一个整数 N (1 <= N <= 1.000.000) – 表示存钱罐的总数. 接下来每行一个整数,第 i+1行的整数代表第i个存钱罐的钥匙放置的存钱罐编号.

Output

一个整数表示最少打破多少个存钱罐.

Sample Input

4
2
1
2
4

Sample Output


2
In the foregoing example piggy banks 1 and 4 have to be smashed.

HINT

Source

大水题,考虑一些有边相连关系的罐子的关系,无论如何都没有点没有入度
那么在一个联通块中一定有一个点能够到所有点
看联通块个数就完了
#include <bits/stdc++.h>
using namespace std;
int n, vis[1000005], fa[1000005], ans;
int find( int x ){ return x == fa[x] ? x : fa[x] = find( fa[x] ); }
int main(){scanf( "%d", &n );for( int i = 1; i <= n; i++ ) fa[i] = i;for( int i = 1, x; i <= n; i++ ) scanf( "%d", &x ), fa[find(x)] = find(i);for( int i = 1; i <= n; i++ ) if( vis[find(i)] ) continue; else vis[find(i)] = 1, ans++;cout<<ans<<endl;return 0;
}

[bzoj1529][POI2005]ska Piggy banks 大水题相关推荐

  1. bzoj1529: [POI2005]ska Piggy banks

    Description Byteazar 有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar 已经把每个存钱罐的钥匙放到了某些存钱罐里. Byteazar 现在想买一台汽车于 ...

  2. Taran 缩点【bzoj1529】[POI2005]ska Piggy banks

    [bzoj1529][POI2005]ska Piggy banks Description Byteazar 有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar 已经把每个 ...

  3. BZOJ 1529: [POI2005]ska Piggy banks( 并查集 )

    每一连通块砸开一个就可以拿到所有的钱, 所以用并查集求连通块数 ------------------------------------------------------------------- ...

  4. BZOJ_P1529 [POI2005]ska Piggy banks(并查集)

    BZOJ传送门 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1062 Solved: 494 [Submit][Status][Discuss] Des ...

  5. #110-【我也不知道这是什么鬼算法】Ska Piggy Banks

    Description Byteazar 有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar 已经把每个存钱罐的钥匙放到了某些存钱罐里. Byteazar 现在想买一台汽车于 ...

  6. BZOJ1529ska Piggy banks

    1529: [POI2005]ska Piggy banks Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1065 Solved: 496 Descri ...

  7. 第三届山西省赛1004 一道大水题(scanf)

    一道大水题 时间限制: C/C++ 2000ms; Java 4000ms 内存限制: 65535KB 通过次数: 44 总提交次数: 1020 问题描述 Dr. Pan作为上兰帝国ACM的总负责人, ...

  8. 【数据结构】 最小生成树(四)——利用kruskal算法搞定例题×3+变形+一道大水题...

    在这一专辑(最小生成树)中的上一期讲到了prim算法,但是prim算法比较难懂,为了避免看不懂,就先用kruskal算法写题吧,下面将会将三道例题,加一道变形,以及一道大水题,水到不用高级数据结构,建 ...

  9. [Poi2005]Piggy Banks小猪存钱罐

    题目描述 Byteazar有 N 个小猪存钱罐. 每个存钱罐只能用钥匙打开或者砸开. Byteazar已经把每个存钱罐的钥匙放到了某些存钱罐里. Byteazar 现在想买一台汽车于是要把所有的钱都取 ...

最新文章

  1. 四种方案解决ScrollView嵌套ListView问题
  2. 用axis开发webservice实践
  3. python-第二块:time模块和datatime模块
  4. android仿支付宝弹窗,【转】MUI自定义底部弹窗自带遮罩层仿支付宝支付弹窗
  5. 前端学习(2377):项目初始化过程
  6. 怎样使用Pycharm(Python工具)新建项目及创建Python文件
  7. C#代码规范化(代码风格化)的几个函数
  8. 最短路算法floyd
  9. 【转】C#中没有id 没有name C#怎么点击按钮
  10. omnigraffle 画曲线_OmniGraffle使用的10个小技巧
  11. php null空值(转)
  12. 我的世界java版forge放在哪_我的世界forge怎么装mod(mod安装方法介绍)
  13. 图解机器学习基本概念及分类
  14. 影视剪辑,视频剪辑素材音效哪里找?超实用剪辑入门必备素材
  15. 智能车图像处理3-中线累积差值的统计
  16. java 时区id对应时区名称,Java 可以或失去的全部的时区ID
  17. C# zxing条形码开源库的简单使用例子
  18. windows文件格式转换为linux格式
  19. Protobuf-net ProtoGen的使用
  20. 高性价比美国WordPress主机WebHostingPad

热门文章

  1. Serializable接口和Parcelable接口
  2. 【Git-7】阿里云Git仓库
  3. 分页计算总页数的算法
  4. ANTLR4 初识语法分析器生成工具 ANTLR
  5. 一条挨踢老狗的 2017 年终总结
  6. Python入门--程序控制-选择结构
  7. GF4的Radiometric Calibration(高分4号的辐射定标)
  8. 注册和启动windows服务
  9. ubuntu下依靠guvcview使用摄像头
  10. Python函数引用