HDU4985
来源:互联网 发布:2016淘宝客如何推广 编辑:程序博客网 时间:2024/06/13 07:14
题意:给定一个置换群,找出其中能构成循环的子群,分别输出。
解析:直接模拟即可。(此题感觉不太严谨,因为题目说是要字典序输出,但按照AC的程序来看每个循环的内部并没有保证是字典序,只是保证了循环之间的字典序。。。只是本人的一点理解)
代码:
#include <stdio.h>#include <string.h>#define N 100005int a[N];bool vis[N];int main(){int n;while(~scanf("%d", &n)){for(int i = 1; i <= n; i++)scanf("%d", a+i);memset(vis, false, sizeof(vis));for(int i = 1; i <= n; i++){if(vis[i])continue;printf("(%d", i);vis[i] = true;int x = a[i];while(!vis[x]){vis[x] = true;printf(" %d", x);x = a[x];}printf(")");}puts("");}return 0;}
阅读全文
0 0
- HDU4985
- HDU4985&&bestcoder #7 1001 Little Pony and Permutation(水题)
- wordpress后台创建页面时属性无“模板”选项的问题
- 欧几里得算法
- NodeJs开发环境搭建之Visual Studio Code(二)
- java中String比大小
- 【Sublime】Sublime Text 3 最新可用注册码(免破解)
- HDU4985
- 控制反转与依赖注入
- Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
- vuex中的babel编译mapGetters/mapActions报错解决方法
- 根据模板生成word文档下载
- 执行等级、关机重启
- pat 1007. Maximum Subsequence Sum (25)
- Android部分手机自定义Dialog顶部有条蓝色的线问题
- 学习笔记-2017.07.04-day2,am-HTML链接-HTML头部<head>