当前位置: 首页 > news >正文

企业网站建设公司郑州网站建设力度不够论文

企业网站建设公司郑州,网站建设力度不够论文,互联网推广是做什么的,重庆可视化网站制作贪心算法简介 贪心算法是通过做一系列的选择来给出某一问题的最优解。对算法中的每一个决策点,做一个当时(看起来是)最佳的选择。这种启发式策略并不是总能产生出最优解,但它常常能给出最优解。 在实际设计贪心算法时&#xff0…

贪心算法简介

贪心算法是通过做一系列的选择来给出某一问题的最优解。对算法中的每一个决策点,做一个当时(看起来是)最佳的选择。这种启发式策略并不是总能产生出最优解,但它常常能给出最优解。

在实际设计贪心算法时,通常直接做出贪心选择来构造子结构,以产生一个待优化解决的子问题,或者,根据贪心选择来构造最优子结构。

贪心算法的一般做法

虽然贪心算法没有固定的解题模板,但一般情况下使用贪心算法,需要对问题进行分析,可以参考下面的解题步骤;

  1. 问题定义:明确问题的输入、输出和目标。

  2. 状态定义:**将问题分解为多个阶段,每个阶段都有一个状态。**状态通常由问题的某些属性表示。(如取最大值或者最小组等)

  3. 确定贪心策略:在每个阶段,根据当前状态选择最优决策,以期望达到全局最优解。这个最优决策通常是最优子结构的一部分,问题的最优解可以通过其子问题的最优解来获得,则问题具有最优子结构,这意味着每个阶段的最优决策都是全局最优解的一部分。

  4. 代码实现:根据上述步骤设计贪心算法,编写代码。通常,贪心算法包括一个循环,每次循环中都选择当前最优决策,并更新状态。

  5. 算法分析:分析贪心算法的正确性和可行性。

贪心算法实例

下面演示的题目来自 洛谷P1080 国王游戏的题目, 其问题的求解的核心就是拆解问题,将问题分为小问题,并且取局部最优解。本题涉及的内容包括 贪心算法+高精度的变换

求解思路:
在这里插入图片描述
代码:

#include<bits/stdc++.h>
using namespace std;
struct temp{int l,r,all;
}a[1005];
bool cmp(temp a,temp b){return a.all<b.all;
}
int main(){int n;int result = 0;cin>>n;for(int i=0;i<=n;i++){cin>>a[i].l>>a[i].r;a[i].all=a[i].l*a[i].r;}sort(a+1,a+n+1,cmp);int sum=1;for(int i=1;i<=n;i++){sum*=a[i-1].l;if(sum/a[i].r > =result){result = sum / a[i].r;}}cout<<result;return 0;
}

