zoukankan      html  css  js  c++  java
  • pat(A) 1063. Set Similarity(STL)

    代码:

    #include<cstdio>
    #include<cstring>
    #include<set>
    using namespace std;
    
    set<int> st[55];
    
    int main()
    {
        int n,m,k;
        while(scanf("%d",&n)==1)
        {
            double dp[100][100];
            for(int i=0; i<55; i++)
            {
                for(int j=0; j<55; j++)
                {
                    dp[i][j]=-1.0;
                }
            }
            for(int i=1; i<=n; i++)
            {
                st[i].clear();
                scanf("%d",&m);
                for(int j=0; j<m; j++)
                {
                    int x;
                    scanf("%d",&x);
                    st[i].insert(x);
                }
            }
            scanf("%d",&k);
            while(k--)
            {
                int x,y;
                char c='%';
                scanf("%d%d",&x,&y);
                if(st[x].size()==0&&st[y].size()!=0)
                {
                    printf("0.0");
                    printf("%c
    ",c);
                    continue;
                }
                if(st[x].size()!=0&&st[y].size()==0)
                {
                    printf("0.0");
                    printf("%c
    ",c);
                    continue;
                }
                if(x==y)
                {
                    printf("100.0");
                    printf("%c
    ",c);
                    continue;
                }
                set<int>::iterator it;
                int cnt=0;
                //printf("%lf
    ",dp[x][y]);
                if(dp[x][y]==-1.0)
                {
                    //printf("-----
    ");
                    for(it=st[x].begin(); it!=st[x].end(); it++)
                    {
    
                        if(st[y].find(*it)!=st[y].end())
                            cnt++;
                    }
                    dp[x][y]=cnt*1.0/(st[x].size()+st[y].size()-cnt);
                }
    
                //printf("%d
    ",cnt);
                printf("%.1lf",dp[x][y]*100);
                //char c='%';
                printf("%c",c);
                printf("
    ");
            }
        }
        return 0;
    }
    


  • 相关阅读:
    Title
    Title
    Title
    Title
    Python生成随机验证码
    Time模块和datetime模块
    For循环的实质
    Python函数
    集合set
    字符串内置方法的使用
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7128149.html
Copyright © 2011-2022 走看看