1063. Set Similarity (25)
来源:互联网 发布:java实现发邮件带附件 编辑:程序博客网 时间:2024/04/28 22:28
1. 原题: https://www.patest.cn/contests/pat-a-practise/1063
2. 思路:
题意:
判断两个数列中的相同元素个数与所有不同元素的比例。
思路:
数学逻辑题。首先要对读入的数列去重,这样我们想到了用stl中的set或者map。
最终两个set中的元素都是不同的,然后遍历其中一个,查看是否在另一个set中存在,
记录相同元素个数。最后输出就好了。
判断两个数列中的相同元素个数与所有不同元素的比例。
思路:
数学逻辑题。首先要对读入的数列去重,这样我们想到了用stl中的set或者map。
最终两个set中的元素都是不同的,然后遍历其中一个,查看是否在另一个set中存在,
记录相同元素个数。最后输出就好了。
3. 源码(已AC):
#include<iostream>#include<vector>#include<set>using namespace std;int main(void){//freopen("in.txt", "r", stdin);int N;scanf("%d", &N);vector< set<int> > sev(N+1);//从1~N的集合,跳过0,方便后续操作。for (int i = 1; i <= N; i++){int m, tem;scanf("%d", &m);for (int j = 0; j < m; j++){scanf("%d", &tem);sev[i].insert(tem);//插入set,若存在,会忽略的,这样就去重了。}}int K;scanf("%d", &K);for (int i = 0; i < K; i++){int id1, id2;scanf("%d %d", &id1, &id2);set<int>::const_iterator it;int common = 0;int tot = sev[id1].size() + sev[id2].size();for (it = sev[id1].begin(); it != sev[id1].end(); it++)//遍历统计相同元素。{if (sev[id2].count(*it) > 0)common++;}printf("%.1f%%\n", 100 * double(common) / (tot - common));}return 0;}
0 0
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 蓝桥-树-图最小生成树2
- DDos防护系列之3--DDos防御系统
- mouseweel兼容火狐
- 关于字符串的输入总结
- caffe操作技巧
- 1063. Set Similarity (25)
- SQL模糊查询
- 跟我学SpringMVC目录汇总贴、PDF下载、源码下载
- python_使用matplotlib画饼状图(pie)
- 零基础学习hadoop生态系统到上手工作线路指导初级篇(HBASE篇)
- 输出九九乘法表
- Java 8系列之Stream中万能的reduce
- 2017.2.10【初中部 GDKOI】模拟赛B组 运算符(calc) 题解
- stm32读写 DS2431