华为3.15前台测试软件,华为4.15软件类笔试

#include 

#include 

#include 

#include 

#include 

#include 

using namespace std;

struct Info {

string name;

int cnt;

};

vector vec;

map mp;

bool check(string s) {

if (s.size() == 0)

return false;

int len = s.size();

if (s[0]  'Z')

return false;

for (int i = 1; i 

if (s[i]  'z')

return false;

++mp[s];

return true;

}

bool split(string s) {

int len = s.size();

if (len == 0)

return false;

string cur;

int p = 0;

while (p 

if (s[p] == ',') {

bool ok = check(cur);

if (!ok)

return false;

cur = "";

} else {

cur += s[p];

}

++p;

}

if (cur.size() > 0) {

bool ok = check(cur);

if (!ok)

return false;

}

return true;

}

bool cmp(const Info &a, const Info &b) {

if (a.cnt != b.cnt)

return a.cnt 

if (a.name.size() == b.name.size())

return a.name > b.name;

if (a.name.find(b.name) != string::npos) {

return true;

}

if (b.name.find(a.name) != string::npos)

return false;

return a.name > b.name;

}

int main()

{

string input;

cin >> input;

bool valid = split(input);

if (!valid) {

cout <

} else {

for (auto o : mp) {

vec.push_back({o.first, o.second});

}

sort(vec.begin(), vec.end(), cmp);

cout <

}

return 0;

} 第二题

#include 

#include 

#include 

#include 

using namespace std;

struct Info {

string addr;

string mask;

string val;

};

vector vec;

string pattern, content;

bool check16(string s) {

int len = s.size();

if (len 

return false;

int idx = 0;

if (s[idx] != '0')

return false;

++idx;

if (s[idx] != 'x' && s[idx] != 'X')

return false;

++idx;

string num = s.substr(idx);

for (int i = 0; i 

char ch = num[i];

if (ch >= '0' && ch <= '9')

continue;

if (ch >= 'A' && ch <= 'F')

continue;

if (ch >= 'a' && ch <= 'f')

continue;

return false;

}

return true;

}

void check(string s) {

int len = s.size();

string head = s.substr(0, pattern.size());

if (head != pattern)

return;

int idx = pattern.size();

if (idx 

return;

++idx;

if (s.substr(idx, 5) != "addr=")

return;

idx += 5;

int comma = s.find(",", idx);

if (comma == string::npos || !check16(s.substr(idx, comma - idx)))

return;

string addr = s.substr(idx, comma - idx);

// cout <

idx = comma + 1;

if (s.substr(idx, 5) != "mask=")

return;

idx += 5;

// cout <

comma = s.find(",", idx);

// cout <

if (comma == string::npos || !check16(s.substr(idx, comma - idx)))

return;

string mask = s.substr(idx, comma - idx);

// cout <

idx = comma + 1;

if (s.substr(idx, 4) != "val=")

return;

idx += 4;

if (!check16(s.substr(idx)))

return;

string val = s.substr(idx);

// cout <

vec.push_back({addr, mask, val});

}

void solve(string s) {

int len = s.size();

int idx = 0;

while (idx 

int r = s.find("],", idx);

if (r == string::npos)

break;

check(s.substr(idx, r - idx));

idx = r + 2;

}

while (idx 

int r = s.find("]", idx);

// cout <

if (r == string::npos)

break;

check(s.substr(idx, r - idx));

idx = r + 1;

}

}

int main()

{

cin >> pattern >> content;

solve(content);

if (vec.size() == 0)

cout <

else {

for (int i = 0; i 

cout <

}

return 0;

} 第三题

内容概要:本文档介绍了一个多目标规划模型,该模型旨在优化与水资源分配相关的多个目标。它包含四个目标函数:最小化F1(x),最大化F2(x),最小化F3(x)和最小化F4(x),分别对应于不同的资源或环境指标。每个目标函数都有具体的数值目标,如F1的目标值为1695亿立方米水,而F2则追求达到195.54亿立方米等。此外,模型还设定了若干约束条件,包括各区域内的水量限制以及确保某些变量不低于特定百分比的下限。特别地,为了保证模型的有效性和合理性,提出需要解决目标函数间数据尺度不一致的问题,并建议采用遗传算法或其他先进算法进行求解,以获得符合预期的决策变量Xi(i=1,2,...,14)的结果。 适合人群:对数学建模、运筹学、水资源管理等领域感兴趣的科研人员、高校师生及从业者。 使用场景及目标:①适用于研究涉及多目标优化问题的实际案例,尤其是水资源分配领域;②帮助读者理解如何构建和求解复杂的多目标规划问题,掌握处理不同尺度数据的方法;③为从事相关工作的专业人士提供理论参考和技术支持。 阅读建议:由于文档涉及到复杂的数学公式和专业术语,在阅读时应先熟悉基本概念,重点关注目标函数的具体定义及其背后的物理意义,同时注意理解各个约束条件的设计意图。对于提到的数据尺度不一致问题,建议深入探讨可能的解决方案,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值