PAT 秀恩爱分的快

L2-028 秀恩爱分得快 (25分) Problem: https://pintia.cn/problem-sets/994805046380707840/problems/994805054698012672 tags: 字符串 模拟 细节 Mean: 一共n个人由[0,n-1]标号,其中-号表示女.给出m张照片,在同一照片中的异性亲密度会加1/k, k为那张照片的总人数.最后给出一队情侣,输出与他们关系最亲密的异性. Solution 因为有0 和 -0 的区别,所以不能用int,需要用string存储. 如果每张照片都平方搜索会超时,排. 阅读详情

古人云:秀恩爱,分得快。

互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友?

输入格式:

输入在第一行给出 2 个正整数:N(不超过1000,为总人数——简单起见,我们把所有人从 0 到 N-1 编号。为了区分性别,我们用编号前的负号表示女性)和 M(不超过1000,为照片总数)。随后 M 行,每行给出一张照片的信息,格式如下:

K P[1] ... P[K]

其中 K(≤ 500)是该照片中出现的人数,P[1] ~ P[K] 就是这些人的编号。最后一行给出一对异性情侣的编号 A 和 B。同行数字以空格分隔。题目保证每个人只有一个性别,并且不会在同一张照片里出现多次。

输出格式:

首先输出 A PA,其中 PA 是与 A 最亲密的异性。如果 PA 不唯一,则按他们编号的绝对值递增输出;然后类似地输出 B PB。但如果 A 和 B 正是彼此亲密度最高的一对,则只输出他们的编号,无论是否还有其他人并列。

输入样例 1:

10 4
4 -1 2 -3 4
4 2 -3 -5 -6
3 2 4 -5
3 -6 0 2
-3 2

输出样例 1:

-3 2
2 -5
2 -6

输入样例 2:

4 4
4 -1 2 -3 0
2 0 -3
2 2 -3
2 -1 2 
-3 2

输出样例 2:

-3 2

坑点:

可能存在-0,因此必须使用字符串读入

刚开始没有注意到这个点,于是直接用一个数组存大于等于0的男生,一个数组存小于0的女生。WA的很彻底。。。15分

 

思路:

使用到的存储结构:

  1. 性别标记数组
  2. 存要查询的人(设为 x和y)与每一个异性亲密度的数组(两个)
  3. 存每张照片出现的人的数组

找出有x的照片,统计x与异性的亲密度即可,y与x的处理过程相同

AC代码:

#include<bits/stdc++.h>
using namespace std;
int sex[1010];
int fun()
{
    string str;
    cin>>str;
    int sum=0;
    int f=0;
    if(str[0]=='-')
    {
        f=1;
    }
    for(int w=f; w<str.length(); w++)
    {
        sum=sum*10+str[w]-'0';
    }
    sex[sum]=f?-1:1;
    return sum;
}
int main()
{
    double A_max=0,B_max=0;
    vector<int>p[1010];
    int x,y,n,m,i,j,k;
    string str;
    cin>>n>>m;
    vector<double>A(n,0.0);
    vector<double>B(n,0.0);
    for(i=1; i<=m; i++)
    {
        cin>>k;
        for(j=1; j<=k; j++)
        {
            x=fun();
            p[i].push_back(x);
        }

    }
    x=fun(),y=fun();
    for(i=1; i<=m; i++)
    {
        bool finda = find(p[i].begin(),p[i].end(),x)!=p[i].end();
        bool findb = find(p[i].begin(),p[i].end(),y)!=p[i].end();
        if(finda||findb)
        {
            for(j=0; j<p[i].size(); j++)
            {
                if(finda&&sex[x]!=sex[p[i][j]])
                {
                    A[p[i][j]]+=1.0/p[i].size();
                    A_max=max(A_max,A[p[i][j]]);
                }
                else if(findb&&sex[y]!=sex[p[i][j]])
                {
                    B[p[i][j]]+=1.0/p[i].size();
                    B_max=max(B_max,B[p[i][j]]);
                }
            }
        }
    }
    if(A_max==A[y]&&B_max==B[x])
    {
        printf("%s%d %s%d\n",sex[x]==-1?"-":"",x,sex[y]==-1?"-":"",y);
    }
    else
    {
        for(int i=0; i<n; i++)
        {
            if(A[i]==A_max)
                printf("%s%d %s%d\n",sex[x]==-1?"-":"",x,sex[i]==-1?"-":"",i);
        }
        for(int i=0; i<n; i++)
        {
            if(B[i]==B_max)
                printf("%s%d %s%d\n",sex[y]==-1?"-":"",y,sex[i]==-1?"-":"",i);
        }

    }
    return 0;
}

 

