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

    Given two sets of integers, the similarity of the sets is defined to be /, where Nc​​ is the number of distinct common numbers shared by the two sets, and Nt​​ is the total number of distinct numbers in the two sets. Your job is to calculate the similarity of any given pair of sets.

    Input Specification:

    Each input file contains one test case. Each case first gives a positive integer N (≤) which is the total number of sets. Then N lines follow, each gives a set with a positive M (≤) and followed by M integers in the range [0]. After the input of sets, a positive integer K (≤) is given, followed by K lines of queries. Each query gives a pair of set numbers (the sets are numbered from 1 to N). All the numbers in a line are separated by a space.

    Output Specification:

    For each query, print in one line the similarity of the sets, in the percentage form accurate up to 1 decimal place.

    Sample Input:

    3
    3 99 87 101
    4 87 101 5 87
    7 99 101 18 5 135 18 99
    2
    1 2
    1 3
     

    Sample Output:

    50.0%
    33.3%
     
     思路:挺麻烦的一个题,充分利用了vector和set,
    注意:
    利用map给第一行数据打标记,然后再去遍历第二行数据判断是否为交集元素,这样子只是将两行数据都只遍历了一遍,会超时
    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1010;
    #define eps 1e-8
    #define  inf  0x3fffffff
    vector<set<int> > ve;
    int main(){
        int n,m;
        scanf("%d",&n);
        ve.resize(n);
        int temp;
        for(int i=0;i<n;i++){
            scanf("%d",&m);
            for(int j=0;j<m;j++){
                scanf("%d",&temp);
                ve[i].insert(temp);
            }
        }
        int k,a,b;
        scanf("%d",&k);
        for(int i=0;i<k;i++){
            set<int> s,st;
            scanf("%d %d",&a,&b);
            int sum=ve[a-1].size()+ve[b-1].size();
            for(set<int>::iterator it=ve[a-1].begin();it!=ve[a-1].end();it++){
                if(ve[b-1].find(*it)!=ve[b-1].end()){
                    st.insert(*it);
                }
            }
            
            printf("%.1f%
    ",st.size()*100.0/(sum-st.size()));
        }
        return 0;
    }
  • 相关阅读:
    mysql router读写分离
    Hbase单节点Standalone & Pseudo Distribute
    WAS web.xml修改不生效
    Hadoop单节点集群
    网易云音乐 linux版
    OpenLDAP GUI管理工具
    Memcached源码安装配置
    CentOS7 /var/log/messages Starting Session x of user root
    linux下安装jdk(转载)
    ubuntu安装rpm格式文件方法(转载)
  • 原文地址:https://www.cnblogs.com/dreamzj/p/14947858.html
Copyright © 2011-2022 走看看