B. 线性规划

    传统题 1000ms 256MiB

线性规划

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

这是一道模板题。

(这个题现在标程挂了。。哪位哥哥愿意提供一下靠谱的标程呀?) 现在的新标程有没有问题啊? 现在的新标程有没有问题啊?

本题中你需要求解一个标准型线性规划:

nn 个实数变量 x1,x2,,xnx_1,x_2,\dots,x_nmm 条约束,其中第 ii 条约束形如 j=1naijxjbi\sum_{j=1}^n a_{ij}x_j \le b_i

此外这 nn 个变量需要满足非负性限制,即 xj0x_j\ge 0

在满足上述所有条件的情况下,你需要指定每个变量 xjx_j 的取值,使得目标函数 F=j=1ncjxjF=\sum_{j=1}^n c_j x_j 的值最大。

输入格式 第一行三个正整数 n,m,tn,m,t。其中 t{0,1}t \in \{0,1\}

第二行有 nn 个整数 c1,c2,,cnc_1,c_2,\cdots,c_n,整数间均用一个空格分隔。

接下来 mm 行,每行代表一条约束,其中第 ii 行有 n+1n+1 个整数 ai1,ai2,,ain,bia_{i1},a_{i2},\cdots,a_{in}, b_i,整数间均用一个空格分隔。

输出格式 如果不存在满足所有约束的解,仅输出一行 "Infeasible"。

如果对于任意的 MM,都存在一组解使得目标函数的值大于 MM,仅输出一行"Unbounded"。

否则,第一行输出一个实数,表示目标函数的最大值 FF。当第一行与标准答案的相对误差或绝对误差不超过 10610^{-6},你的答案被判为正确。

如果 t=1t=1,那么你还需要输出第二行,用空格隔开的 nn 个非负实数,表示此时 x1,x2,,xnx_1,x_2,\dots,x_n 的取值,如有多组方案请任意输出其中一个。

判断第二行是否合法时,我们首先检验 Fj=1ncjxjF-\sum_{j=1}^n c_j x_j 是否为 00,再对于所有 ii,检验 min{0,bij=1naijxj}\min\{ 0,b_i-\sum_{j=1}^n a_{ij}x_j \} 是否为 00。检验时我们会将其中大于 00 的项和不大于 00 的项的绝对值分别相加得到 S+S_+SS_-,如果 S+S_+SS_- 的相对误差或绝对误差不超过 10610^{-6},则判为正确。

如果 t=0t=0,或者出现 Infeasible 或 Unbounded 时,不需要输出第二行。

样例一 input 2 2 1 1 1 2 1 6 -1 2 3

output 4.2 1.8 2.4

explanation 两条约束分别为 2x1+x26,x1+2x232x_1+x_2\le 6,-x_1+2x_2\le 3

x1=1.8,x2=2.4x_1=1.8,x_2=2.4 时目标函数 x1+x2x_1+x_2 取到最大值 4.24.2

样例二 input 2 2 1 1 -1 1 1 4 -1 -2 -2

output 4.0 4.0 0.0

explanation 注意 xj0x_j\ge 0 的限制。

样例三 input 3 3 1 0 0 1 -2 1 0 -4 1 1 0 4 1 -2 0 -4

output Infeasible

样例四 input 2 1 1 0 1 1 0 1

output Unbounded

限制与约定 对于所有数据, 1n,m201\leq n,m \leq 200aij,bi,cj1000 \leq |a_{ij}|,|b_i|,|c_j|\leq 100t{0,1}t \in \{0,1\}

本题包含 4 个子任务,每个 25 分。

子任务 1,3 满足 bi0b_i\ge 0

子任务 2,4 没有特殊限制。

子任务 1,2 中 t=0t=0

子任务 3,4 中 t=1t=1

Nano月赛-4月

未参加
状态
已结束
规则
ACM/ICPC
题目
4
开始于
2025-4-1 0:00
结束于
2025-5-1 0:00
持续时间
720 小时
主持人
参赛人数
4