听灌佬多
  • 板块灌水区
  • 楼主jw232131ren
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/25 22:15
  • 上次更新2024/10/26 06:31:03
查看原帖
听灌佬多
1243465
jw232131ren楼主2024/10/25 22:15

P11214 梦熊T2 52分求调

#include<bits/stdc++.h>
#define int long long
using namespace std;
int m[200001],n[200001];
bool s[200001];
struct x{
	int a1;
	int b1;
}k[400001];
bool cmp1(x a,x b){
	return a.a1<b.a1;
}
signed main(){
	int a,ans=1,t,tot;
	cin>>a;
	t=a-1;
	for(int i=1;i<=a;i++){
		scanf("%d",&m[i]);
	}
	for(int i=1;i<=a;i++){
		scanf("%d",&n[i]);
	}
	for(int i=1;i<=a;i++){
		k[2*i-1].a1=m[i]-n[i];
		k[2*i].a1=n[i]-1;
		k[2*i-1].b1=k[2*i].b1=i;
	}
	sort(k+1,k+1+a*2,cmp1);
	for(int i=1;i<=a*2;i++){
		if(!s[k[i].b1]){
			ans+=k[i].a1*pow(2,t);
			s[k[i].b1]=1;
		}else{
			ans+=k[i].a1*pow(2,t+1);
			break;
		}
		t--;
	}
	cout<<ans%1000000007;
	return 0;
}
2024/10/25 22:15
加载中...