Codeforces AIM Tech Round 4 (Div. 2) C Sorting by Subsequences (dfs)
来源:互联网 发布:阿里郎软件 编辑:程序博客网 时间:2024/06/17 06:28
也不算dfs吧,因为每一个数只能出现一次,所以他必要找到”下家”才行,也就是他该在的位置,那么这是一个连锁的反应.
/* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>#include <math.h>#include <string>using namespace std;#define FFF freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define MP make_pair#define PB push_backtypedef long long LL;typedef unsigned long long ULL;const int MAXN = 1e5+17;const int MAXM = 20;const int INF = 0x7fffffff;const int MOD = 1e9+7;int a[MAXN],b[MAXN],vis[MAXN];map<int,int > mp;vector<int > ans[MAXN];void dfs(int plc,vector<int > & v){ //cout<<plc<<endl; v.push_back(plc); vis[plc]=1; if(!vis[mp[a[plc]]]) dfs(mp[a[plc]],v);}int main(){ #ifndef ONLINE_JUDGE FFF #endif int n; cin>>n; for (int i = 1; i <= n; ++i) { scanf("%d",&a[i]); b[i] = a[i]; } sort(b+1, b+n+1); for (int i = 1; i <= n; ++i) { mp[b[i]] = i; } int x= 0; for (int i = 1; i <= n; ++i) { if(!vis[i]) { dfs(i,ans[x++]); } } cout<<x<<endl; for (int i = 0; i < x; ++i) { printf("%d ",ans[i].size() ); for (int j = 0; j < ans[i].size(); ++j) { printf("%d%c",ans[i][j],j==ans[i].size()-1?'\n':' '); } } return 0;}
阅读全文
0 0
- Codeforces AIM Tech Round 4 (Div. 2) C Sorting by Subsequences (dfs)
- AIM Tech Round 4 (Div. 2) C. Sorting by Subsequences
- CF C. Sorting by Subsequences AIM Tech Round 4 (Div. 2)(简单模拟)
- AIM Tech Round 4 (Div. 2) C
- Codeforces AIM Tech Round (Div. 2) 题解
- 【codeforces】AIM Tech Round 3 (Div. 2)
- codeforces AIM Tech Round 3 (Div. 2)
- Codeforces AIM Tech Round 4 (Div. 2) A Diversity
- Codeforces AIM Tech Round 4 (Div. 2) 总结
- Codeforces AIM TECH Round 4 (Div 2) 题解 (ABCD)
- Codeforces AIM Tech Round 4 (Div. 2) A. Diversity
- (组合)Codeforces AIM Tech Round 4 (Div. 2) B. Rectangles
- AIM Tech Round 4 (Div. 2) B, C 题解
- AIM Tech Round 4 (Div. 2) B
- AIM Tech Round 4 (Div. 2)
- Codeforces AIM Tech Round (Div. 2) A. Save Luke
- Codeforces AIM Tech Round (Div. 2) B. Making a String
- Codeforces AIM Tech Round (Div. 2)解题报告
- 使用openfire安装虚拟服务器
- CALayer
- app打包上架
- UICollectionView的基本使用
- 使用UIToolBar给textFiled的inputView添加按钮
- Codeforces AIM Tech Round 4 (Div. 2) C Sorting by Subsequences (dfs)
- mac下mysql初学
- django项目创建的步骤
- django连接mysql数据库
- Atlassian插件开发
- Atlassian插件开发
- Atlassian插件开发
- Atlassian插件开发
- Texture Packer 3.x 破解版