社区讨论

逆天数据

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 条回复,欢迎继续交流。

正在加载回复...