爆刷PAT(甲级)——之【1139】 First Contact (30 分)——模拟+两个细节

Qt for WebAssembly环境搭建 一、前言 二、Ubuntu 1、在线安装Qt15 在线安装下载器:https://download.qt.io/official_releases/online_installers/ 安装时记得勾选WebAssembly,如下: 2、安装依赖 # Install Python sudo apt-get install python2.7 # Install CMake (optional, only needed for tests and building Binaryen) sudo apt 阅读详情

题意:N个小朋友,告诉你他们的朋友关系。K次询问,对每次询问回答有几种告白方式。告白的方法是——A喜欢B,那么A要找邻接点C,C找邻接点D,D告诉他的朋友B实现告白。要求A和B同性别,C和D同性别,A和B不一定。人数N小于300,询问K小于100.输出所有可行的C和D,按照升序输出。

思路:思路可以想到,列举一下A的所有朋友,列举一下B的所有朋友,然后看看他们各自的朋友有几对朋友即可。但是我写的太慢太复杂了。。。晕死,也懒得改了。

难点:这题的按照上书写了之后只拿到20分。。。我也没想到啥原因。看了柳神的博客学习之后,恍然大悟,发现本题有两个细节情况必须要讨论!

1、判断性别的时候如果ID是0000,按照数字读入就会没办法判断此人的性别。所以只能用字符串输入的形式。这样就能过第二个样例,多得4分。

2、A要像B告白的话,在建A的朋友列表的时候,必须要排除B。。。这个点考虑就能过另外三个点,加6分。

本题考查编码习惯、思考细节方面很不错,码一下留个纪念。

Code:

#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;
#define inf 309
#define INF 0x3f3f3f3f
#define loop(x,y,z) for(x=y;x<z;x++)

int n,m,k;
unordered_map<int,int>mp;
unordered_map<int,int>mp2;
bool isboy[inf];
int e[inf][inf];

int stoi(string &s1)//Codeblocks不支持,手写一下
{
    const char *s=s1.c_str();
    int len=s1.length();
    int flag=1;
    if(s1[0]=='-')flag=0;
    int sum=0,i=0;
    if(!flag)i++;
    for(i;i<len;i++)
        sum=sum*10+s[i]-48;
    if(!flag)sum*=-1;
    return sum;
}

bool cmp(pair<int,int>&x,pair<int,int>&y)
{
    if(mp2[x.first]==mp2[y.first])return mp2[x.second]<mp2[y.second];
    return mp2[x.first]<mp2[y.first];
}
void findAns(int x,int y)
{
    int sum=0,i,j;
    vector<int>left;
    left.clear();
    vector<int>right;
    right.clear();
    vector< pair<int,int> >ans;
    ans.clear();

    loop(i,1,n+1)if(e[x][i]&&i!=y&&isboy[x]==isboy[i])left.push_back(i);
    loop(i,1,n+1)if(e[y][i]&&i!=x&&isboy[y]==isboy[i])right.push_back(i);
    loop(i,0,left.size())
    loop(j,0,right.size())
    {
        int u=left[i];
        int v=right[j];
        if(e[u][v]&&((isboy[x]==isboy[y]&&isboy[u]==isboy[v])||(isboy[x]!=isboy[y]&&isboy[u]!=isboy[v])))
        {
            sum++;
            ans.push_back(pair<int,int>(u,v));
        }
    }
    printf("%d\n",sum);
    if(!sum)return;
    sort(ans.begin(),ans.end(),cmp);
    loop(i,0,ans.size())
    printf("%04d %04d\n",mp2[ans[i].first],mp2[ans[i].second]);
}

int main()
{
    int i,j;
    int x,y;
    scanf("%d%d",&n,&m);
    int id=1;
    loop(i,0,m)
    {
        bool flag1=1,flag2=1;
        string s1,s2;
        cin>>s1>>s2;
        int x=stoi(s1);
        int y=stoi(s2);
        if(s1[0]=='-'){flag1=0;x=-x;}
        if(s2[0]=='-'){flag2=0;y=-y;}
        if(mp.count(x))x=mp[x];
        else
        {
            mp[x]=id;
            mp2[id]=x;
            x=mp[x];
            id++;
        }

        if(mp.count(y))y=mp[y];
        else
        {
            mp[y]=id;
            mp2[id]=y;
            y=mp[y];
            id++;
        }
        isboy[x]=flag1;
        isboy[y]=flag2;
        e[x][y]=e[y][x]=1;
    }
    scanf("%d",&k);
    while(k--)
    {
        scanf("%d%d",&x,&y);
        x=x<0?-x:x;
        y=y<0?-y:y;
        x=mp[x];
        y=mp[y];
        findAns(x,y);
    }

    return 0;
}

 

