zoukankan      html  css  js  c++  java
  • 【算法笔记】A1063 Set Similarity

    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%

    题意:

      比较两个set<int>集合的相似度。

    code:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 vector<set<int> > sets;
     4 int main(){
     5     int n,m,k,a1,a2;
     6     scanf("%d",&n);
     7     sets.resize(n);
     8     for (int i = 0; i < n; i++)
     9     {
    10         scanf("%d",&m);
    11         set<int> temp;
    12         for (int j=0;j<m;j++)
    13         {
    14             int num;
    15             scanf("%d",&num);
    16             temp.insert(num);
    17         }
    18         sets[i]=temp;
    19     }
    20     scanf("%d",&k);
    21     for (int i=0;i<k;i++)
    22     {
    23         scanf("%d %d",&a1,&a2);
    24         int nc=0,nt = sets[a2-1].size();
    25         for (auto it=sets[a1-1].begin();it!=sets[a1-1].end();it++)
    26         {
    27             if (sets[a2-1].find(*it)==sets[a2-1].end())
    28                 nt++;
    29             else
    30                 nc++;
    31         }
    32         printf("%.1lf%%
    ",(double)nc/nt*100);
    33     }
    34     return 0;
    35 }
  • 相关阅读:
    【log】AOP配置日志
    【AOP】【log】Spring AOP 完成日志记录
    【java】staitc
    【spring】Spring3注释装配的最佳实践持久层
    【LDA】lda模型和java代码
    【tomcat】tomcat使用jndi,hibernate自动生成的DAO类用了jndi
    【spring】Spring基于 Annotation 的简单介绍
    【bayes】贝叶斯学派和频率学派
    【phi】balance
    【spring】【log】spring mvc 中使用log4j
  • 原文地址:https://www.cnblogs.com/chunlinn/p/10709808.html
Copyright © 2011-2022 走看看