pat 1063

来源:互联网 发布:空间怎么绑定域名 编辑:程序博客网 时间:2024/04/27 17:19

看到有人用STL 中的set来求交集和并集,学习一下
还有百分号的输出要用%%

#include<stdio.h>#include<map>#define SIZE 50using namespace std;map<int, int> set[SIZE];void SetSim(int a, int b){    map<int, int>s;    map<int, int>::iterator k;    int i;    int Nc = 0;    for (k = set[a].begin(); k != set[a].end(); k++)        if (set[b].find((*k).first) != set[b].end())            Nc++;    int Nt = s.size();     printf("%0.1lf%%\n", double(Nc*1.0 / (set[a].size() + set[b].size() - Nc))*100);}int main(){    int n;    freopen("1.in", "r", stdin);    scanf("%d", &n);    int i;    for (i = 0; i < n; i++){        int sizeofset;        scanf("%d", &sizeofset);        int num;        for (int j = 0; j < sizeofset; j++){            scanf("%d", &num);            set[i][num] = 1;        }    }    int numofqury;    scanf("%d", &numofqury);    for (i = 0; i < numofqury; i++){        int set1, set2;        scanf("%d%d", &set1, &set2);        SetSim(set1-1, set2-1);    }    return 0;}
0 0