比赛 国庆欢乐赛2 评测结果 TTETEEEETTTTTTTTTTTT
题目名称 魔法卡片 最终得分 0
用户昵称 梦那边的美好TT 运行时间 30.774 s
代码语言 C++ 内存使用 10.53 MiB
提交时间 2025-10-04 12:06:47
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,q,x[1000001],l,r,vis[1000001],s,a[1001][1001],pd[1000001];
ll ans;
void dfs(int l,int r,int p){
    if(p<=r){
        vis[p]=1;
        dfs(l,r,p+1);
        vis[p]=0;
        dfs(l,r,p+1);
    }else{
        memset(pd,0,sizeof(pd));
        for(int i=l;i<=r;i++){
            for(int j=1;j<=m;j++){
                if(vis[i]==1&&a[i][j]==0) pd[j]=1;
                else if(vis[i]==0&&a[i][j]==1) pd[j]=1;
            }
            ll sum=0;
            for(int j=1;j<=m;j++) if(pd[j]==1) sum+=j*j;
            ans=max(sum,ans);
        }
    }
}
int main(){
    freopen("magic.in","r",stdin);
    freopen("magic.out","w",stdout);
    cin>>n>>m>>q;
    for(int i=1;i<=n;i++){
        cin>>x[i];
        for(int j=0;j<x[i];j++){
            cin>>s;
            a[i][s]=1;
        }
    }
    while(q--){
        cin>>l>>r;
        ans=0;
        dfs(l,r,l);
        cout<<ans<<endl; 
    }
    return 0;
}