【编程题目 |100分】判断一组不等式是否满足约束并输出最大差 【2021 H2, 2022 Q1,Q2 考试题】


时间限制:C/C++ 1秒,其他语言 2秒

空间限制:C/C++262144K,其他语言524288K

64bit IO Format:%lld


本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,

编码后请点击”保存并调试“按钮进行代码提交。


题目描述

【判断一组不等式是否满足约束并输出最大差】

给定一组不等式,判断是否成立并输出不等式的最大差(输出浮点数的整数部分)

要求:

1)不等式系数为 double类型,是一个二维数组

2)不等式的变量为 int类型,是一维数组;

3)不等式的目标值为 double类型,是一维数组

4)不等式约束为字符串数组,只能是:”>”,”>=”,”<“,”=”,

例如,不等式组:

a11x1+a12x2+a13x3+a14x4+a15x5<=b1;

a21x1+a22x2+a23x3+a24x4+a25x5<=b2;

a31x1+a32x2+a33x3+a34x4+a35x5<=b3;

最大差 = max{(a11x1+a12x2+a13x3+a14x4+a15x5-b1),(a21x1+a22x2+a23x3+a24x4+ a25x5-b2),(a31x1+a32x2+a33x3+a34x4+a35x5-b3)},

类型为整数(输出浮点数的整数部分)

输入描述

1)不等式组系数(double类型):

a11,a12,a13,a14,a15

a21,a22,a23,a24,a25

a31,a32,a33,a34,a35

2)不等式变量(int类型):x1,x2,x3,x4,x5

3)不等式目标值(double类型):b1,b2,b3

4)不等式约束(字符串类型):<=,<=,<=

输入

a11,a12,a13,a14,a15,a21,a22,a23,a24,a25, a31,a32,a33,a34,a35,x1,x2,x3,x4,x5,b1,b2,b3,<=,<=,<=

输出描述

true或者 false,最大差

示例1   输入输出示例仅供调试,后台判题数据一般不包含示例

输入

2.3,3,5.6,7,6;11,3,8.6,25,1;0.3,9,5.3,66,7.8;1,3,2,7,5;340,670,80.6;<=,<=,<=

输出

false,458


代码实现


Python


def max_difference(str):
    l = str.split(";")
    a1 = [x.split(',') for x in l[-3:]]

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

C++


#include <bits/stdc++.h>

using namespace std;

void SplitInt(string input, vector<int> &output, char patten);

void SplitString(string input, vector<string> &output, string pattern);

//2.3,3,5.6,7,6;11,3,8.6,25,1;0.3,9,5.3,66,7.8;1,3,2,7,5;340,670,80.6;<=,<=,<=
int main(int argc, char **argv)
{
    string str;
    vector<vector<double>> vec(3, vector<double>(5));

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JAVA解法一


import java.util.Scanner;

public class MaxDifference {
    public static void main(String[] args) {
        double[][] a = new double[3][5];
        int[] x = new int[5];
        double[] b = new double[3];
        String[] eqExpression = new String[3];
        int[] resultArrTemp = new int[3];
        int max = 0;
        Scanner scanner = new Scanner(System.in);

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JAVA解法二


import java.util.*;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        String[] strings = sc.nextLine().split(";");

        int length = strings.length;

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看


JavaScript


let strings = readLine().split(";");
 
let length = strings.length;
let bianliang = strings[length-3].split(",").map(i=>Number(i)); 
let mubiao = strings[length-2].split(",").map(i=>Number(i)); 
let ys = strings[length-1].split(",");

剩余50%内容,购买单篇文章或订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看