AIM Tech Round 4 (Div. 2) C. Sorting by Subsequences
来源:互联网 发布:studio2303a扫描软件 编辑:程序博客网 时间:2024/06/05 05:27
题目大意
每次选一个子序列,对它们进行排序,每个位置只能选1次,问最多选的次数。
题解
随便划一划就觉得是置换,然后就觉得很有道理,然后猜结论,然后xjb码一码,然后pp,然后ac。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int read(){ char ch=getchar();int f=0; while(ch<'0'||ch>'9') ch=getchar(); while(ch>='0'&&ch<='9') {f=f*10+(ch^48);ch=getchar();} return f;}int n,cnt;bool vis[100005];int group[100005],size[100005];struct data{ int num; int id; int group;}a[100005];int cmp(data x,data y){ return x.num<y.num;}int cmp2(data x,data y){ return x.group<y.group;}int main(){ n=read(); for(int i=1;i<=n;i++) { scanf("%d",&a[i].num); a[i].id=i; } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++) { int now=i; if(!vis[i]) cnt++; while(!vis[now]) { vis[now]=1; a[now].group=cnt; now=a[now].id; size[cnt]++; } } printf("%d\n",cnt); sort(a+1,a+n+1,cmp2); int tmp=0; for(int i=1;i<=cnt;i++) { printf("%d ",size[i]); for(int j=1;j<=size[i];j++) { printf("%d ",a[++tmp].id); } puts(""); }}
阅读全文
0 0
- AIM Tech Round 4 (Div. 2) C. Sorting by Subsequences
- Codeforces AIM Tech Round 4 (Div. 2) C Sorting by Subsequences (dfs)
- CF C. Sorting by Subsequences AIM Tech Round 4 (Div. 2)(简单模拟)
- AIM Tech Round 4 (Div. 2) C
- AIM Tech Round 4 (Div. 2) B, C 题解
- AIM Tech Round 4 (Div. 2) B
- AIM Tech Round 4 (Div. 2)
- AIM Tech Round (Div. 2) C. Graph and String
- AIM Tech Round 3 (Div. 2) C.Letters Cyclic Shift
- AIM Tech Round 3 (Div. 2) C(贪心)
- CF708A(AIM Tech Round 3 (Div. 2) - C)
- AIM Tech Round (Div. 2) C. Graph and String
- AIM Tech Round (Div. 2)-C. Graph and String
- Codeforces AIM Tech Round 4 (Div. 2) A Diversity
- AIM Tech Round 4 (Div. 2) A. Diversity
- AIM Tech Round 4 (Div. 2) B. Rectangles
- AIM Tech Round 4 (Div. 2) D. Interactive LowerBound
- Codeforces AIM Tech Round 4 (Div. 2) 总结
- Mybatis的if test字符串比较问题
- ST表算法详解
- Gym
- 在线编程无法在sublime中使用input()和raw_input()的解决方法
- 创建二维矩阵并矩阵求和再转换
- AIM Tech Round 4 (Div. 2) C. Sorting by Subsequences
- Outlook邮箱遭攻击
- C#图片转二进制、二进制转图片
- 皮尔逊相关系数JAVA实现
- 用两个栈实现队列、旋转数组的最小数、斐波那契数列、青蛙跳台阶、矩形覆盖 --漫漫算法路 刷题篇
- Python Study (03)对象的属性
- Yii2下拉框实现
- yii 多条件搜素
- 矩阵价值和