codeforce1163B2. Cat Party (Hard Edition)思维

    xiaoxiao2022-07-14  173

    链接:B2. Cat Party (Hard Edition)

    题意:

    先给个n 然后给n个数组成的数组 要求输出一个k,满足前k个数去掉一个数之后剩下每种数的数量相同。 输出k的最大值。

    分析:

    读入的时候记录前n个数字每一个数字出现的次数->出现的次数出现的次数(听起来有点绕) 看代码更好理解

    ps:别人的思路,这思路好厉害,记录一下
    #include<iostream> typedef long long ll; const int inf=0x3f3f3f3f; const int inn=0x80808080; using namespace std; const int maxm=1e5+5; int a[maxm]; int b[maxm]; int main(){ int n; cin>>n; int ans=1; for(int i=1;i<=n;i++){ int t; cin>>t; a[t]++; b[a[t]]++; if(a[t]*b[a[t]]==i&&i!=n){ ans=i+1; } if(a[t]*b[a[t]]==i-1){ ans=i; } } cout<<ans<<endl; return 0; }
    最新回复(0)