• 团体程序设计天梯赛PTA L2-005集合相似度


    题目:给定两个整数集合,它们的相似度定义为:Nc​​/Nt​​×100%。其中Nc​​是两个集合都有的不相等整数的个数,Nt​​是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。

    题意:Nc就是两个集合中共同都出现数的个数,Nt为一共有几个不一样的数(这道题先考了语文...)然后一除算出百分形式得出答案

    思路:用set容器进行模拟,把各组数分别装进set容器中,减去了查重的步骤。再用count函数判断两个数组重复出现的数的个数可以大大缩短时间。

    (别莽,暴力会出事...最后一个例子卡暴力

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<string>
     5 #include<string.h>
     6 #include<set>
     7 #include<vector>
     8 #include<map>
     9 using namespace std;
    10 
    11 const int N = 1e4 + 10;
    12 set<int>::iterator itt;
    13 set<int> s[55];//将数组都存在set容器里
    14 
    15 void init()//初始化
    16 {
    17     for(int i = 0; i < 55; i ++)
    18     {
    19         s[i].clear();
    20     }
    21 }
    22 int main()
    23 {
    24     int n, k, c, t, a, b;
    25     scanf("%d",&n);
    26     init();
    27     //输入
    28     for(int i = 1; i <= n; i ++)
    29     {
    30         scanf("%d",&a);
    31         for(int j = 1; j <= a; j ++)
    32         {
    33             scanf("%d",&b);
    34             s[i].insert(b);
    35         }
    36     }
    37     scanf("%d",&k);
    38     int f1,f2;
    39     for(int i = 1; i <= k; i ++)
    40     {
    41         c = 0;//分子
    42         t = 0;//分母
    43         scanf("%d%d",&f1,&f2);
    44 
    45         for(itt = s[f2].begin(); itt != s[f2].end(); itt ++)
    46         {
    47             //点睛之笔!!!qaq菜鸡本人并没有自己想出来,这一步缩短很多时间
    48             //如果在一个容器里找另外一个数的次数为1的话就在分子加1
    49             if(s[f1].count(*itt))
    50             {
    51                 c++;
    52             }
    53 
    54         }
    55         //分母就是两个set容量再减去重合的部分
    56         t = s[f1].size() + s[f2].size() - c;
    57         printf("%.2lf%%
    ",c/(double)t*100);
    58 
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    appium学习【五】【转】appium实现屏幕向左滑动
    ConfigParser模块用法
    python中的join()函数的用法
    python from import与import as 的含义
    python的termcolor模块
    python标准输入,标准输出,标准错误
    lambda匿名函数
    【二代示波器教程】第13章 RTX操作系统版本二代示波器实现
    【二代示波器教程】第12章 示波器设计—DAC信号发生器的实现
    【二代示波器教程】第11章 示波器设计—功能模块划分
  • 原文地址:https://www.cnblogs.com/dark-ming/p/13726603.html
Copyright © 2020-2023  润新知