【编程题目 |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%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看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%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看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%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看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%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看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%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看