zoukankan      html  css  js  c++  java
  • 洛谷 题解 P1684 考验

    本蒟蒻又来发题解啦!

    这个题的正解应该是贪心

    直接找题目的关键:

    韵脚只可能是 “AABB”, “ABAB”, “ABBA” 和“AAAA”中的一种

    我们来观察韵脚,是不是都是2个'A'和2个'B';

    'AAAA'可以看作'A'与'B'相同

    那么现在不就是个简单的贪心了吗?

    如果有两个出现2个相同的数字就ans++

    上代码:

    #include<bits/stdc++.h>//万能头 
    using namespace std;
    
    #define maxn 10010
    int n, m, k, a[maxn], f[maxn], c[maxn], x, ans, flag;
    
    int main()
    {
    scanf("%d", &n);
    for(int i = 1; i <= n; ++ i)
    {
    scanf("%d", &x);//输入 
    a[i] = c[i] = x;
    }
    sort(c + 1, c + n + 1);
    m = unique(c + 1, c + n + 1) - c;//去重 
    for(int i = 1; i <= n; ++ i)
    {
    k = lower_bound(c + 1, c + m + 1, a[i]) - c;
    a[i] = k;
    }
    for(int i = 1; i <= n; ++ i)//求解 
    {
    ++ f[a[i]];
    if(f[a[i]] == 2) 
    {
    ++ flag;
    f[a[i]] = 0;
    }
    if(flag < 2)
    continue; 
    flag = 0;
    ++ ans;
    memset(f, 0, sizeof(f));
    }
    printf("%d", ans);
    return 0;
    }
    
  • 相关阅读:
    ES6、ES7、ES8特性
    【react】XXX项目环境搭建
    map
    vector
    list
    米勒素数模板
    POJ-2421-Constructing Roads(最小生成树 普利姆)
    HDU1301 Jungle Roads(Kruskal)
    Truck History(prime)
    phpstorm快捷键和激活
  • 原文地址:https://www.cnblogs.com/Flash-plus/p/12028335.html
Copyright © 2011-2022 走看看