开始 2024-04-13 12:40:00

【2025省选前】20240414更正

结束 2024-04-30 00:00:00
Contest is over.
当前 2025-02-23 16:55:45

t3 code
#include<bits/stdc++.h>
using namespace std;
int limit[]={0,8,5,3,3,2,2,2,2};
int kind[]={0,2,3,5,7,11,13,17,19};
int a[11];
int n;
int otp[550][10];
int p[550];
int v[550];
int ans=0;
int chk(){
	int cnt=0;
	for(int i=1;i<=500;i++) p[i]=0;
	for(int i=1;i<=n;i++){
		bool fl=1;
		for(int j=1;j<=8;j++){
			if(a[j]<otp[i][j]) fl=0;
		}if(fl){
			p[otp[i][9]]+=v[i];
		}
	}for(int i=1;i<=500;i++){
		if(p[i]>0) cnt+=p[i];
	}return cnt;
}void dfs(int id){
	if(id>=9){
		ans=max(chk(),ans);
		return ;
	}for(int i=0;i<=limit[id];i++){
		a[id]=i; 
		dfs(id+1);
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int x;cin>>x>>v[i];
		for(int j=1;j<=8;j++){
			while(x%kind[j]==0) otp[i][j]++,x/=kind[j];
		}otp[i][9]=x;
		//cout<<x;
	}dfs(1);
	cout<<ans<<endl;
    return 0;
}

SegTree  •  10个月前

hack: 2 2 -1 46 2


2338bitexplo  •  10个月前

比赛已结束。