zoukankan      html  css  js  c++  java
  • Unrequited Love [ZOJ 3601]

    http://acm.zju.edu.cn/onlinejudge/showSubmission.do?submissionId=3568082

    View Code
    //确定king只有一个后可以在O(N)解决每次询问
    const int MM = 331630;
    const int maxn = 31;
    typedef long long int64;
    #define debug puts("wrong"); 
    
    int N,M,Q;
    char ss[MM][100];
    set<pair<int,int> >sbt;
    map<string,int>mp;
    map<string,int>::iterator it; 
    char str[100]; 
    int cnt,p[MM]; 
    
    int find(string tmp) {
        it=mp.find(tmp);
        if(it!=mp.end()) return it->second; //比mp[tmp]快 
        else return mp[tmp]=cnt++;
    }
    void get_data() {
        int i,j,k,c,t1,t2; 
        scanf("%d%d%d",&N,&M,&Q);
        cnt=1;
        mp.clear(); sbt.clear();
        for(i=0;i<N;i++) {
            scanf("%s%d",str,&c);
            t1=find(str);
            for(j=0;j<c;j++) {
                scanf("%s",str); t2=find(str);
                sbt.insert(make_pair(t1,t2));
            }
        }
        for(i=0;i<M;i++) { 
            scanf("%s%d",str,&c);
            t1=find(str);
            for(j=0;j<c;j++) {
                scanf("%s",str);    t2=find(str);    
                sbt.insert(make_pair(t1,t2));    
            }
        }
    }
    void solve() {
        int i,j,k,c,tmp;
        while(Q--) {
            scanf("%d",&c);
            for(i=0;i<c;i++) {
                scanf("%s",ss[i]); p[i]=find(ss[i]);
            }
            for(tmp=0,i=1;i<c;i++) {
                if(sbt.find(make_pair(p[i],p[tmp]))!=sbt.end() || sbt.find(make_pair(p[tmp],p[i]))==sbt.end()) tmp=i;
            }
            for(i=0;i<c;i++) {
                if(tmp==i) continue;
                if(sbt.find(make_pair(p[i],p[tmp]))!=sbt.end() || sbt.find(make_pair(p[tmp],p[i]))==sbt.end()) break;
            }
            if(i<c) { puts("0"); }
            else {
                printf("1"); printf(" %s\n",ss[tmp]);
            }
        }
        printf("\n"); 
    }
    int main() {
        int ca; scanf("%d",&ca);
        while(ca--) get_data(),solve();
        return 0;
    } 
  • 相关阅读:
    Jenkins
    python爬虫
    git分布式版本控制
    CKA考试认证总结
    gitlab-ci 工具链
    gitlab-ci 模板库实践
    gitlab-cicd
    gitlab配置文件gitlab.rb详解
    局部变量表中的slot简述
    JVM系统线程类型
  • 原文地址:https://www.cnblogs.com/zhang1107/p/3067883.html
Copyright © 2011-2022 走看看