首页 > 试题广场 >

同城急送定价引擎

[编程题]同城急送定价引擎
  • 热度指数:96 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

你的任务是根据《闪电送计费规则 (v4.0)》,计算用户下单时的预估运费。

你需要写一个 Prompt,把用户的输入转换成我们规定的 JSON 格式。

知识库素材 (Knowledge Base)

《闪电送计费规则 (v4.0)》
[L.1] 距离起步价:配送距离在 5公里(含)以内,一口价 12 元。
[L.2] 超程附加费:超过 5公里 的部分,每公里加收 2 元。
    - 示例:8公里 = 12 + (8-5)*2 = 18元。
[L.3] 重量附加费:
    - 物品重量 5kg 以内不收费。
    - 超过 5kg 的部分,每公斤加收 5 元(不足1kg按1kg计算)。
    - 此费用是固定附加项,不参与高峰期翻倍。
[L.4] 高峰期溢价:
    - 若下单时间处于“早高峰(07:00-09:00)”或“晚高峰(17:00-19:00)”,基础运费(即 L.1 + L.2 的总和)需乘以 1.5倍。
[L.5] 违禁品管控(优先级最高):
    - 物品描述若包含“烟花”、“汽油”、“酒精”等易燃易爆词汇,直接拒单(费用为0,状态为REJECTED)。


输入描述:
一段包含下单时间、配送距离、物品名称、物品重量的自然语言描述。


输出描述:
{
  "final_price": 0.0, //保留 1 位小数) 
  "status": "String" //"NORMAL" / "SURGE" / "REJECTED" 
}
示例1

输入

中午 12:00(非高峰)。送一台打印机,距离 4公里,重量 5.1公斤。

输出

{
"final_price": 17.0,
"status": "NORMAL"
}

备注:
提示词学习 提示词工程指南
测试发现只需要有基础知识和输出格式以及一个reasoning的示例,模型就可以很好输出,system prompt和 workflow部分反而没什么用

Knowledge Base: 《闪电送计费规则 (v4.0)》
[L.1] 距离起步价: 距离 ≤ 5公里,一口价 12 元。
 
[L.2] 超程附加费: 距离 > 5公里 的部分,每公里加收 2 元。
 
[L.3] 重量附加费: 重量 ≤ 5kg 不收费;超过 5kg 的部分,每公斤加收 5 元(不足1kg向上取整)。注意:此项不参与高峰翻倍。
 
[L.4] 高峰期溢价:
 
早高峰 (07:00-09:00) 或 晚高峰 (17:00-19:00)。
 
计算公式:(L.1 + L.2) * 1.5。状态标记为 SURGE。
 
[L.5] 违禁品管控 (最高优先级): 包含“烟花”、“汽油”、“酒精”等词汇时,费用为 0,状态为 REJECTED。
 
Constraints
输出格式: 必须先输出 ## Reasoning 记录推导过程,随后输出 ## JSON Output,确保JSON规范,且final_price 保留 1 位小数。
 
 
Examples
Input
中午 12:00(非高峰)。送一台打印机,距离 4公里,重量 5.1公斤。
 
Output
Reasoning
安全校验: “打印机”不属于违禁品。
 
基础运费: 距离 4km ≤ 5km,触发 [L.1] 一口价 12 元。无超程费 [L.2]。基础运费 = 12.0。
 
高峰判定: 12:00 不在早晚高峰时段,倍率为 1.0。状态为 NORMAL。
 
重量计算: 5.1kg 超过 5kg 的部分为 0.1kg。按“不足1kg计为1kg”原则,超重 1kg。重量费 = 1 * 5 = 5.0。
 
最终汇总: 12.0 (基础) + 5.0 (重量) = 17.0。
 
JSON Output
{ "final_price": 17.0, "status": "NORMAL" }

发表于 2026-03-11 01:57:11 回复(0)