武汉ACM集训——贪心-6
题解
按照顺序选择诗句,分析题目数据,可以知道组成诗句的条件。
出现两种韵脚并且出现次数都大于等于 2,或者出现一种韵脚并且出现次数大于等于 4 。
遍历诗句,记录数据,判断是否成立,成立则 + 1,并且初始化数据。
AC代码
#include <bits/stdc++.h>
using namespace std;
map<int, int> ans;
int main()
{
int n;
scanf("%d", &n);
int x;
int sum = 0, flag = 0;
// 遍历数据
for (int i = 1; i <= n; ++i)
{
scanf("%d", &x);
ans[x]++;
if (ans[x] == 2)
flag++;
// 出现两种韵脚并且出现次数大于等于 2
if (flag == 2)
{
sum++;
flag = 0;
ans.clear();
}
// 出现一种韵脚并且出现次数大于等于 4
if (ans[x] == 4)
{
sum++;
flag = 0;
ans.clear();
}
}
printf("%d", sum);
return 0;
}