m0_49771664
m0_49771664
2021-07-22 23:44
采纳率: 0%
浏览 18

关于#c++#的题,请各位专家指导!

1063 Set Similarity 你好,我跟你思路一样,也是用一个新的set存两个set中的元素,样例也能通过,但是检测点过不了,实在没找到原因。

#include<cstdio>
#include<set>
#include<algorithm>
using namespace std;
set<int> a[51];
int main() {
    int n, m,num;
    scanf("%d", &n);
    for (int i = 1;i <= n;i++) {
        scanf("%d", &m);
        for (int j = 0;j < m;j++) {
            scanf("%d", &num);
            a[i].insert(num);
        }
    }
    int k,set1,set2;
    double Nc, Nt;
    scanf("%d", &k);
    set<int> res;
    for (int i = 0;i < k;i++) {
        scanf("%d %d", &set1, &set2);
        for (set<int>::iterator it = a[set1].begin();it != a[set1].end();it++) {
            res.insert(*it);
        }
        for (set<int>::iterator it = a[set2].begin();it != a[set2].end();it++) {
            res.insert(*it);
        }
        Nt = res.size();
        Nc = a[set1].size() + a[set2].size()-Nt;
        double res = Nc / Nt;
        printf("%.1lf%%\n", res*100);
    }
    return 0;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • m0_49771664
    m0_49771664 2021-07-22 23:54

    找到错误了,集合res没有清零,我也不知道怎么过测试点的。。。。。

    点赞 评论

相关推荐