hdu2270 How Many Friends Will Be Together With You
2016-03-02 13:56
246 查看
仔细看几遍题,就会发现这其实是道傻逼题(一开始推单调性的我应该更加傻逼)。如果a将属于S的b拉走,那么S的变化仅仅是减少了一个元素而已,所以记录每个元素所属的集合以及每个集合的大小即可。
#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> using namespace std; #define clr(a) memset(a,0,sizeof(a)) int ar[1000010],id[1000010],sm[1000010]; bool cl(){ int i,j,k,n; if(scanf("%d",&n)==-1)return 0; for(i=1;i<=n;scanf("%d",&ar[i++])) id[i]=i,sm[i]=1; for(i=1;i<=n;++i){ if(id[i]==id[ar[i]])continue; sm[id[i]]++,sm[id[ar[i]]]--; id[ar[i]]=id[i]; } printf("%d\n",sm[id[1]]-1); return 1; }; int main(){ #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif while(cl()); return 0; };
相关文章推荐
- 交叉编译freetype 2.6.2,个人实际操作
- java学习 MySet简易集合(皮毛)
- Runtime那些事儿(消息机制)
- RAC 环境中最常见的 5 个数据库和/或实例性能问题 (文档 ID 1602076.1)
- ViewPager2
- PAT (Basic Level)1027. 打印沙漏
- json字符串转map
- IOS开发基础知识--碎片35
- 如何实现自定义的数据结构?以线性表的实现为例分析
- JAVA反射机制的作用是什么
- iOS开发之封装水平菜单栏
- 随手收藏,python中的各种类型转换
- 2.自己的Github试用过程
- 摄像头立体成像资料记录--SLAM和MonoSLAM
- 抓取网页数据并解析
- 函数参数的传递问题(指针的指针)【想在函数中分配内存】(指针做参数,即可做输入参数也可做输出参数)
- Java——private,protected,public
- InputStream String与byte数组之间的互转
- <Error>: ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk
- Docker推出了Docker云,给大家介绍下哈!