rk3588 LightSensor适配从驱动到应用层 本文详细介绍了在RK3588平台上实现光感驱动的开发流程。主要包括:1) 在设备树中配置I2C5接口挂载光感设备;2) 编写内核驱动代码实现光感数据采集;3) HAL层通过ioctl与驱动交互;4) 在BoardConfig.mk中启用相关宏定义;5) Framework层通过AutomaticBrightnessController实现自动亮度调节算法;6) 应用层可通过监听系统设置获取光感变化并调整屏幕亮度。整个流程涵盖了从底层驱动到上层应用的完整实现方案,重点解决了光感设备注册、数据采集传输和自动亮度 阅读详情

相关推荐

保姆级教程:从零到飞,用QGC地面站搞定PX4无人机全流程配置(含避坑指南)

本文提供了一份详细的QGC地面站使用教程,指导用户从零开始配置PX4无人机,涵盖固件烧录、传感器校准、遥控器设置及航点规划等关键步骤,并包含实用的避坑指南,帮助新手顺利完成首飞。

weixin_30329623的博客 219

H - Little Wish~ lyrical step~ HDU - 4735 跳舞链

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4735 题意: 给你一棵无向有权树,每个结点上有一个男生或者女生,当一个女生开始的距离小于等于d的范围内有一个男生,那么这个女生就算是被保护着了。现在问,你要交换几个男生的位置可以让所有的女生被保护 做法: 为了这道题特意去学了一下跳舞链,知道了跳舞链不仅仅能用...

人生如戏 229

苹果搜索广告ASA开户教程

阅读导航 一、创建账号 1、登录网站 2、填写账号主体信息 3、填写商家和发票信息 4、选择付款方式 二、上传审核材料 1、上传文件 2、请求审批 3、上传文件中的常见问题 一、创建账号 1、用Apple ID登录ASA网站 首先我们进入开户网址:https://app-ads.apple.com/ 如果已拥有Apple ID,直接登录即可,如果没有Apple ID,可以先按照步骤创建Apple ID,再返回登录。 注意,这里登录的Apple ID也有讲究: ① 如果是开发

testflight121的博客 2128

菜鸟学习 - Unity中的热更新 - Lua和C#通信

孙广东 2015-4-6热更新我是个菜鸟,感谢网上的各位的奉献,这次又当一回搬运工。准备:1、了解Lua的语法         推荐书籍《Lua程序设计 第二版》2、使用ULua插件进行通信 尽量早上真机。因为Bug问题特别多。 大杂烩:更新LUa其实也是更新资源。 Lua被看作一个资源么。Lua代码都是运行时才编译的,不运行的时候就如同一张图片、一段音频一样,都是文件资源;所以更新逻辑只需要更新

游戏路上的小学生 6606

定制PYNQ的overlay

一、用HLS生成一个定制IP(加速器)(1)首先打开vivado hls,本人的版本是2017.2,点击创建一个新工程。(2)设置工程名和路径,顶层函数设置为add,创建一个新的C++程序,名字叫做adder.cpp,不用在testbench中添加文件。选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成。             (3)在左侧的菜单栏里选择Sourc...

bramblewalls的博客 1万+

【Bug—eNSP】华为eNsp路由器设备启动一直是0解决方案!

软件,添加AR设备时启动异常,最开始错误代码是40,最后通过重新安装,又出现了新的问题,启动AR设备一直是0,而且界面卡住。打开控制面板→网络和Internet→网络和共享中心→更改适配器设置,然后再按以下步骤一次操作。重新打开eNsp,然后选择注册设备,注册成功后重新启动一下,这个时候AR设备就可以正常启动啦。打开eNsp→菜单→工具→选项→服务器设置,写入刚刚写的IP地址就可以了。打开VirtualBox,将左侧的文件全部删除(点击删除所有文件)