图论与模拟实战:PTA L2-028“秀恩爱分得快”算法题解 图论是计算机科学中用于建模实体间关系的基础数据结构,其核心原理是通过节点和边来表示对象及其连接。在社交网络分析等应用场景中,图论能有效量化用户间的亲密度或关联强度,技术价值在于将复杂的现实关系抽象为可计算的模型。本文以一道结合社交关系的算法题为例,深入探讨了如何利用邻接矩阵模拟亲密度计算,并针对**边界条件处理**和**多关键字排序**等工程实践中的常见难点,提供了两种优化解法与详细的调试心得,帮助读者掌握从问题抽象到代码实现的完整流程。 阅读详情

相关推荐

实例讲解Simulink应用层开发CAN报文解包及CAN信号设置方法

本文通过讲解MCU CAN解包模块的模块设置、输入输出信号的设置及仿真测试验证,说明了CAN解包模块的设置方法、CAN解包模块输入输出信号的设置方法以及CAN解包模块的仿真测试及修正方法。在模型搭建过程中,建议养成一种搭建完成仿真测试验证的习惯,在模块阶段发现错误,解决错误,避免在后期模块集成之后报出大量错误,增加解决错误的工作量和难度。希望通过本文的介绍能给相关技术人员带来一些参考和帮助。

qq_43011586的博客 5680

秀恩爱分得快 (25分)

古人云:秀恩爱,分得快。 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友? 输入格式: 输入在第一行给出 2 ...

纸短情长的博客 3453

【Collibra 驱动 IPD 数据血缘治理】:三层图谱分层展示体系与全链路追踪的技术业务实践

(应用级/数据级/字段级)是理解复杂数据流动的核心手段。其价值不仅体现在可视化的直观性,更在于通过。技术保障血缘不可篡改性,进一步提升IPD数据治理的可靠性。,解决了跨层级血缘分析的性能与可用性矛盾。数据血缘图谱要素定义(字节跳动/腾讯云/信安标委)实现对IPD数据的精准追踪,而数据血缘图谱的。分层交互设计标准(智慧城市数据中台规范)Collibra技术文档(2024)字段级血缘的挑战与解决路径。自动优化血缘路径,并深化。字段级血缘技术实现方案。Collibra通过。图数据库性能优化原理。

百态·数智思维 | 聚焦大数据、量化与未来AI 1244

L2-028. 秀恩爱分得快

古人云:秀恩爱,分得快。互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友?输入格式:输入在第一行给出 2 个正整数:N...

nhpper的博客 5526

保姆级教程:在Windows/Mac上从零部署清华Kronos股票预测模型(含Qlib数据更新避坑指南)

本文提供了一份详细的指南,帮助用户在Windows和Mac系统上从零部署清华Kronos股票预测模型,包括环境配置、模型权重获取、Qlib数据更新避坑等关键步骤。特别针对国内用户遇到的网络问题和数据更新不及时提供了解决方案,适合量化投资和金融科技爱好者快速上手。

weixin_29053577的博客 623

广东电信兆能Z82盒子救砖记:手把手教你用U盘强刷HI3798MV100固件(附短接图)

本文详细介绍了广东电信兆能Z82盒子变砖后的救砖方法,重点讲解了使用U盘强刷HI3798MV100固件的全流程,包括诊断、准备工作、短接操作及刷机后的优化设置。特别针对m8233主板和8188无线方案的机型,提供了实用的短接图和操作技巧,帮助用户成功恢复设备。

weixin_30325487的博客 402

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

