比赛 国庆欢乐赛2 评测结果 RRRRRRRRRRRRRRRRRRRR
题目名称 魔法卡片 最终得分 0
用户昵称 李奇文 运行时间 0.402 s
代码语言 C++ 内存使用 26.58 MiB
提交时间 2025-10-04 10:57:14
显示代码纯文本
#include<bits/stdc++.h>

using namespace std;
const int N=1e6+5; 
int n,m,q,ans;
int f[N],d[N];
vector<int>a[N];
void dfs(int k,int t){
    if(k==t+1){
        int sum=0;
        for(int i=1;i<=m;i++){
            if(f[i]>0) sum+=i*i;
        }
        ans=max(ans,sum);
        return;
    }
    memset(d,0,sizeof(d));
    for(int i=1;i<=a[k][0];i++){
        f[a[k][i]]++;
        d[a[k][i]]=1;
    }
    cout<<"\n\n";
    dfs(k+1,t);
    for(int i=1;i<=m;i++){
        if(d[i]==1){
            f[i]--;
        }else{
            f[i]++;
        }
    }
    cout<<"\n\n";
    dfs(k+1,t);
    return;
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin>>n>>m>>q;
    for(int i=1;i<=n;i++){
        int len,hs;
        cin>>len;
        a[i].push_back(len);
        for(int j=1;j<=len;j++){
            cin>>hs;
            a[i].push_back(hs);
        }
    }
    while(q--){
        memset(f,0,sizeof(f));
        int l,r;
        ans=0;
        cin>>l>>r;
        dfs(l,r);
        cout<<ans<<"\n";
    }
    return 0;
}