蒟蒻求助
查看原帖
蒟蒻求助
341091
End_Sunset楼主2022/7/19 17:55

30分,查不出错误,求救

#include<cstdio>
#include<iostream>
#include<map>
#include<algorithm>
using namespace std;

int n,m,k[105],p[105],a[1000000],b[1000000],ans,cnt,bnt;


void dfs(int r,int l,int t,int x){
	if(r>l){
		if(t==1) a[++cnt]=x;
		else b[++bnt]=x;
		return;
	}
	int mod=k[r];
	for(int i=1; i<=m; i++){
		for(int j=1; j<=p[r]; j++)
			mod*=i;
		dfs(r+1,l,t,x+mod);
		mod=k[r];
	}
}

int main(){
	cin>>n>>m;
	for(int i=1; i<=n; i++)
		cin>>k[i]>>p[i];
	dfs(1,n/2,1,0);
	dfs(n/2+1,n,2,0);
	sort(a+1,a+cnt+1);
	sort(b+1,b+bnt+1);
	for(int i=1; i<=cnt; i++)
		ans+=(upper_bound(b+1,b+bnt+1,-a[i])-lower_bound(b+1,b+bnt+1,-a[i]));
	cout<<ans;
    return 0;
}

30分,其余点RE了

2022/7/19 17:55
加载中...