PTA秀恩爱分得快

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

作者 陈越

单位 浙江大学

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

互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 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

 主要是熟练使用STL容器,存每个男女之间的亲密度。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl "\n"

const ll N = 1e3+7;
ll n,m,k,tx,ty;
double v[N][N],maxx[N];//每个男女之间的亲密度,每个人的最大亲密度 
string s,sx,sy;

void solve(){
	cin >> n >> m;
	set<ll>X,Y;//分别存男女编号,x为女,y为男,下面相同 
	while(m--){
		vector<ll>x,y;//分别存当前图片出现的男女 
		cin >> k;
		for(ll i = 0 ; i < k ; i ++){
			cin >> s;
			if(s[0] == '-'){
				x.push_back(abs(stol(s) ) );
				X.insert(abs(stol(s) ) );
			}else{
				y.push_back(abs(stol(s) ) );
				Y.insert(abs(stol(s) ) );
			}
		}
		for(ll i = 0 ; i < x.size() ; i ++)
			for(ll j = 0 ; j < y.size() ; j ++){
				v[x[i]][y[j]] += 1.0/k;
				v[y[j]][x[i]] += 1.0/k;
				if(maxx[x[i]] < v[x[i]][y[j]])
					maxx[x[i]] = v[x[i]][y[j]];
				if(maxx[y[j]] < v[y[j]][x[i]])
					maxx[y[j]] = v[y[j]][x[i]];
			}
	}
	cin >> sx >> sy;
	tx = abs(stol(sx));
	ty = abs(stol(sy));
	if(maxx[tx] == v[tx][ty] && maxx[ty] == v[ty][tx]){//如果是相互的最大值 
		cout << sx << " " << sy;
		return;
	}
	if(sx[0] == '-'){
		for(auto i : Y)
			if(maxx[tx] == v[i][tx])
				cout << sx << " " << i << endl;
		for(auto i : X)
			if(maxx[ty] == v[ty][i])
				cout << sy << " -" << i << endl;
	}else{
		for(auto i : X)
			if(maxx[tx] == v[i][tx])
				cout << sx << " -" << i << endl;
		for(auto i : Y)
			if(maxx[ty] == v[ty][i])
				cout << sy << " " << i << endl;
	}
	return;
}

int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	ll t=1;//cin >> t;
	while(t--)solve();
	return 0;
}

 

repeat_PTA_L2-4 秀恩爱分得快_细节超多 阅读详情

相关推荐

Ubuntu 20.04下IgH EtherCAT主站部署实战

本文详细介绍了在Ubuntu 20.04系统上部署IgH EtherCAT主站的完整流程,包括环境准备、源码编译、内核模块配置、网络接口设置及实时性优化等关键步骤。通过实战案例和常见问题排查,帮助开发者快速掌握EtherCAT主站部署技巧,提升工业自动化系统的稳定性和实时性。

weixin_30596343的博客 1071

L2-2 秀恩爱分得快-L2-4哲哲打游戏

全屏浏览题目切换布局作者 陈越单位 浙江大学古人云:秀恩爱,分得快。互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友?

Funing7的博客 950

从零开始:如何用Python建立你的第一个人工智能模型

在这篇文章中,我们将介绍如何从零开始使用Python建立你的第一个人工智能模型。无论你是刚接触编程的新手,还是有经验的开发者想进一步探索人工智能领域,这篇文章都将为你提供清晰、详细的指南。我们将一步步探索数据预处理、模型建立、训练和测试的过程,以及如何解读模型的结果。

Allen1862105的博客 4万+

PTA | 秀恩爱分得快

互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。为了区分性别,我们用编号前的负号表示女性)和 M(不超过1000,为照片总数)。其中 K(≤ 500)是该照片中出现的人数,P[1] ~ P[K] 就是这些人的编号。正是彼此亲密度最高的一对,则只输出他们的编号,无论是否还有其他人并列。古人云:秀恩爱,分得快。

2201_75933169的博客 875

大规模新闻聚合爬虫实战:Python爬取数百万新闻数据的完整指南

本文详细介绍了如何构建一个大规模新闻聚合爬虫,结合Python异步爬虫技术,实现高效、稳定的新闻数据采集。增加NLP模块对新闻内容做自动分类、情感分析。引入机器学习模型检测新闻真实性。使用分布式爬虫框架进一步提升规模。增加多媒体内容抓取与处理。

2201_76125261的博客 1554

【PyGIS】ERA5降雨蒸散发数据预处理

ERA5-LAND降雨蒸散发数据预处理

```On Earth, Be Water, By Coding``` 3144

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

