PAT_1063. Set Similarity(1个case超时)
来源:互联网 发布:爱站seo查询 编辑:程序博客网 时间:2024/06/07 02:47
时隔3个月,重新回来开始做题,9月份要考PAT甲级.希望能有个好成绩咯
看了网上的题解,学习到求集合的交集和并集的方法,用stl中的set来解决问题.
这道题由于题目中某一个集合会出现重复的数字,但是用set中的insert插入时,重复的数字只插入一次,所以很好地避免了重复数字的计算问题.
//// main.cpp// PAT_1063. Set Similarity//// Created by wjq on 17/5/18.// Copyright © 2017年 wjq. All rights reserved.//#include <iostream>#include <map>#include <set>using namespace std;int N,M,temp,quries,a,b;set<int> s[55];set<int>::iterator it1,it2;double calculate(){ int common=0,all=0; for(it1=s[a-1].begin(),it2=s[b-1].begin();it1!=s[a-1].end()&&it2!=s[b-1].end();) { if(*it1==*it2) { it1++; it2++; common++; } else if(*it1<*it2) it1++; else it2++; } all = (int)s[a-1].size()+(int)s[b-1].size()-common; return (double)common/(double)all * 100;}int main(int argc, const char * argv[]){ scanf("%d",&N); for(int i=0;i<N;i++) { scanf("%d",&M); for(int j=0;j<M;j++) { scanf("%d",&temp); s[i].insert(temp); } } scanf("%d",&quries); for(int i=0;i<quries;i++) { scanf("%d%d",&a,&b); printf("%.1lf%%\n",calculate()); } return 0;}
阅读全文
0 0
- PAT_1063. Set Similarity(1个case超时)
- PAT_1063: Set Similarity
- Set Similarity
- PAT_1057. Stack(3个case超时)
- 1063. Set Similarity
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- 1063. Set Similarity
- 1063. Set Similarity
- 1063. Set Similarity (25)
- PAT 1063. Set Similarity
- 1063. Set Similarity (25)
- 1063.Set Similarity
- 1063. Set Similarity (25)
- 1063. Set Similarity (25)
- pat1063 Set Similarity
- 2.简单工厂
- Hi3536 Mount NFS root filesystem tips
- 将数据转成JSON
- oracle常用命令--更新/修改表数据之alter命令
- u-boot分析之Makefile
- PAT_1063. Set Similarity(1个case超时)
- validateform在提交form表单时,手动触发validateform校验
- spring cloud eureka
- STL algorithm -2
- 美国地质调查局DEM,需账户密码
- 简单的hash
- 学习的本质
- Ubuntu14 安装mysqlclient (MySQLdb)python3
- js中事件对象event的兼容性问题