L2-028 秀恩爱分得快 (25 分) 题目 L2-028 秀恩爱分得快 (25 分) 古人云:秀恩爱,分得快。 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友? 输入格式: 输入在第一行给出 2 个正整数:N(不超过100

tcy今天长胖了吗的博客 570

ArcGIS实战:用栅格数据为偏远山区规划一条最省钱的公路(附完整数据与操作步骤)

本文详细介绍了如何利用ArcGIS进行栅格数据分析,为偏远山区规划一条最省钱的公路。通过DEM高程数据处理、成本权重设定和最佳路径计算,结合真实案例展示了从数据准备到工程方案转化的完整流程,帮助工程师在复杂地形中做出经济高效的路线决策。

weixin_32136203的博客 356

PAT 秀恩爱分的快

这道题目我做了很久而且还看了很多题解,找出了许多坑可是还有有一个测试点3过不去,望有知道原因的告知本人,万分感谢! 题目说明: 古人云:秀恩爱,分得快。 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲...

weixin_44226886的博客 919

0基础学习diffusion_model扩散模型【易理解的公式推导】Denoising Diffusion Probabilistic Models

去噪扩散概率模型。本文是笔者在学习扩散模型时的一些笔记与心得,在公式推导过程中能够保证自己是一步一步去推导并且理解了的。概述是我认为比较重要的部分能够帮助理解公式的推导,具体的公式推导在每一小节中进行。1、扩散过程:如上图所示,扩散过程为从右到左X0→XTX0​→XT​的过程,表示对图片逐渐加噪,且Xt1X_{t+1}Xt1​是在XtX_{t}Xt​加躁得到的,其只受XtX_{t}Xt​的影响,因此扩散过程是一个马尔科夫过程。X0X_0。

zik的博客 2397

AutoSAR系列讲解(实践篇)12.1-Diagnostics简介

主要概括性的讲解了诊断协议UDS和AutoSAR的诊断架构

雪云飞星的博客 1万+

天梯赛 L2-028 秀恩爱分得快

古人云:秀恩爱,分得快。 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友? 输入格式: 输入在第一行给出 2 个正整...

jinduo16的博客 364

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

L2-028 秀恩爱分得快(离线)

离线操作将需要询问的a,b先读取下来,然后对于每一个数字我们开一个数组表示这个数字出现在第几个照片里面,然后对于a,b我们只要访问这个数组然后访问对应的照片数组就可以了。 #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;set&gt; #include &lt;cstring&gt; #include &lt;vec...

leekerian的博客 545

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

题目链接 https://www.patest.cn/contests/gplt/L2-028 思路 0.只处理被询问的情侣的亲密度,否则会超时 1.要注意输入数字要用字符串,还要标记性别 因为 输出-0 得到的数字是0 也就是说用int 型输入 是没有办法 辨别编号0的性别的 2.要注意被询问的情侣可能没有出现在照片当中。 输出的时候也要注意负号 AC代码 #include &...

Dup4'Blog 900

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

L2-028 秀恩爱分得快(python+测试点3分析)

这道题最坑我感觉就是测试点3,测试点3是pares和pbres都为空的情况,也就是说输入的照片里面就没有a和b的情况比如说输入为10 0-0 1然后输出是-0 1。

kbcl2的博客 668

L2-028 秀恩爱分得快

L2-028 秀恩爱分得快 古人云:秀恩爱,分得快。 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友? 输入格...

chenyutingdaima的博客 345

PAT天梯赛L2-028 秀恩爱分得快 c语言 (“-0“)

PAT天梯赛c语言 秀恩爱,分得快。互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友?

zhangshuangrui的博客 1334

PAT L2-028 秀恩爱分得快

https://pintia.cn/problem-sets/994805046380707840/problems/994805054698012672 古人云:秀恩爱,分得快。 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲...

weixin_30872733的博客 254

1153 Decode Registration Card of PAT (25 分)

首先是鬼鬼珊的闲聊一分钟 在之前的博客里,如果你看过的话,一定知道我肯定每天一问,什么时候甜甜的恋爱才能轮到我呀?哈哈哈,然后呢,现在真的轮到我了。是的,超级无敌酷的鬼鬼珊同学真的谈恋爱了,暂时还不知道甜不甜,体会还不深,以后体会深刻的话,一定在博客里认真仔细的写下来。(话就先放在这里,以后肯定写篇博客关于恋爱甜不甜的感受进行深刻的剖析),说一下我的感受吧,大概是第一次谈恋爱的原因,总觉得很恍惚,...

超级酷的鬼鬼珊 331

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

L2-028 秀恩爱分得快(25 分)古人云:秀恩爱,分得快。互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友?输入格...

柳婼 の blog 2508

【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码

【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案 鉴定完毕,全部水题 ヾ(•ω•`)o 知识点分类(32): 1、树锯结构(9):二叉树的存储,编号,遍历顺序转换,求深度,底层节点,从底部向上搜索公共祖先。多叉树存储,遍历,求深度。 2、图论模板(3):Dijkstra,图的存储遍历,度数统计。 3、其他结构(7):并查集(4)+链表(2)+栈(1); 4、模拟水题(8):好吧大概有一半数据有点坑; 5、零零碎碎(5):STL(2)+贪心(2)+数学(1); 标号 代码提交 题解链接

小哈里的博客 2633

图论算法实战:BFS与闭包迭代在社交网络传播问题中的对比与应用

图论是计算机科学中研究图结构及其性质的基础领域,广泛应用于建模实体间复杂关系。其核心原理包括图的遍历(如BFS、DFS)与节点状态分析,用于解决路径查找、连通性及影响力传播等问题。在工程实践中,图算法对于处理社交网络、推荐系统等场景具有重要技术价值。本文以一道模拟社交网络中信息传播的经典算法题为切入点,深入探讨了基于**BFS的显式图模拟**与**状态递推的闭包计算**两种解决方案。通过对比两种方法在时间复杂度、适用场景与实现细节上的差异,并结合**浮点数精度处理**与**稀疏数据存储**等工程实践要点,为

weixin_31102231的博客 276

PAT 天梯赛 L2 部分题目整理

目录 L2-002 链表去重 (25 分) L2-003 月饼 (25 分)(排序+贪心+细节注意) L2-005 集合相似度 (25 分)(set的应用) L2-007 家庭房产 (25 分)(并查集+STL的应用) L2-008 最长对称子串 (25 分)(字符串处理) L2-010 排座位 (25 分)(并查集) L2-012关于堆的判断(25 分)(最小堆的建立+自下而上...

来啦(#^.^#) 1040
上一篇: PAT 1007 Maximum Subsequence Sum (25分)
下一篇: PAT 1018 Public Bike Management (Dijkstra+dfs)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值