zoukankan      html  css  js  c++  java
  • 1063 Set Similarity (25 分)

    原代码,在(color{deepskyblue}{PAT})上能取得(25pts)的满分好成绩,但在其他地方都超时了,gg。

    set<int> S[55];
    double res[55][55];
    int n,m;
    
    void init()
    {
        for(int i=1;i<=n;i++)
            for(int j=i+1;j<=n;j++)
            {
                set<int> tot;
                set<int> common;
                for(auto t:S[i]) tot.insert(t);
                for(auto t:S[j])
                {
                    if(S[i].count(t)) common.insert(t);
                    tot.insert(t);
                }
                res[i][j]=1.0*common.size()/tot.size();
            }
    }
    
    int main()
    {
        cin>>n;
    
        for(int i=1;i<=n;i++)
        {
            int k;
            scanf("%d",&k);
            for(int j=0;j<k;j++)
            {
                int x;
                scanf("%d",&x);
                S[i].insert(x);
            }
        }
    
        init();
    
        cin>>m;
    
        while(m--)
        {
            int a,b;
            cin>>a>>b;
            printf("%.1f%%
    ",res[a][b]*100);
        }
        //system("pause");
        return 0;
    }
    

    思考一下,对代码简化一下就可以在其他地方过辣。

    set<int> S[55];
    double res[55][55];
    int n,m;
    
    void init()
    {
        for(int i=1;i<=n;i++)
            for(int j=i+1;j<=n;j++)
            {
                int nc=0;
                for(auto t:S[i]) nc+=S[j].count(t);
                int nt=S[i].size()+S[j].size()-nc;
                res[i][j]=1.0*nc/nt;
            }
    }
    
    int main()
    {
        cin>>n;
    
        for(int i=1;i<=n;i++)
        {
            int k;
            scanf("%d",&k);
            for(int j=0;j<k;j++)
            {
                int x;
                scanf("%d",&x);
                S[i].insert(x);
            }
        }
    
        init();
    
        cin>>m;
    
        while(m--)
        {
            int a,b;
            scanf("%d%d",&a,&b);
            printf("%.1f%%
    ",res[a][b]*100);
        }
        //system("pause");
        return 0;
    }
    
  • 相关阅读:
    两个jquery编写插件实例
    jquery编写插件(转)
    前后端分离
    理解流式布局
    元素外边距溢出(塌陷)
    超级有用的9个PHP代码片段
    php实现redis锁机制
    php程序守护进程
    SESSION机制
    php面试
  • 原文地址:https://www.cnblogs.com/fxh0707/p/14408562.html
Copyright © 2011-2022 走看看