【深基3.例5】洛谷团队系统

GitHub跳转原题关系图返回列表

分别计算本地和洛谷团队耗时,用条件表达式输出更短方案。

OJ: luogu

题目 ID: P5713

难度:入门

标签:python入门条件判断数学

日期: 2026-07-15 18:07

题意

配置 n 道题。本地每题花 5 分钟;洛谷团队每题花 3 分钟,还要额外花 11 分钟。若本地更短输出 Local,否则输出 Luogu

思路

直接计算两种方案总耗时:

  • local = 5 * n
  • luogu = 3 * n + 11

如果 local < luogu,本地更短;否则按题意输出 Luogu

brute.py 不适合这题,因为直接比较两个公式就是完整解法。

Python 知识

  • 条件表达式 "Local" if local < luogu else "Luogu" 可以把二选一输出写成一行。
  • 注意题目说“本地配置花费的总时间短”才输出 Local,相等时输出 Luogu
  • 先把两个方案分别命名成变量,比直接把公式塞进 if 更容易检查。

对应的本地 Python 笔记:

  • /home/rainboy/mycode/hugo-blog/content/program_language/python/input_output_and_strings.md:整数输入输出。
  • /home/rainboy/mycode/hugo-blog/content/program_language/python/oj_input_output_cheatsheet.md:输出字符串答案。

代码

python
n = int(input())

local = 5 * n
luogu = 3 * n + 11

print("Local" if local < luogu else "Luogu", end="")
cpp
/**
 * Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
 * rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
 * rainboy的学习导航网站: https://idx.roj.ac.cn
 * create_at: 2026-07-27 00:00
 * update_at: 2026-07-27 00:00
 */

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n; // 题目数量
    cin >> n;
    // 本地方案:每题 5 分钟
    int local = 5 * n;
    // 洛谷方案:每题 3 分钟 + 额外 11 分钟
    int luogu = 3 * n + 11;
    // 谁总耗时短就输出谁
    if (local < luogu) {
        cout << "Local" << endl;
    } else {
        cout << "Luogu" << endl;
    }
    return 0;
}

Pythonic 写法

条件表达式:

python
n = int(input())
print('Local' if 5 * n < 11 + 3 * n else 'Luogu')

复杂度

只做常数次运算和比较,时间复杂度 O(1)O(1),空间复杂度 O(1)O(1)

总结

比较方案类题目,先把每个方案的代价算出来,再比较。特别注意题面中“小于”和“小于等于”的区别。