测试情况如下所示,可以看到在不考虑高精度的情况也是得分能达到60分,故此在平时做题时,当涉及到贪心算法的应用时,需要将问题进行拆解细分为小问题,并且运用数学逻辑将问题简答化(建议采用假设方法)。
在这里插入图片描述
正确AC解法:

 #include <bits/stdc++.h>  using namespace std;struct stu {int l;  // 大臣的左手数int r;  // 大臣的右手数} f[1005];  // 定义结构体数组 f,最多可容纳 1005 位大臣// 比较函数,用于排序bool cmp(stu a, stu b) {return a.l * a.r < b.l * b.r;  // 按左手数和右手数的乘积升序排序}int n;  // 大臣数量vector<int> ans(1, 0);  // 初始化答案向量,初始值为 0vector<int> t(1, 1);  // 初始化乘积向量,初始值为 1// 高精度数乘法inline vector<int> mul(vector<int> &a, int b) {vector<int> res;  // 存储结果的向量int t = 0;  // 进位int len = a.size();  // 输入向量的长度for (int i = 0; i < len; i++) {t += a[i] * b;  // 乘以 bres.push_back(t % 10);  // 取当前位t /= 10;  // 更新进位}while (t) {  // 处理剩余的进位res.push_back(t % 10);t /= 10;}return res;  // 返回乘法结果}// 高精度数除法inline vector<int> div(vector<int> &a, int b) {vector<int> res;  // 存储结果的向量int r = 0;  // 余数int len = a.size();  // 输入向量的长度for (int i = len - 1; i >= 0; i--) {  // 从低位到高位处理r = 10 * r + a[i];  // 将当前位加入余数if (r >= b) {  // 如果余数大于等于除数res.push_back(r / b);  // 计算商并存入结果r %= b;  // 更新余数} else {res.push_back(0);  // 商为0}}vector<int> cnt;  // 存储结果的向量(逆序)len = res.size();for (int i = len - 1; i >= 0; i--) {cnt.push_back(res[i]);  // 逆序存取结果}// 去掉前导零while ((cnt.back() == 0) && (cnt.size() > 1)) {cnt.pop_back();}return cnt;  // 返回除法结果}// 比较两个高精度数inline int compare(vector<int> &a, vector<int> &b) {int lenA = a.size();int lenB = b.size();if (lenA != lenB) {  // 长度不同return lenA - lenB;  // 返回长度差} else {  // 长度相同for (int i = lenA - 1; i >= 0; i--) {if (a[i] != b[i]) {  // 从高位比较return a[i] - b[i];  // 返回差值}}return 0;  // 相等}}int main() {cin >> n;  // 输入大臣数量cin >> f[0].l >> f[0].r;  // 输入国王的左手数和右手数for (int i = 1; i <= n; i++) {  // 输入每位大臣的左右手数cin >> f[i].l >> f[i].r;}sort(f + 1, f + 1 + n, cmp);  // 按照比较函数排序大臣t = mul(t, f[0].l);  // 将国王的左手数乘入乘积for (int i = 1; i <= n; i++) {  // 遍历每位大臣vector<int> res = div(t, f[i].r);  // 计算当前大臣的金币数if (compare(ans, res) < 0) {  // 如果当前金币数更大ans = res;  // 更新结果}t = mul(t, f[i].l);  // 更新乘积,乘入当前大臣的左手数}int len = ans.size();  // 获取结果的长度for (int i = len - 1; i >= 0; i--) {  // 输出结果(逆序)cout << ans[i];}cout << endl;  // 输出换行return 0;  // 返回成功}
http://www.yayakq.cn/news/178087/

相关文章:

  • 免费手机网站建站系统wordpress 过滤html
  • 聊城定制型网站开发wordpress去掉边栏
  • 网站空间集装箱网页策划方案怎么做
  • wordpress开启多站点旅游网站建设的结论
  • 张家港英文网站制作防城港建设局网站
  • 开网站做外贸做银行设计有好的网站参考吗
  • 神马网站排名硬件开发和软件开发哪个工资高
  • 技术支持网站rpg制作大师
  • 哪些网站用.ren域名门户网站做啥
  • 做网页游戏网站需要什么最好要使用中文目录
  • 联通公司做网站吗微信运营简历
  • 私人定制哪个网站做的比较好有没有专门的网站做品牌授权的
  • 建设摩托车官方网站吉林省建设厅官网查询
  • 建站公司郑州网站建设合同包含什么
  • myeclipse怎样做网站重庆网站建设注意事项
  • 深圳做网站(龙华信科)wordpress 迁移网站
  • 做货源的网站如何提高外贸网站排名
  • 现在帮人做网站赚钱吗学校网站建设厂家
  • 百度 特定网站搜索晋江文学城写作网站
  • 网站开发中 敬请期待本地网站后台管理建设
  • 济南网站建设询问臻动传媒资源分享wordpress
  • 移动手机网站建设网站公司技术交接
  • 微企点建站平台介绍在线教育oem平台
  • 专业专业的网站开发沧州网络推广渠成网络
  • 网站建设价格费用下载百度官方网站
  • 营销型企业网站建设应遵守的原则电子商务项目策划书
  • 耐克1网站建设的总体目标东莞市网络seo推广价格
  • 品牌网站模板html大屏展示模板
  • 网站如何做访客统计建设隔热网站
  • 高清素材网站无水印昆明网站建设的公司