zoukankan      html  css  js  c++  java
  • 三值排序——usaco

    求最小排序交换次数
    贪心做
    View Code
    #include<stdio.h>
    #include
    <algorithm>
    #include
    <iostream>
    using namespace std;

    int b[1009],a[1009];

    int min(int a,int b)
    {
    if(a>b)return b;
    else return a;
    }
    int max(int a,int b)
    {
    if(a>b)return a;
    else return b;
    }

    int main()
    {
    int n;
    int add[6];
    while(scanf("%d",&n)!=EOF)
    {
    memset(add,
    0,sizeof(add));

    int i;
    for(i=0;i<n;i++)
    {
    scanf(
    "%d",&a[i]);
    b[i]
    =a[i];
    }

    sort(
    &a[0],&a[n]);
    int all=0;
    for(i=0;i<n;i++)
    {
    if(a[i]==1&&b[i]==2)
    add[
    0]++;
    else if(a[i]==2&&b[i]==1)
    add[
    1]++;
    else if(a[i]==2&&b[i]==3)
    add[
    2]++;
    else if(a[i]==3&&b[i]==2)
    add[
    3]++;
    else if(a[i]==1&&b[i]==3)
    add[
    4]++;
    else if(a[i]==3&&b[i]==1)
    add[
    5]++;
    }
    all
    =min(add[0],add[1])+min(add[2],add[3])+min(add[4],add[5]);
    all
    +=(max(add[0],add[1])-min(add[0],add[1])+max(add[2],add[3])-min(add[2],add[3])+max(add[4],add[5])-min(add[4],add[5]))/3*2;
    printf(
    "%d\n",all);
    }
    }

      

  • 相关阅读:
    上采样和下采样
    二、决策树算法
    一、实现贝叶斯算法
    Centos7 安装vscode
    Centos安装IDEA
    Centos设置自带中文输入法
    Centos 安装mysql
    Centos,tomcat
    Centos 7 安装JDK
    Centos7 安装rar,unrar,zip,unzip
  • 原文地址:https://www.cnblogs.com/huhuuu/p/2107159.html
Copyright © 2011-2022 走看看