BZOJ 1529: [POI2005]ska Piggy banks
来源:互联网 发布:java jdk 32位 编辑:程序博客网 时间:2024/06/06 15:49
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.
分析
我们可以想到一种并查集的优越做法
合并完统计fa[i]=i的个数即可。。
代码
#include <bits/stdc++.h>#define N 1000005int read(){ int x = 0, f = 1; char ch = getchar(); while (ch < '0' || ch > '9') {if (ch == '-') f = -1; ch = getchar();} while (ch >= '0' && ch <= '9') {x = x * 10 + ch - '0'; ch = getchar();} return x * f;}int fa[N];int find(int x){ return fa[x] == x ? x : fa[x] = find(fa[x]);}int main(){ int n = read(); for (int i = 1; i <= n; i++) fa[i] = i; for (int i = 1; i <= n; i++) { int x = read(); int p = find(i), q = find(x); if (p != q) fa[q] = i; } int ans = 0; for (int i = 1; i <= n; i++) if (fa[i] == i) ans++; printf("%d\n", ans);}
阅读全文
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】【题解】【并查集】
- PAT 乙级 2023
- Android进度条ProgressBar颜色的渐变设置
- Medians and Order Statistics
- 使用28377S进行ADC采样时配置错误导致波形畸变问题
- c++ 子类父类 的构造函数调用顺序
- BZOJ 1529: [POI2005]ska Piggy banks
- STL(二十)priority_queue优先队列容器
- Linux下显示颜色
- 与串口通信相关
- Java Socket学习(三)——客户端之间通信
- leetcode 35. Search Insert Position
- 基于pdf.js简单在线pdf文件预览跨域解决方案,兼容性好!
- gson 2.7 学习笔记
- HDU 1084 What Is Your Grade?(排序)