• Atcoder ARC 082C/D


    C - Together

    传送门:http://arc082.contest.atcoder.jp/tasks/arc082_a

    本题是一个数学问题。

    有一个长度为n的自然数列a[1..n],对于每一个a[i],有三种操作:

    ①inc a[i];

    ②dec a[i];

    ③do nothing。

    之后,选择一个自然数x,统计数列中等于x的元素的数目num(x),最大化答案。

    考虑x有以下三种来源:

    x:=inc a[i]while a[i]==x-1;

    x:=dec a[i]while a[i]==x+1;

    x:=a[i]while a[i]==x

    于是,对于每一个xnum(x)的最大值为cnt(x-1)+cnt(x)+cnt(x+1)。

    参考程序如下:

    #include <stdio.h>
    #define MAX_A 100010
    
    int cnt[MAX_A];
    
    int main(void)
    {
        int n;
        scanf("%d", &n);
        for (int i = 0; i < n; i++) {
            int a;
            scanf("%d", &a);
            cnt[++a]++;
        }
        int ans = 0;
        for (int i = 0; i < MAX_A; i++) {
            int cur = cnt[i - 1] + cnt[i] + cnt[i + 1];
            if (cur > ans) ans = cur;
        }
        printf("%d
    ", ans);
        return 0;
    }

    D - Derangement

    传送门:http://arc082.contest.atcoder.jp/tasks/arc082_b

    本题是一个数学问题。

    有一个长度为n的数列a[1..n],这是一个1..n的排列。有操作:交换相邻的两个元素。经过有限次交换操作,这个排列将满足:对任意1≤i≤n,有a[i]≠i。求最小的交换次数。

    对于每一个位置,记a[i]=i的情形为Xa[i]≠i的情形为O,则考虑相邻元素的情形:

    ①“XO”(或“OX”):a[i]=ia[i+1]=x(x≠i,i+1)。此时,交换a[i]和a[i+1],即有a[i]=x(x≠i,i+1)a[i+1]=i,为OO”;

    ②“XX”:a[i]=ia[i+1]=i+1。此时,交换a[i]和a[i+1],即有a[i]=i+1a[i+1]=i,为OO”。

    于是,对于每一个X,若这个位置i<n,则交换a[i]和a[i+1];若这个位置为n,则交换a[n-1]和a[n]。自左向右检查即可。

    可见,XO”、“OX”、“XX”三种情形的交换次数均为1,统计出现以上情形的次数即可。

    参考程序如下:

    #include <stdio.h>
    #define MAX_N 100001
    
    int a[MAX_N];
    
    int main(void)
    {
        int n;
        scanf("%d", &n);
        for (int i = 1; i <= n; i++)
            scanf("%d", &a[i]);
        int cnt = 0;
        for (int i = 1; i <= n; i++) {
            if (a[i] == i) {
                cnt++;
                if (i < n && a[i + 1] == i + 1) i++;
            }
        }
        printf("%d
    ", cnt);
        return 0;
    }
  • 相关阅读:
    想出去走走
    一辈子的孤单
    好久不见
    bash 源码分析
    如何查看bash shell 帮助信息?
    mvn使用笔记
    StringTemplate初步使用
    使用tungsten将mysql的数据同步到hadoop
    《大脑幸福密码》
    《跳出头脑,融入生活》
  • 原文地址:https://www.cnblogs.com/siuginhung/p/7750835.html
Copyright © 2020-2023  润新知