PAT A1063

作者: Claire_cc | 来源:发表于2018-08-05 16:08 被阅读0次

    最近都是最后一个case超时啊,一开始的思路是设set数组存数据,C=A|B,|A|+|B|-|C|/|C|
    ,然后改成只遍历其中一个+find的方法,统计出相同的个数和总个数
    第一次提交

    #include<stdio.h>
    #include<set>
    using namespace std;
    set<int> s[55];
    int main()
    {
        int n,m,t,num,a,b;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&m);
            for(int j=0;j<m;j++)
            {
                scanf("%d",&t);
                s[i+1].insert(t);
            }
    
        }
        scanf("%d",&num);
        for(int i=0;i<num;i++)
        {
            scanf("%d%d",&a,&b);
            set<int>total;
            for(set<int>::iterator it=s[a].begin();it!=s[a].end();it++)
                total.insert(*it);
            for(set<int>::iterator it=s[b].begin();it!=s[b].end();it++)
                total.insert(*it);
            int nc=s[a].size()+s[b].size()-total.size();
            printf("%.1f",double(nc)/total.size()*100);
            printf("%%\n"); 
        }
        return 0;
    }
    

    AC代码

    #include<stdio.h>
    #include<set>
    #include<vector> 
    using namespace std;
    set<int> s[55];
    int main()
    {
        int n,m,t,num,a,b;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&m);
            for(int j=0;j<m;j++)
            {
                scanf("%d",&t);
                s[i+1].insert(t);
            }
    
        }
        scanf("%d",&num);
        for(int i=0;i<num;i++)
        {
            scanf("%d%d",&a,&b);
            set<int>total;
            int totalnum = s[a].size(), samenum = 0;
            for (set<int>::iterator it = s[b].begin(); it != s[b].end(); it++)
            {
                if (s[a].find(*it) != s[a].end())
                    samenum++;
                else
                    totalnum++;
            }
            printf("%.1lf%%\n", samenum*100.0/totalnum);
        }
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:PAT A1063

          本文链接:https://www.haomeiwen.com/subject/jioyvftx.html