题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805054698012672

题意:给n个人,m张照片,在同一张照片中的异性亲密值增加1/size(size为该照片中的人数),给出一对情侣,若两人是彼此亲密值最高的异性,则输出两人(忽视并列的),否则分别输出与两人亲密值最高的异性(若有并列按绝对值升序输出)。

思路:首先需要指出的坑在于对0与-0的处理,这就决定了输入只能用字符串输入,同理输出也是。思路大体是对每张照片中的人用set数组保存,输入情侣a,b之后,通过count函数查找set[i]中是否有a/b,有的时候就处理,因为在并列时要按升序输出,我们可以用桶来保存a/b与其他人的亲密值,输出时从0到n-1遍历即可。

AC代码:

 #include<bits/stdc++.h>
using namespace std; const int maxn=;
int n,m,k,sex[maxn];
double maxa,maxb,pa[maxn],pb[maxn];
set<int> st[maxn]; int geti(char* s){
int ans;
if(s[]=='-')
ans=atoi(s+),sex[ans]=;
else
ans=atoi(s);
return ans;
} bool check(double x,double y){
if(abs(x-y)<0.0000001)
return true;
return false;
} void print(int x,int y){
if(sex[x]==) printf("-");
printf("%d ",x);
if(sex[y]==) printf("-");
printf("%d\n",y);
} int main(){
scanf("%d%d",&n,&m);
for(int i=;i<m;++i){
scanf("%d",&k);
for(int j=;j<k;++j){
int t;
char tmp[];
scanf("%s",tmp);
t=geti(tmp);
st[i].insert(t);
}
}
int a,b;
char tmp1[],tmp2[];
scanf("%s%s",tmp1,tmp2);
a=geti(tmp1),b=geti(tmp2);
for(int i=;i<m;++i){
int sz=st[i].size();
if(st[i].count(a))
for(set<int>::iterator it=st[i].begin();it!=st[i].end();++it)
if(*it!=a&&sex[a]!=sex[*it]){
pa[*it]+=1.0/sz;
if(maxa<pa[*it]) maxa=pa[*it];
}
if(st[i].count(b))
for(set<int>::iterator it=st[i].begin();it!=st[i].end();++it)
if(*it!=b&&sex[b]!=sex[*it]){
pb[*it]+=1.0/sz;
if(maxb<pb[*it]) maxb=pb[*it];
}
}
if(maxa==pa[b]&&maxb==pb[a])
print(a,b);
else{
for(int i=;i<n;++i)
if(check(maxa,pa[i]))
print(a,i);
for(int i=;i<n;++i)
if(check(maxb,pb[i]))
print(b,i);
}
return ;
}

pta l2-28(秀恩爱分得快)的更多相关文章

  1. 【PTA 天梯赛】L2-028 秀恩爱分得快(模拟)

    古人云:秀恩爱,分得快. 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度.如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K.任意两个人如果同 ...

  2. L2-028 秀恩爱分得快(模拟)

    古人云:秀恩爱,分得快. 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度.如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K.任意两个人如果同 ...

  3. PAT L2-028 秀恩爱分得快

    https://pintia.cn/problem-sets/994805046380707840/problems/994805054698012672 古人云:秀恩爱,分得快. 互联网上每天都有大 ...

  4. L2-028 秀恩爱分得快(25 分)

    古人云:秀恩爱,分得快. 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度.如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K.任意两个人如果同 ...

  5. 团体程序设计天梯赛 L2-028. 秀恩爱分得快

    1.输入-0(第一部分.第二部分),输出-02.只统计与两个人的亲密程度,否则超时 Data: 4 14 -0 1 -2 3-0 1 -0 1 ------ 4 1 3 1 -2 3-0 1 -0 1 ...

  6. PAT 天梯赛 L2-028. 秀恩爱分得快 【数据处理】

    题目链接 https://www.patest.cn/contests/gplt/L2-028 思路 0.只处理被询问的情侣的亲密度,否则会超时 1.要注意输入数字要用字符串,还要标记性别 因为 输出 ...

  7. 520是秀恩爱吃狗粮,521才是真正的告白日,- Python告白神器用起来 !

    网络情人节是信息时代的爱情节日,定于每年的5月20日和5月21日,该节日源于歌手范晓萱的<数字恋爱>中“520”被喻成“我爱你” ,以及音乐人吴玉龙的网络歌曲中“我爱你”与“网络情人”的紧 ...

  8. 汕头市队赛 SRM 06 C 秀恩爱

    C 秀恩爱 SRM 06 背景&&描述         KPM坐在直升机上俯瞰小渔村景象.         渔村可看作二维平面,密密麻麻地到处都是单身狗,KPM当前所在坐标为(sx,s ...

  9. PTA刷题笔记

    PTA刷题记录 仓库地址: https://github.com/Haorical/Code/tree/master/PTA/GPLT 两周之内刷完GPLT L2和L3的题,持续更新,包括AK代码,坑 ...

随机推荐

  1. Activity工作流学习(二)--Activity数据库

    23张表 ACT_RE_资源库流程规划表 act_re_deployment 部署信息表 act_re_model 流程设计模型部署表 act_re_procdef 流程定义数据表 ACT_RU_运行 ...

  2. HTML学习-1网页基础知识

    HTML超文本标记语言:HyperText Markup Language. 由浏览器运行解析. 它包括了静态页面.html   .htm.动态页面.php .aspx .jsp,从数据库提取. 今天 ...

  3. day02-格式化输出

    python格式化字符串有%和{}两种 字符串格式控制符. 字符串输入数据格式类型(%格式操作符号) %%百分号标记%c字符及其ASCII码%s字符串%d有符号整数(十进制)%u无符号整数(十进制)% ...

  4. python 阿狸的进阶之路(7)

    面向对象 转自林海峰的博客  http://www.cnblogs.com/linhaifeng/articles/6182264.html 面向对象的理解: 将数据分类,比如学生类.数据有关的函数, ...

  5. Python 基础补充(一) 列表、元组、集合、字典的区别和相互转换

    一.列表.元组.集合.字典的区别   列表 元组 集合 字典 英文 list tuple set dict 可否读写 读写 只读 读写 读写 可否重复 是 是 否 是 存储方式 值 值 键(不能重复) ...

  6. span标签 宽度无效解决方案

    完美的解决方案 下 面代码的CSS定义完美解决了span的宽度设置问题. 由于浏览器通常对不支持的CSS属性采取忽略处理的态度, 所以最好将display:inline -block行写在后面,这样在 ...

  7. HashSet和LinkedHashSet解析

    一.简介 1.Set概念 Set可以理解为集合,非常类似数据概念中的集合,集合三大特征:1.确定性:2.互异性:3.无序性,因此Set实现类也有类似的特征. 2.HashSet HashSet继承自A ...

  8. nginx+php 开启https

    nginx 配置如下,配置好重启nginx,不是nginx -s reload,如果还不能访问肯定就是防火墙问题,关闭防火墙再试试. 我遇到的问题是:我服务器是ecs,域名解析到阿里云复杂均衡的,结果 ...

  9. TCP/IP网络协议的通俗理解,SOCKET,HTTP,SOAP

    TCP/IP,HTTP,SOAP等协议之区别   术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议.“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络.把IP想 ...

  10. 计算机网络协议包头赏析-TCP

    仍然先把TCP报文段的格式放在这里,然后我们看图说话: TCP报文段也分为首部和数据两部分,首部默认情况下一般是20字节长度,但在一些需求情况下,会使用“可选字段”,这时,首部长度会有所增加. 下面, ...