清华大学驭风计划数据结构与算法考核题目详解

私聊博主

题目描述
一个无向图有 n 个点,m 条边。每个点 i 都有一个点权,记为 wi。

询问给定两个点 s 和 t,求以 s 为起点 t 为终点的所有可能路径中,路径上的点权的最大值的最小值。如果不存在从 s 到 t 的通路,则输出 -1。

输入格式
第一行两个正整数 n,m。

第二行 n 个正整数,代表 n 个点的点权,用空格隔开。

接下来 m 行,每行两个整数u,v(1 ≤ u,v ≤ n),表示点 u 和点 v 之间有一条无向边。

接下来一行两个整数s,t,意义同描述。

输入保证无重边、自环。

输出格式
输出一行一个整数,表示询问的答案。


题目描述
输入格式
从标准输入读入数据。

输入第一行为三个整数 n,m,k,分别表示 V,E 的大小,与题目描述中提及的给出的参数 k。

接下来 m 行依次描述每条边,其中第 i 行为三个整数ui ,vi ,wi,表示点ui ,vi 之间有一条权值为 wi 的无向边。

输出格式
输出到标准输出。

输出一行一个非负整数,表示所求答案


题目描述
计算 ab(也就是 a 的 b 次方)的后 3 位数字。

输入格式
第一行为一个整数 T,表示数据的组数。

接下来每行两个整数,分别表示 a 和 b。

输入格式
输出 T 行,表示 ab 的后三位数字(去掉前导 0)。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
抱歉,作为一个语言模型,我并不具备编写代码的能力。不过,我可以为您提供一个四参数Logistic拟合的函数模板,您可以根据自己的需要进行修改: ```c++ #include <cmath> #include <vector> using namespace std; // 四参数Logistic拟合函数模板 double logistic(double x, double A, double B, double C, double D) { return (A - D) / (1 + pow(x / C, B)) + D; } // 最小二乘法算法 void least_square_fit(vector<double> x, vector<double> y, double &A, double &B, double &C, double &D) { // 初始化参数 A = 1.0; B = 1.0; C = 1.0; D = 0.0; double lr = 0.01; // 学习率 int epochs = 10000; // 迭代次数 // 迭代更新参数 for (int i = 0; i < epochs; i++) { double dA = 0.0, dB = 0.0, dC = 0.0, dD = 0.0; for (int j = 0; j < x.size(); j++) { double y_pred = logistic(x[j], A, B, C, D); dA += 2 * (y_pred - y[j]) / pow(1 + pow(x[j] / C, B), 2); dB += 2 * (y_pred - y[j]) * (A - D) * pow(log(x[j] / C), 2) * pow(x[j] / C, B) / pow(1 + pow(x[j] / C, B), 3); dC += 2 * (y_pred - y[j]) * (A - D) * B * pow(x[j] / C, B - 1) / pow(1 + pow(x[j] / C, B), 2); dD += 2 * (y_pred - y[j]) * (-1) / pow(1 + pow(x[j] / C, B), 2); } A -= lr * dA; B -= lr * dB; C -= lr * dC; D -= lr * dD; } } // 示例使用 int main() { vector<double> x = {5000.00, 2500.00, 1250.00, 625.00, 312.00}; vector<double> y = {2.14, 1.48, 0.97, 0.55, 0.34}; double A, B, C, D; least_square_fit(x, y, A, B, C, D); printf("A = %.2f, B = %.2f, C = %.2f, D = %.2f\n", A, B, C, D); return 0; } ``` 注意,这里只提供了一个简单的示例函数模板,实际应用中需要根据具体情况来进行修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值