PATグレード--A1063セットの類似性

整数の所定の2セット、セットの類似度であると定義される  /、ここで  Nのcは二組によって共有される別個の共通の番号の数であり、  Nのtは異なる数の合計数であります二組。あなたの仕事は、セットの任意のペアの類似度を計算することです。

入力仕様:

各入力ファイルには、1つのテストケースが含まれています。各ケースは、第一の正の整数与える  N(集合の総数≤)を。次いで、  N行はそれぞれが正でセットを与え、フォロー  M(≤)と、続いて  [範囲内Mintegers 0]。セットの入力後、正の整数  K(≤)は、続いて与えられた  クエリのKlines。各クエリは、(セットは1から番号が付けられているセット番号の組を与える  N)。行のすべての数字は、スペースで区切られます。

出力仕様:

各クエリに対して、1つの小数場所まで正確なパーセンテージの形で、一列に集合の類似性を印刷します。

サンプル入力:

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

サンプル出力:

50.0%
33.3%

NCの2つの一般的なデジタルアレイ番号で
デエンファシスNtが2つのデータセットの総数であります

1の#include <iostreamの>
 2の#include <unordered_set> // 用は来去重セット
3を 使用して 名前空間STDを、
4  整数N、M、K、D。
5 unordered_set < INT > NUMS [ 55 ]。
6  INT メイン()
 7  {
 8      CIN >> N。
9      int型 i = 1 ; iが= Nを<++ i)が
 10      {
 11          CIN >> M。
12          のためのint型 J = 0; J <M。++ j)の
 13          {
 14              CIN >> D。
15              NUMS [I] .insert(D)。
16          }
 17      }
 18      CIN >> K。
19      のためにint型 I = 0 ; iがKを<; ++ i)が
 20      {
 21          int型A、B。
22の         ダブル RES、ノースカロライナ= 0、Ntを= 0 ;
23          CIN >> A >> B;
24          のための:(NUMS [A]オートV)
 25              もし(NUMS [B] .find(V)=!NUMS [B] .END())
 26                  ノースカロライナ++ 27          Ntを= NUMS [A] .size()+ NUMS [B] .size() - ノースカロライナ。
28          のRES =(NC / NT)* 100.0 29          のprintf(" %.1f %% \ n " 、RES)。
30      }
 31      リターン 0 32 }

 

おすすめ

転載: www.cnblogs.com/zzw1024/p/11294909.html