标签:
Time Limit: 1 Sec Memory Limit: 256 MB
对于每组数据:
输出最多剩下的不同的数的个数
4
1 3 1 2
1
题意
题解:
最简单的做法就是按照数量排序,然后贪心做就好了~
不过水题,各有各的水法
代码:
//qscqesze #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #include <sstream> #include <queue> #include <typeinfo> #include <fstream> #include <map> #include <stack> typedef long long ll; using namespace std; //freopen("D.in","r",stdin); //freopen("D.out","w",stdout); #define sspeed ios_base::sync_with_stdio(0);cin.tie(0) #define maxn 200001 #define mod 10007 #define eps 1e-9 int Num; char CH[20]; //const int inf=0x7fffffff; //нчоч╢С const int inf=0x3f3f3f3f; /* inline void P(int x) { Num=0;if(!x){putchar(‘0‘);puts("");return;} while(x>0)CH[++Num]=x%10,x/=10; while(Num)putchar(CH[Num--]+48); puts(""); } */ //************************************************************************************** inline ll read() { int x=0,f=1;char ch=getchar(); while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();} while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();} return x*f; } inline void P(int x) { Num=0;if(!x){putchar(‘0‘);puts("");return;} while(x>0)CH[++Num]=x%10,x/=10; while(Num)putchar(CH[Num--]+48); puts(""); } int a[101]; int main() { int n; while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) a[i]=0; for(int i=1;i<=n;i++) { int tmp=read(); a[tmp]=1; } int k=read(); k=n-k; int ans=0; for(int i=1;i<=n;i++) { if(a[i]) ans++; } P(min(ans,k)); } }
标签:
原文地址:http://www.cnblogs.com/qscqesze/p/4458550.html