最新要闻
- 当前快播:荷兰一男子疯狂捐精成550个孩子的爸爸:被判禁止捐精 再捐每次罚款76万
- 环球实时:吉利副总裁:不管极氪蔚来 中国品牌总要有一个打BBA的
- 当前简讯:男子订民宿被毁约 房东:住满了 没办法
- 定制长沙独家游玩攻略,大学生手绘旅游地图 世界今日讯
- 环球观点:自研“北斗高精”!百度地图宣布攻破“宇宙最难”8D重庆隧道导航
- 天天动态:米粉直呼Redmi Note 12 Turbo续航太顶:亮屏4小时耗电才33% 用的还是流量
- 焦点速递!斗图冯骥才看了答案。
- 《长空之王》无悬念领跑!五一档新片总票房破10亿元:你贡献多少?
- 赢麻了!DC:黑人版《超人》有望成为现实
- 金帝纯黑68%巧克力薄片2盒19.9元:浓醇美味
- 全球今亮点!山东齐鲁工业大学官网招生计划 山东齐鲁工业大学官网
- 【天天快播报】新系统基于鸿蒙!华为海外发布4G新机Nova 11i:搭载骁龙680、2200元
- 时讯:高速上2车追尾洒落大量现金 场面壮观:网友直呼想停车去捡 目击者称是冥币
- 气温骤降超10℃!新一轮冷空气来袭:局地暴雨大雪 环球快看
- 全球球精选!Win11虚拟桌面切换动画终于回归!可惜依然生硬
- 天天视讯!“五一”去怒江,穿越东方大峡谷
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球聚焦:找段错误找了一个小时,纪念一下
【资料图】
题目链接:https://pintia.cn/problem-sets/994805342720868352/exam/problems/994805344776077312
你猜怎么着,我把M看成了N,N<300,我数组就开了1000,我甚至觉得很够了已经,结果人家M的范围压根没给,后来算算大概有5万。抛了个段错误我还一直以为是测试数据有问题,蠢死我了!!
这题我一开始按照dfs的套路去做了,但是最后一个节点超时了我靠:
#include#include#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3f struct edge { string to; int next;} g[50000];int head[301], cnt;string s, t;unordered_map M;vector > res;vector path;int vis[301], gender[301];void dfs(string cur, int cur_step) { if (cur_step == 4) { // 找到 res.push_back(path); return ; } if (cur_step == 1) { // 找和A同性的 for (int i = head[M[cur]]; i; i = g[i].next) { string to = g[i].to; if (!vis[M[to]] && gender[M[to]] == gender[M[s]] && to != t) { vis[M[to]] = 1; path.push_back(to[0] == "-" ? to.substr(1, to.size() - 1) : to); dfs(to, cur_step + 1); path.pop_back(); vis[M[to]] = 0; } } } else if (cur_step == 2){ // 找和B同性的 for (int i = head[M[cur]]; i; i = g[i].next) { string to = g[i].to; if (!vis[M[to]] && gender[M[to]] == gender[M[t]] && to != t) { vis[M[to]] = 1; path.push_back(to[0] == "-" ? to.substr(1, to.size() - 1) : to); dfs(to, cur_step + 1); path.pop_back(); vis[M[to]] = 0; } } } else if (cur_step == 3) { // 找B for (int i = head[M[cur]]; i; i = g[i].next) { string to = g[i].to; if (!vis[M[to]] && to == t) { vis[M[to]] = 1; dfs(to, cur_step + 1); vis[M[to]] = 0; } } }}bool cmp(vector &a, vector &b) { return (a[0] < b[0]) || (a[0] == b[0] && a[1] < b[1]);}void output() { for (int i = 0; i < res.size(); i++) { cout << res[i][0] << " " << res[i][1] << endl; }}int n, m, k, num;int main() { cin >> n>> m; for (int i = 0; i < m; i++) { string a, b; cin >> a >> b; if (M.find(a) == M.end()) { M[a] = ++num; } if (M.find(b) == M.end()) { M[b] = ++num; } g[++cnt] = edge{b, head[M[a]]}; head[M[a]] = cnt; g[++cnt] = edge{a, head[M[b]]}; head[M[b]] = cnt; gender[M[b]] = (b[0] != "-"); gender[M[a]] = (a[0] != "-"); } cin >> k; for (int i = 0; i < k; i++) { cin >> s >> t; if (M.find(s) == M.end()) { cout << 0 << endl; continue; } memset(vis, 0, sizeof(vis)); vis[M[s]] = 1; path.clear(); res.clear(); dfs(s, 1); sort(res.begin(), res.end(), cmp); printf("%d\n", res.size()); output(); } return 0;}
没办法,两个半小时的苦苦挣扎之后再叫我再去优化代码,我可不干了。换个思路吧,看看柳神的代码:
#include #include #include #include #include using namespace std;unordered_map arr;struct node { // vector + 结构体就好了,妈的,我在搞什么二维的vector,多捞啊 int a, b;};bool cmp(node x, node y) { return x.a != y.a ? x.a < y.a : x.b < y.b; // 三元表达式的写法,嘿嘿,学到了}int main() { int n, m, k; scanf("%d%d", &n, &m); vector v[10000]; for (int i = 0; i < m; i++) { string a, b; cin >> a >> b; if (a.length() == b.length()) { // 邻接表记录同性朋友,思路是真的清晰! v[abs(stoi(a))].push_back(abs(stoi(b))); // stoi() 这玩意为啥总是记不住?有前导零也不怕,照样盘它! v[abs(stoi(b))].push_back(abs(stoi(a))); } arr[abs(stoi(a)) * 10000 + abs(stoi(b))] = arr[abs(stoi(b)) * 10000 + abs(stoi(a))] = true; // 邻接矩阵一维化,有效地节省了空间,秀我一脸。。。 // 连等是个技巧 } scanf("%d", &k); for (int i = 0; i < k; i++) { int c, d; cin >> c >> d; vector ans; for (int j = 0; j < v[abs(c)].size(); j++) { for (int k = 0; k < v[abs(d)].size(); k++) { if (v[abs(c)][j] == abs(d) || abs(c) == v[abs(d)][k]) continue; // 朋友总不能直接是对象吧,也不能是自己吧,PASS PASS if (arr[v[abs(c)][j] * 10000 + v[abs(d)][k]] == true) ans.push_back(node{v[abs(c)][j], v[abs(d)][k]}); // 我的朋友和你的朋友是不是朋友呢?两个for循环 woc 多么省力啊,我还搁那 dfs 半天写不清楚 } } sort(ans.begin(), ans.end(), cmp); // 排完序就出来了,over!! printf("%d\n", int(ans.size())); for(int j = 0; j < ans.size(); j++) printf("%04d %04d\n", ans[j].a, ans[j].b); // 千万记得格式 %04d 上一题我就栽在这里了,耗了半个小时才发现 } return 0;}
关键词:
-
全球聚焦:找段错误找了一个小时,纪念一下
题目链接:https: pintia cn problem-sets 994805342720868352 exam problems 994805344776077312你猜怎么
来源: -
环球今热点:2023-05-01:给你一个整数 n , 请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...]
2023-05-01:给你一个整数n,请你在无限的整数序列[1,2,3,4,5,6,7,8,9,10,11, ]中找出并返回第n位上的数
来源: 全球聚焦:找段错误找了一个小时,纪念一下
环球今热点:2023-05-01:给你一个整数 n , 请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...]
20 文件系统的格式化操作_世界聚看点
天天热点评!详解 HTTPS 概念
当前快播:荷兰一男子疯狂捐精成550个孩子的爸爸:被判禁止捐精 再捐每次罚款76万
环球实时:吉利副总裁:不管极氪蔚来 中国品牌总要有一个打BBA的
当前简讯:男子订民宿被毁约 房东:住满了 没办法
定制长沙独家游玩攻略,大学生手绘旅游地图 世界今日讯
Mac M芯片使用PD安装centos7无页面安装
环球观点:自研“北斗高精”!百度地图宣布攻破“宇宙最难”8D重庆隧道导航
天天动态:米粉直呼Redmi Note 12 Turbo续航太顶:亮屏4小时耗电才33% 用的还是流量
焦点速递!斗图冯骥才看了答案。
天天微速讯:C# 基础编程题集锦
最近公共祖先 倍增算法
《长空之王》无悬念领跑!五一档新片总票房破10亿元:你贡献多少?
赢麻了!DC:黑人版《超人》有望成为现实
金帝纯黑68%巧克力薄片2盒19.9元:浓醇美味
全球今亮点!山东齐鲁工业大学官网招生计划 山东齐鲁工业大学官网
【天天快播报】新系统基于鸿蒙!华为海外发布4G新机Nova 11i:搭载骁龙680、2200元
时讯:高速上2车追尾洒落大量现金 场面壮观:网友直呼想停车去捡 目击者称是冥币
气温骤降超10℃!新一轮冷空气来袭:局地暴雨大雪 环球快看
全球球精选!Win11虚拟桌面切换动画终于回归!可惜依然生硬
天天视讯!“五一”去怒江,穿越东方大峡谷
最低分辨率仅648P!《星战绝地:幸存者》PS5版优化同样翻车_环球微动态
关注:大学选课是啥_大学选课是什么意思
国内普工月薪1万块 父母看病报销!马斯克称特斯拉每个人都是工人 经济严重衰退将来临|全球球精选
今年五一国人太疯狂!珠穆朗玛峰凌晨两点还在堵 手冻肿还有人插队 观天下
新消息丨lua基础语法篇一
5年级上册语文书课文_5年级上册语文书
【天天新视野】《饥饿游戏》美女演员晒照反击黑客勒索:我想展示给谁看都行
《英雄联盟》人机“智商”将升级:会打野抢龙了-每日时讯
苹果的糖煮制脯技术 下_关于苹果的糖煮制脯技术 下的简介
人类希望!星舰并未失败 今年砸20亿美元重发射 马斯克详解爆炸细节厉害了
LC 3. 无重复字符的最长子串 全球实时
世界实时:SRIO接口卡航电总线解决方案
Java线程池中的四种拒绝策略
全球播报:我在画画的拼音_画画的拼音
这波太狠了!CMA禁止微软在未来10年内收购动暴 热点聚焦
世界看热讯:中文互联网青春流落“天涯”
资讯推荐:山东一景区霸气公告:看不到景观退款
天玑之王诞生!iQOO Neo8 Pro前瞻:性能霸榜安卓阵营
快看:真鞋底“烤机”!男子鞋里藏48块CPU入境被海关查获
速看:恐难回本:《圣斗士》电影日本上映3天票房仅250万
关于Linux系统-sshd服务-AllowUsers与AllowGroups-选项的安全加固配置
工厂方法与FactoryBean
9472米!我国开钻亚洲最深油气井
今日讯!apex英雄手游版什么时候上线 apex英雄手游上线时间一览
70%的人都没做到!夏季开空调前的这些事项必须做到位_环球新要闻
韩国芯片继续暴跌:三星等存储没人买!国产SSD无惧竞争 2TB杀到489元
全球微速讯:终于改了!微软决定减少Win11通知数量
海南一漂流景区五一堵船了 网友:好像在下饺子一样
短讯!孙晓玲
多亏了国产SSD!硬盘进入“白菜价”时代
当前资讯!3人合吃一份自助餐:服务员劝阻被怼
苹果华为小米OPPO和vivo手机壳只要5.9元起:覆盖上百款机型 总有一款适合你
回力2023春季新款老爹运动鞋到手29.9元起:舒适透气_全球看点
马里奥成就游戏改编作品之最_天天热资讯
“五一”假期第二天全国道路交通总体平稳有序-全球最新
马里奥成就游戏改编作品之最
环球快消息!疯狂!淄博烧烤店主为劝退游客自己刷差评 犄角旮旯里的烧烤店都能被发现
锐龙7000系烧毁问题解决:AMD推送AGESA 1.0.0.7 BIOS主板固件更新
2020赛季中超第一阶段第11轮苏州赛区的一场比赛 由河北华夏幸福对阵北京国安
国屏之光!京东方首发三百色域切换显示技术
环球消息!五一长沙排队:景点队伍排到隔壁景区 凌晨2点打车还得等位
Redmi 2023年快充之王来了!210W新机已在路上|天天通讯
QLC尚未普及HLC又来!写入寿命堪忧
生死狙击v8真号账号密码没人挤2022(生死狙击好号和密码v8真的电脑版)
读SQL进阶教程笔记14_SQL编程要点
全球热门:Android 14来了!本月登场
印度将成全球人口最多国家背后:年轻人多、文化程度太低
5G必要专利全球第一!网友分享华为5G工程测试手机 早开始实测 世界新视野
屋漏原指的是屋子西北角 而不是屋子漏了 环球看热讯
速讯:5月新规来了!官方出手整治互联网弹出广告:确保一键关闭
全球快资讯丨奥利瑟拉佐尔的烈焰之爪在哪里_奥利瑟拉佐尔的烈焰之爪
天天通讯!丁立人创造历史 中国棋手首次加冕世界棋王:奖金830多万
我做梦也没想到 华语乐坛竟以这种形式复兴了
一公司称“小气吧啦的特斯拉”“毛坯房汽车”!被判赔10万
神剧情!利物浦前15分钟3-0领先,热刺连追三球后遭若塔补时绝杀 天天速讯
《逆水寒手游》评测:这次呼吸不要钱了
重点聚焦!安徽工业大学怎么样 是二本吗一还
19 组织文件
焦点热讯:移位运算
特种兵式旅游引发热议 男子火车站拎1袋馒头沾方便面吃:该省省该花花 每日聚焦
五一假期才第2天网友已经玩累:敦煌“堵骆驼”了 还有红绿灯 天天快讯
林正英粤语电影黑白双煞 林正英粤语电影 天天即时看
关于PTA第二次大作业的总结-热点
世界微动态丨200公里开车11个半小时!女子吐槽五一旅游导航都堵紫了
环球观察:延庆治理有“妙招儿”,多举措解决杨柳飞絮烦恼~
联想65W氮化镓插排上架:出差不用带电源了 全球今日报
智能手机价格越来越贵 联发科CEO表态:不再打价格战
17 设备处理内核I/O包 天天看点
当前报道:车头神似动车组 理想纯电MPV假想图曝光
中国空间站将收到70公斤水果快递 天舟六号货运飞船5月上旬发射-全球视讯
Black Girl Gamers创始人批评幻想游戏:可以有龙 但不能有黑人
快看:征服世界最高沙峰!比亚迪仰望U8登顶必鲁图峰:不陷沙、不翻车 真越野
16 内核中注册设备_世界今亮点
PTA题目集4~6总结
全球热点评!详细的BoltDB学习记录文档
看点:OO题目集4-6总结
金融类都有什么-金融类都有什么专业 天天即时看