首页 > 其他 > 详细

Sorting a Three-Valued Sequence

时间:2017-07-09 11:35:05      阅读:203      评论:0      收藏:0      [点我收藏+]

链接

分析:首先我们先对其进行排序,并看排序以后有多少个元素顺序是对的,接着我们看有多少个元素经过一次交换可以得到的,最后剩下的元素就是经过两次交换可以得到的了。

技术分享
 1 /*
 2     PROB:sort3
 3     ID:wanghan
 4     LANG:C++
 5 */
 6 #include "iostream"
 7 #include "cstdio"
 8 #include "cstring"
 9 #include "string"
10 #include "algorithm"
11 using namespace std;
12 const int maxn=1000+10;
13 int a[maxn],b[maxn];
14 int vis[maxn];
15 int n;
16 int main()
17 {
18     freopen("sort3.in","r",stdin);
19     freopen("sort3.out","w",stdout);
20     scanf("%d",&n);
21     for(int i=1;i<=n;i++){
22         cin>>a[i];
23         b[i]=a[i];
24     }
25     sort(b+1,b+1+n);
26     for(int i=1;i<=n;i++){
27         if(a[i]==b[i]){
28             vis[i]=1;
29         }
30     }
31     int cnt=0;
32     for(int i=1;i<=n-1;i++){
33         if(!vis[i]){
34             for(int j=i+1;j<=n;j++){
35                 if(!vis[j]){
36                     if(a[i]==b[j]&&(b[i]==a[j])){
37                         vis[i]=1,vis[j]=1;
38                         cnt++; break;
39                     }
40                 }
41             }
42         }
43     }
44     int num=0;
45     for(int i=1;i<=n;i++)
46         if(!vis[i])
47             num++;
48     cnt+=(num/3)*2;
49     cout<<cnt<<endl;
50 }
View Code

 

Sorting a Three-Valued Sequence

原文:http://www.cnblogs.com/wolf940509/p/7140796.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!