考验-贪心
题目:
https://www.luogu.com.cn/problem/P1684
例子举例:
输入:
7
2 3 3 4 5 3 2
输出:
1
思路:
1.这个数出现次数为4
2.出现超过两对的数的次数大于两次
(ps:记得清空map)
#include<stdio.h> #include<map> using namespace std; int a[4007]; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); map<int,int> ma; int ans=0; int pos=1; for(int i=1;i<=n;i++) { ma[a[i]]++; if(ma[a[i]]==4) { ans++; for(int k=1;k<=i;k++) ma[a[k]]=0; pos=i+1; } if(ma[a[i]]==2) { int res=0; for(int j=pos;j<=i;j++) { if(ma[a[j]]>=2) { res++; } } if(res>=4) { ans++; for(int k=1;k<=i;k++) ma[a[k]]=0; pos=i+1; } } } printf("%d\n",ans); }
浙公网安备 33010602011771号