享你所想 3415

17年秋季第四题 PAT甲级 1139 First Contact (30分)

题目来源:https://pintia.cn/problem-sets/994805342720868352/problems/994805343043829760 备考汇总贴:2020年6月PAT甲级满分必备刷题技巧 Unlike in nowadays, the way that boys and girls expressing their feelings of love was qu...

qiiingc的解题记录 1121

SAP Group Reporting入门指南(11)--配置

这里选择的是FS项目目标属性,FS项目有四个目标属性,比如上图配置的是抵消目标属性,所以就去找触发FS项目的抵消目标属性配置的是哪个FS项目,就以这个FS项目作为贷方。这里选择的是FS项目目标属性,FS项目有四个目标属性,比如上图配置的是抵消目标属性,所以就去找源FS项目的抵消目标属性配置的是哪个FS项目,就以这个FS项目作为借方。例如,添加一个包含用于存储百分比的 FS 项的选项。这里选择的是FS项目的角色属性值,如果这里定义了,那么就从FS项目中找到FS项目角色属性值与之匹配的FS项目作为贷方。

bflyfish的博客 568

PAT 1139. First Contact (30)-PAT甲级真题

1139. First Contact (30) Unlike in nowadays, the way that boys and girls expressing their feelings of love was quite subtle in the early years. When a boy A had a crush on a girl B, he would usua

柳婼 の blog 8809

在 SAP BTP ABAP 环境中测试多租户 SaaS 解决方案的完整实践指南

ABAP SaaS测试阶段关键实践 在SAP BTP ABAP环境中开发多租户SaaS解决方案时,测试阶段(TST)对确保产品质量尤为关键。测试阶段应包含两个主要维度: 业务功能验证: 通过软件组件管理确保测试环境与代码仓库同步 创建并验证业务角色分配,确保权限配置正确 测试Fiori Launchpad导航流程和跨应用跳转 验证inbound/outbound通信配置 自动化质量管控: 在开发环境(DEV)执行本地ATC检查和单元测试 通过ABAP Test Cockpit(ATC)进行代码质量检查 集成

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 296

云计算 | 期末梳理(上)

2024云计算回忆版 && 复盘向梳理

知识库搭建ing 2231

PAT A1139 First Contact (30分)

PAT甲级:1139 First Contact (30分) Unlike in nowadays, the way that boys and girls expressing their feelings of love was quite subtle in the early years. When a boy A had a crush on a girl B, he would usu...

只想用最简短的代码刷题 476

PyTorch深度学习实战(6)——神经网络性能优化技术

神经网络性能优化技术是指通过改进神经网络的结构、参数初始化、正则化和训练过程等方面来提高其性能和泛化能力的方法。优化技术的选择和调试需要根据具体问题进行,通过不断实验和调整,找到最适合网络的优化策略。本节首先训练了一个简单的全连接网络,然后在此基础上介绍了简单有效的神经网络性能提升技巧。

盼小辉丶的博客 1万+

PAT甲级刷题之路——A1139 First Contact

PAT A1139 First Contact原题如下:题目大意方法错误总结技巧AC代码结语 原题如下: PAT A1139 First Contact(30分) 题目大意 A想和B交朋友,只能通过和A同性的好朋友和其好朋友且和B是同性的好朋友联系才行,找到这两个好朋友。 方法 这道题,我自己想用BFS来写,结果写错了,调不下去了去看柳神代码orz, 柳神传送门 A1139 同性的朋友标记好,然后...

qq_43677396的博客 587

WINCC7.3破解文件

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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PAT 1139 First Contact

原题链接:1139 First Contact (30分) 关键字:图论、枚举 题目大意:给出很多对朋友关系,问你是否能找到满足帮a和b“连线”的朋友。

cwtnice的博客 505

Statistics and Machine Learning Toolbox

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

【PAT甲级】1139 First Contact

📣专栏定位:为想考甲级PAT的小伙伴整理常考算法题解,祝大家都能取得满分!

Newin2020的博客 580

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

