求助
  • 板块P1441 砝码称重
  • 楼主UQAQU
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/26 16:12
  • 上次更新2024/8/26 18:11:26
查看原帖
求助
563069
UQAQU楼主2024/8/26 16:12
#include<bits/stdc++.h>
#define ll long long int
using namespace std;
const int N=1e6+7;
int a[1000],vis[N],b[1000];
int n,m;
int check(ll x){
	int ans=0;
	for (int i=0;i<n;i++){
		if (x & (1<<i)){
			ans++;
		}
	}
	return ans;
}
int main()
{
	ll ans=-1;
	cin>>n>>m;
	for (int i=0;i<=n-1;i++){
		cin>>a[i];
	}
	for (int i=0;i<=(1<<n)-1;i++){
		if (check(i)==n-m){
			ll k=1;
			for (int j=0;j<=n-1;j++){
				if (i&(1<<j)){
					b[a[j]]++;
				}
			}
			for (int l=1;l<=100;l++){
				if (b[l]>=1){
					k=k*(b[l]+1);
				}
				b[l]=0;
			}
			ans=max(ans,k);
		}
	}
	cout<<ans-1<<endl;
    return 0;
}
2024/8/26 16:12
加载中...