2022 团体程序设计天梯赛 L2-4

题意

  1. 给定每个人和其他人的距离
  2. 没有直接连接的两人的距离是二者的最短路径长度
  3. 没有连接的两人不做考虑
  4. 一个人的受欢迎度是1/所有异性到ta的最大距离
  5. 求男性最受欢迎的人的编号,和女性最受欢迎的人的编号

思路

  1. floyd求最短路
  2. 模拟

本题难度在于恶臭的阅读理解

solution

这份代码是赛后完成的,且现在没有开放补题,不能保证完全通过。

upd 2022年5月2日 已通过全部测试用例

#include <bits/stdc++.h>

#define rep(i, l, r) for (int i = l; i <= r; ++i)
using namespace std;
typedef long long ll;
#define int ll
typedef vector<int> vi;
const int N = 507;
const int INF = 0x3f3f3f3f;
int a[N];
bool male[N];

int g[N][N];
void out(vector<int> a) {
    for (int i = 0, n = a.size(); i < n; ++i) {
        cout << a[i] << (i == n - 1 ? '\n' : ' ');
    }
}
signed main() {
    int n;
    cin >> n;
    cin.ignore();
    rep(i, 1, n) a[i] = -1;
    rep(i, 1, n) rep(j, 1, n) if (i != j) g[i][j] = INF;
    rep(j, 1, n) {
        string sex;
        cin >> sex;
        if (sex == "M") male[j] = 1;
        int k, x, s;
        cin >> k;
        rep(i, 1, k) {
            cin >> x;
            cin.ignore();
            cin >> s;
            g[j][x] = s;
        }
    }

    rep(k, 1, n) rep(x, 1, n) rep(y, 1, n) {
        g[x][y] = min(g[x][y], g[x][k] + g[k][y]);
    }

    rep(i, 1, n) rep(j, 1, n) if (male[i] != male[j]) a[i] = max(a[i], g[j][i]);

    int maleMin = INF, femaleMin = INF;
    rep(i, 1, n) {
        if (a[i] != -1) {
            if (male[i])
                maleMin = min(maleMin, a[i]);
            else
                femaleMin = min(femaleMin, a[i]);
        }
    }
    vi resM, resF;
    rep(i, 1, n) {
        if (male[i] && a[i] == maleMin) resM.push_back(i);
        if (!male[i] && a[i] == femaleMin) resF.push_back(i);
    }
    out(resF);
    out(resM);

    return 0;
}
/*
6
F 1 4:1
F 2 1:3 4:10
F 2 4:2 2:2
M 2 5:1 3:2
M 2 2:2 6:2
M 2 3:1 2:5
2 3
4
*/
算法竞赛之路 文章被收录于专栏

整理、记录算法竞赛的好题

全部评论

相关推荐

11-13 10:17
门头沟学院 Java
昨天面美团,jvm,juc问的好深啊,感觉小林coding不太够喔,牛油们有没有什么推荐的八股网站嘛🕒&nbsp;岗位/面试时间👥&nbsp;面试题目🤔&nbsp;面试感受
明天不下雨了:小林Coding:https://xiaolincoding.com/ 全栈哥:https://www.pdai.tech/ Guide哥:https://javaguide.cn/ 秀哥:https://interviewguide.cn/ 沉默王二:https://javabetter.cn/home.html 磊哥:https://www.javacn.site/interview/basic/ 小傅哥:https://bugstack.cn/ 源码哥:https://doocs.github.io/source-code-hunter/#/ 各大厂的公众号技术文章和一些经典的书籍
面试太紧张了怎么办?
点赞 评论 收藏
分享
11-17 11:15
门头沟学院 Java
金山办公终于发offer了,但薪资和平台都不如已有的offer打算拒了,A不了薪资,不满意直接拒了,留给需要的人嘿嘿嘿时间线:10.14线下一面&nbsp;,10.23线上二面,下午发测评,11月1日HR面,11月14日电话谈薪,11月17日直接发offer
star__plat...:好兄弟干的好啊,解气。金山第一次笔难度高的离谱,第二次简单的离谱全A了,用人部门筛选中估计最后还是要挂我,就这今早智联招聘还给我发信息让我投
offer帮选
点赞 评论 收藏
分享
09-28 09:18
吉首大学 Java
离上岸不远了的牛油很...:同27,你写的专业技能那些是真熟练了吗,我感觉稍微问深一点我都要🐔
你找实习最大的坎坷是什么
点赞 评论 收藏
分享
11-06 16:50
门头沟学院 Java
用微笑面对困难:word打字比赛二等奖的我,也要来凑合凑合
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务