*PAT_甲级_1139 First Contact (30point(s)) (C++)【图的遍历】

1,题目描述 analogously:类似地; 类似; 近似地; crush:压坏; 压伤; 挤压变形; 把…挤入,将…塞进(狭小的空间内); 压碎; 捣碎;(通常指年轻人对年长者的短暂的) 热恋,迷恋; 果汁饮料; 2,思路 3,AC代码 4,解题过程 -0000或0000 ...

&再见萤火虫&的博客 1424

PAT——1139 First Contact 甲级

1139 First Contact题目题意题目解析注意AC代码参考(推荐) 题目 https://pintia.cn/problem-sets/994805342720868352/problems/994805344776077312 题意 A喜欢B,但A不想自己说,所以要找到自己的同性朋友C去求B的同性朋友D(C和D要求是朋友),让D把A的心意说给B听 题目解析 将给出的朋友关系放入vis中(两个四位数字合并为八位数字,借此来表示朋友关系),并将每个人的朋友(取绝对值)放入对应的向量中 判断时,遍历两

ljhsq的博客 555

PAT 甲级 1139  First Contact

1139First Contact(30 point(s)) Unlike in nowadays, the way that boys and girls expressing their feelings of love was quite subtle in the early years. When a boy A had a crush on a girl B, he would ...

漫浸天空的雨色的备忘录~ 1759

PAT甲级 1139 First Contact (30分) C++

1139 First Contact (30分) 题目大意:给定人际关系网,同时给定暗恋者A和被暗恋者B,需要找到与A同性别的朋友C,给与B同性别的朋友D传递表白信息,再由D告诉B。(A和B是同性朋友,C和D是朋友(不一定同性也不一定异性),B和D是同性朋友)。 tips: 输入不能为int,因为 -0000 和 0000 输入以后都是0,无法判定性别,因此使用string输入; 最后输出需要还原为四位的ID; 判断条件要细心。 #include<iostream>

qq_43955154的博客 1488

PAT 甲级 1139 First Contact (30 分)【模拟好题】

Unlike in nowadays, the way that boys and girls expressing their feelings of love was quite subtle in the early years. When a boy A had a crush on a girl B, he would usually not contact her directly i...

zhaohaibo的博客 1122

PAT甲级刷题记录 1139 First Contact (30分)(最后一个点超时)

我的代码大体上与网络上的思路一致 只是想多使用stl简化代码。。 但是久走夜路终闯鬼了 最后一个点超时了 原因是我不能用unordered_map unordered_map在使用pair时会报错,Stack Overflow上说好像是hash冲突 得换上邻接表或者使用10000*a+b这样的bool数组才行 也就是得大改代码。。 气傻了 不改了 下面是错了一个点的简洁代码 看来通过甲级经验也很重要。 希望对大家有所帮助 #include <bits/stdc++.h> using namesp

qq_38718366的博客 375

PAT甲级1139 First Contact (30 分)

1139First Contact(30分) Unlike in nowadays, the way that boys and girls expressing their feelings of love was quite subtle in the early years. When a boy A had a crush on a girl B, he would usually...

Dexter 643

1139 First Contact (30分)--PAT甲级真题(测试点不通过来看看)

Unlike in nowadays, the way that boys and girls expressing their feelings of love was quite subtle in the early years. When a boy A had a crush on a girl B, he would usually not contact her directly i...

Samson的博客 1368

PAT 甲级 1139 First Contact (30 分)

1139 First Contact (30 分) Unlike in nowadays, the way that boys and girls expressing their feelings of love was quite subtle in the early years. When a boy A had a crush on a girl B, he would usually not contact her directly in the first place. Instead, he

matafeiyanll的博客 709

PAT-甲级-1139 First Contact (30 分)

1139First Contact(30分) #include <iostream> #include <string> #include <vector> #include <unordered_map> #include <set> #include <algorithm> using namespace std...

valcanoshan的博客 391
上一篇: 爆刷PAT(甲级)——之【1135】 Is It A Red-Black Tree (30 分)——简单模拟
下一篇: 爆刷PAT(甲级)——之【1119 】Pre- and Post-order Traversals (30 分)——先序后序建立中序遍历
仰天倀笑
博客等级 码龄10年 313粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值