社区讨论
逆天数据
P4799[CEOI 2015] 世界冰球锦标赛 (Day2)参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mjf2mn1m
- 此快照首次捕获于
- 2025/12/21 09:51 3 个月前
- 此快照最后确认于
- 2025/12/23 16:15 3 个月前
rt,输入m个数据可拿50分
CPP#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL p[50],a[1<<22],b[1<<22],gs1,gs2,m,n,ans;
void dfs1(LL dep,LL s){
if(s>m){
return;
}
if(dep>n/2){
a[++gs1]=s;
return;
}
dfs1(dep+1,s);
dfs1(dep+1,s+p[dep]);
}
void dfs2(LL dep,LL s){
if(s>m){
return;
}
if(dep>n){
b[++gs2]=s;
return;
}
dfs2(dep+1,s);
dfs2(dep+1,s+p[dep]);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++){//注意此处为m
scanf("%lld",&p[i]);
}
dfs1(1,0);
dfs2(n/2+1,0);
//sort(a+1,a+gs1+1);
sort(b+1,b+gs2+1);
for(int i=1;i<=gs1;i++){
ans+=upper_bound(b+1,b+gs2+1,m-a[i])-b-1;
}
cout<<ans;
return 0;
}
https://www.luogu.com.cn/record/254296177
回复
共 0 条回复,欢迎继续交流。
正在加载回复...