PTA-L2-028 秀恩爱分得快 (25分) 传送门 这道题纯粹的数据结构 我们特别注意0和-0的情况,所以应该字符串读入。 如果把所有异性的亲密度值都算出来,会tle 我们只需要算出关于那一对情侣和异性之间的值即可。 然后注意特殊情况的考虑,如果所给出的一对情侣没有出现在这些照片中,我们只需要输出这对情侣即可 所以我们初始化找最大的亲密度值的时候只能初始化为0,不能是负数(我在这wa了一次) 我们用sex[]来标记男女,女生标记为1. 注意题目中说到的彼此,只有彼此都是对方最亲密的,才输出自己本身,否则

qq_44624316的博客 2016

大数据数据埋点技术面试题及参考答案(持续更新)

事件:指的是用户执行的具体动作,如页面浏览、按钮点击、商品购买等。事件是触发数据记录的直接原因,是分析用户行为的关键点。属性:是与事件相关的额外信息,可以提供关于事件的更多上下文。例如,用户点击的按钮颜色、大小、页面位置等。属性有助于更细致地分析用户行为,理解事件发生的具体情境。事件和属性共同构成了数据埋点的数据模型,它们使得收集的数据具有可分析性,从而可以用于深入理解用户行为和优化产品。

大模型大数据攻城狮的专栏 2097

PTA秀恩爱分得快 (25分)

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

yan936462437的博客 1800

大模型对齐的核心引擎:RLHF三阶段完整技术体系详解——从InstructGPT到ChatGPT与Claude 4.6的工程实践

RLHF从InstructGPT起步,经由ChatGPT、Claude系列的工程实践,已演变为现代大语言模型不可或缺的对齐基础设施。其三阶段流程——SFT构建基础能力基线,奖励模型将人类偏好编码为可微信号,PPO以KL约束驱动策略向偏好分布优化——构成了当代对齐技术的核心骨架。OpenAI的路线侧重于以海量人工标注和多目标奖励建模持续精细化RLHF流程,在规模与工程深度上持续推进;

nmdbbzcl的博客 1063

计算机组成原理(第三版)唐朔飞-第一章第二章-课后习题

计算机组成原理

weixin_45735391的博客 7万+

PTA 秀恩爱分得快 (二维vector)

L2-028 秀恩爱分得快 (25 分) 分析: 本题有一万个坑: 坑一:序号0用可能为女,即-0,这时整形读取是没有区别的,要用getchar()来读,用一个函数来读取较为方便。 坑二:存储照片上的人要把男女分开,才可以满足时间要求,就只计算异性性间的亲密度。 坑三:在判断是否彼此为最亲近的人时,考虑两方最大亲密值相同,但不是对方的情况。 代码: #include <bit...

圣诞老头的博客 1716

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

PTA 秀恩爱分得快

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

xjc1481612876的博客 374

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

PTA L2-028 秀恩爱分得快

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

smilng的博客 1236

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

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

PTA 秀恩爱分得快(树)

互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。但如果 A 和 B 正是彼此亲密度最高的一对,则只输出他们的编号,无论是否还有其他人并列。其中 K(≤ 500)是该照片中出现的人数,P[1] ~ P[K] 就是这些人的编号。这道题的思路挺简单,就是用一个动态数组存储照片中的人,用一个数组存储性别,然后n。

qq_62235017的博客 520

PTA:7-37 秀恩爱分得快 (简洁易懂,详解)

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

zlzhujust@gmail.com 7234

PTA L2-028 秀恩爱分得快

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

写代码的七柒的博客 575

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

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

xcatf的博客 2065

PTA L2-028 秀恩爱分得快:图论建模与亲密度计算详解

图论是计算机科学中用于研究网络结构关系的重要数学模型,其核心原理是通过节点和边来抽象实体与连接。在社交网络分析等应用场景中,图论能有效建模用户间的交互关系,并通过算法计算节点间的关联强度,如亲密度。这为好友推荐、社区发现等技术提供了基础。本文聚焦于一道经典算法题目,探讨如何利用图论思想对社交照片中的异性亲密度进行建模与计算。题目要求处理包括ID映射、浮点数精度和零值边界在内的多个工程细节,并对比了邻接矩阵与邻接表两种数据结构的优劣,涉及亲密度累加、最高值查询和完美匹配判断等核心逻辑,对培养严谨的数据处理与算

weixin_31960565的博客 264

PTA-秀恩爱分得快 (10 分)

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

m0_51344983的博客 1326

pta l2-28(秀恩爱分得快)

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

weixin_34061042的博客 595

PTA天梯赛-L2-4 秀恩爱分得快

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

q1430186623的博客 608

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

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

weixin_30367543的博客 226
上一篇: C. Hamburgers Codeforces Round 218 (Div. 2)
下一篇: PTA红色警报
翰墨织梦
博客等级 码龄4年 384粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值