1529: [POI2005]ska Piggy banks
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 1065 Solved: 496
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.
并查集水过。。
2A。。
然而判断的时候是father[i]==i我却写成find(i)==i。。
附上本蒟蒻的代码:

#include<cstdio>
using namespace std;
int n,father[1000001],ans=0;int read()
{int w=0,c=1; char ch=getchar();while (ch<'0' || ch>'9'){if (ch=='-') c=-1;ch=getchar();}while (ch>='0' && ch<='9')w=w*10+ch-'0',ch=getchar();return w*c;
}int find(int x)
{return father[x]==x?x:find(father[x]);
}void merge(int x1,int y1)
{int f1=find(x1),f2=find(y1);if (f1!=f2) father[f1]=f2;
}int main()
{int i,x;n=read();for (i=1;i<=n;i++) father[i]=i;for (i=1;i<=n;i++) x=read(),merge(x,i);for (i=1;i<=n;i++) if (father[i]==i) ans++;printf("%d",ans);return 0;
}

BZOJ1529ska Piggy banks相关推荐

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

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

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

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

  3. bzoj1529: [POI2005]ska Piggy banks

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

  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. [bzoj1529][POI2005]ska Piggy banks 大水题

    1529: [POI2005]ska Piggy banks Time Limit: 5 Sec  Memory Limit: 64 MB [Submit][Status][Discuss] Desc ...

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

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

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

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

  8. [Poi0504]Piggy Banks小猪存钱罐 (并查集)

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

  9. 洛谷·[POI2005]SKA-Piggy Banks 小猪存钱罐【Tarjan 并查集

    初见安~这里是传送门:洛谷P3420 题目描述3 Byteazar the Dragon has NN piggy banks. Each piggy bank can either be opene ...

最新文章

  1. HDU -2243 考研路茫茫——单词情结(AC自动机+矩阵快速幂)
  2. centos下resin4启动一会儿自动关闭处理
  3. LeetCode 676. 实现一个魔法字典(哈希)
  4. ICSharpCode.SharpZipLib 开源压缩库使用示例
  5. 中文python笔记_python 中文编码笔记
  6. 多维随机变量与其对应的分布
  7. XJOI 3877 红蓝字符串
  8. gamma分布 pytorch_pytorch之添加BN的实现
  9. unix下source的使用
  10. js基础-8-浅拷贝和深拷贝
  11. 系统分析师学习笔记(八)
  12. 在Arcgis中更改图层的坐标系
  13. 智能化漏洞挖掘技术总结
  14. python轻松生成pdf文档
  15. Hello 内存 cache 主存 外存
  16. 10Easyx图形编程
  17. python输入十个数字的成语_【一到十十个数字开头的成语】作业帮
  18. Android -- AndroidX库
  19. px,in,mm,pt,dp,dip,sp 之间的换算公式以及区别
  20. 购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。设d为300 000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五人处理。

热门文章

  1. MATLAB取3维数组中的一层?
  2. 微信小程序 点击事件绑定三目方法
  3. Win10电脑Microsoft Store打不开
  4. 十分钟了解ZAB(Zookeeper Atomic Broadcast)协议
  5. 第8章 安全模型、设计和能力的原则
  6. discuz论坛(discuz论坛官网)
  7. 个人站长做什么网站比较实际
  8. ISO26262解析(五)——FTA
  9. 长文干货!走近人脸检测:从?VJ?到深度学习(上)
  10. 计算机软件测试方法及应用实践论文,刍议计算机软件测试方法及应用实践原稿(全文完整版)...