問題の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;
}

おすすめ

転載: www.cnblogs.com/Flash-plus/p/12028335.html