zoukankan      html  css  js  c++  java
  • HZNUOJ 2508:双峰插云

     


    我们注意到总的颜色种类只有200,故我们可以先处理出所有云朵中每一种颜色有多少朵云朵拥有,此处我们约定用$cnt[] 表示$

    然后暴力枚举将哪朵云分给老薛,记录三个临时变量$Max_{kk}, Max_{xuexue}, pos$

    $分别表示kk能够得到的最大颜色种类数,薛薛能够得到的最大颜色种类数,以及分给薛薛的云朵的下标$

    枚举的时候注意要优先满足$kk, 如果当前得到的Max_{kk} 和之前的一样,再考虑一下薛薛$

    $关于枚举的时候如果得到除了当前云朵外其他云朵的总的颜色总数$

    首先记录一下预处理的$cnt[]中一共有多少个 >= 1 的元素,记为res, 此处用数组下标表示云朵标号$

    $那么在枚举云朵的时候,我们用tmp表示除了这朵云外还剩下多少种不同颜色,显然tmp = res - x$

    $x 表示有几种颜色是只有这朵云拥有的$

    $再枚举这朵云拥有的所有颜色,判断在cnt[] 中这种颜色是不是 刚好为1即可$

    $注意到一朵云的颜色种类数最多只有10.$

    $总的时间复杂度是O(10n)$

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 #define N 100010
     6 
     7 int main() {
     8     int a[N][11];
     9     int b[N];
    10     int f[210];
    11     int n, m, i, j, t, p;
    12     scanf("%d%d",&n, &m);
    13     memset(f, 0, sizeof f);
    14     for (i = 1; i <= n; ++i) {
    15         scanf("%d",&a[i][0]);
    16         for (j = 1; j <= a[i][0]; ++j) {
    17             scanf("%d",&a[i][j]);
    18             f[a[i][j]]++;
    19         }
    20     }
    21     for (i = 1; i <= n; ++i) {
    22         b[i] = 0;
    23         for (j = 1; j <= a[i][0]; ++j)
    24             if (f[a[i][j]] == 1) 
    25                 b[i]++;
    26     }
    27     t = 1;
    28     for (i = 2; i <= n; ++i)
    29         if (b[i] < b[t]) t = i;
    30         else if (b[i] == b[t] && a[i][0] > a[t][0]) t = i;
    31     puts("KK:");
    32     j = 1;
    33     while (j == t) ++j;
    34     printf("%d",j);
    35     for (i = j + 1; i <= n; ++i)
    36         if (i != t) 
    37             printf(" %d",i);
    38     printf("
    ");
    39     puts("Xuexue:");
    40     printf("%d
    ",t);
    41     return 0;
    42 }
    View Code



     

  • 相关阅读:
    jquery中ajax请求的使用和四个步骤示例
    jzoj6094
    2019.03.27【GDOI2019】模拟 T3
    AGC019F
    浅谈高维前缀和
    刷题清单
    为什么要遍历两次?——个人对于kosaraju算法的理解
    我的黑客和渗透测试学习路线
    一个假猪套神器:NET CAT-NC
    kali linux(二):使用与介绍
  • 原文地址:https://www.cnblogs.com/Dup4/p/10010653.html
Copyright © 2011-2022 走看看