算法课习题汇总(3)

循环日程表

设有N个选手进行循环比赛,其中N=2M,要求每名选手要与其他N−1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N−1天,要求每天没有选手轮空。

例如4个人进行比赛:
在这里插入图片描述

思路:

  1. 把表格分为四个部分,每个部分的起点分别为红色的圆圈
  2. 左上角的坐标为(l,r),表格长度为len/2,表格内的数据为v
  3. 右上角的坐标为(l,r+len/2),表格长度为len/2,表格内的数据为v+len/2
  4. 左下角的坐标为(l+len/2,r),表格长度为len/2,表格内的数据为v+len/2
  5. 右下角的坐标为(l+len/2,r+len/2),表格长度为len/2,表格内的数据为v
  6. 递归的结束条件为l==r,将数组进行赋值即可返回
    在这里插入图片描述
#include<iostream>
using namespace std;int a[100][100];
void f(int l, int r, int len, int v)
{if (len == 1){a[l][r] = v;return;}f(l, r, len / 2, v);f(l, r + len / 2, len / 2, v+len/2);f(l + len / 2, r, len / 2, v+len/2);f(l + len / 2, r + len / 2, len / 2, v);
}int main()
{int n;cin >> n;f(1, 1, n, 1);for (int i = 1; i <= n; i++){for (int j = 1; j <= n; j++){cout << a[i][j] << " ";}cout << endl;}cout << endl;return 0;
}

在这里插入图片描述

矩阵连乘问题

给定n个矩阵{A1, A2, A3, …, An},其中矩阵Ai的维度为Pi-1 x Pi(i=1, 2, …, n),且满足Ai的列数等于Ai+1的行数(即Pi = Pi+1,i=1, 2, …, n-1),要求计算这n个矩阵的连乘积A1A2…An,并寻找一种计算次序,使得所需的标量乘法次数最少。

方法一:递归

#include<iostream>
using namespace std;int p[100], m[100][100];int f(int i, int j)
{if (m[i][j])return m[i][j];//当该数不为0时则表示该数已经计算过了,直接跳过即可if (i == j)return 0;int min = 1000000;for (int k = i; k < j; k++)//Ai.....Ak||Ak+1....Aj{int tmp = f(i, k) + f(k + 1, j) + p[i - 1] * p[k] * p[j];if (tmp < min)min = tmp;}return m[i][j]=min;
}int main()
{int n;cin >> n;for (int i = 0; i <= n; i++)cin >> p[i];cout << f(1, n) << endl;return 0;
}

在这里插入图片描述

方法二:动态规划

int m[100][100], p[100], s[100][100];void f(int l, int r)
{if (l == r){cout << "A" << r;return;}int k = s[l][r];cout << "(";f(l, k);f(k + 1, r);cout << ")";
}int main()
{int n;cin >> n;for (int i = 0; i <= n; i++)cin >> p[i];for (int r = 2; r <= n; r++){//Ai....Ak||Ak+1....An  n-i+1=rfor (int i = 1; i <= n - r + 1; i++){int j = r + i - 1;m[i][j] = 1000000;for (int k = i; k < j; k++){int tmp = m[i][k] + m[k + 1][j] + p[i - 1] * p[k] * p[j];if (tmp < m[i][j]){m[i][j] = tmp;s[i][j] = k;}}}}f(1, n);cout << endl;cout << m[1][n] << endl;return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1552599.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

20道面试题001

常考语法就是指针&#xff0c;指针与数组、指针与字符串、指针与结构体、指针与函数之间的关系与使用&#xff0c; 以上课为准&#xff0c;辅助《深度理解C指针》这本书。 1. 指针与数组 定义: 数组名在表达式中通常被视为指向数组首元素的指针。 访问元素: 可以通过指针访问数…

递归函数设计技巧

目录 1.路飞吃桃子的问题--应试难度 2.弹簧板问题--应试难度 3.递归实现指数型枚举--校招难度 4.递归实现组合型枚举--校招难度 5.递归实现排列型枚举--校招难度 1.路飞吃桃子的问题--应试难度 我们可以说下两个案例&#xff0c;反正是最后一天的时候&#xff0c;只剩下了一…

pnpm在monorepo架构下不能引用其他模块的问题

一、研究背景 monorepo架构项目目录结构&#xff1a; - common- index.ts- ... - main- index.ts- ... - web- vue-demo- ... pnpm在monorepo架构下使用以下命令 pnpm -F main add common # or pnpm --filter main add common 并不能在main/index.ts中使用common/index.ts…

从概念到使用全面了解Llama 3 这个迄今为止最强大的开源模型

概述 mate最近发布了 Llama3&#xff0c;下一代最先进的开源大语言模型&#xff08;LLM&#xff09;。正如本文的综合评论所述&#xff0c;Llama 3 以其前身奠定的基础为基础&#xff0c;旨在增强 Llama 2 成为 ChatGPT 重要开源竞争对手的能力 Llama 2&#xff1a;深入探讨 C…

Spring Boot驱动的足球青训俱乐部管理解决方案

1 绪论 1.1研究背景 随着科技的发展&#xff0c;计算机的应用&#xff0c;人们的生活方方面面都和互联网密不可分。计算机的普及使得人们的生活更加方便快捷&#xff0c;网络也遍及到我们生活的每个角落&#xff0c;二十一世纪信息化时代的到来&#xff0c;随着社会科技的不断…

中国电信解锁万亿参数大模型:TeleAI的创新与突破

首个由万卡集群训练出来的万亿参数大模型&#xff0c;已被一家央企解锁。 具体而言&#xff0c;为了推动纯国产人工智能的探索&#xff0c;带来这条新路径的正是中国电信人工智能研究院&#xff08;TeleAI&#xff09;。 该研究院由中国电信集团的CTO、首席科学家兼院长李学龙…

docker零基础入门教程

注意 本系列文章已升级、转移至我的自建站点中&#xff0c;本章原文为&#xff1a;Docker入门 目录 注意1.前言2.docker安装3.docker基本使用4.打包docker镜像5.docker进阶 1.前言 如果你长期写C/C代码&#xff0c;那你应该很容易发现C/C开源项目存在的一个严重问题&#xff…

【React】入门Day01 —— 从基础概念到实战应用

目录 一、React 概述 二、开发环境创建 三、JSX 基础 四、React 的事件绑定 五、React 组件基础使用 六、组件状态管理 - useState 七、组件的基础样式处理 快速入门 – React 中文文档 一、React 概述 React 是什么 由 Meta 公司开发&#xff0c;是用于构建 Web 和原生…

XFTP-8下载安装教程

下载地址 https://www.xshell.com/zh/free-for-home-school/ 新建XFTP文件夹 安装过程 选择新建的文件夹 此处默认即可 填写信息提交注册 点击生成的链接 点击后来&#xff0c;完成安装

WebRTC Connection Negotiate解决

最近有个项目 &#xff0c;部署之后一直显示&#xff0c;查了一些资料还是没有解决&#xff0c;无奈只有自己研究解决&#xff1f; 什么是内网穿透&#xff1f; 我们访问我们自己的官网产品页面&#xff0c;我们的服务器是一个单独的个体&#xff0c;有独立的公网ip&#xf…

Redis实现每日签到(大数据量)

PHP语言使用Redis NoSQL服务器二进制数据类型实现大数据情况下签到功能 目录 问题 解决方式 封装签到类 功能调用 总结 问题 实现用户每日签到功能不难&#xff0c;但随着用户量上升之后&#xff0c;不论是存储还是判断对数据量来说都很麻烦&#xff1b;假如每天有100万用…

文心一言 VS 讯飞星火 VS chatgpt (359)-- 算法导论24.3 1题

一、在图 24-2上运行Dijkstra算法&#xff0c;第一次使用结点 s s s作为源结点&#xff0c;第二次使用结点 z z z作为源结点。以类似于图 24-6 的风格&#xff0c;给出每次while循环后的 d d d值和 π π π值&#xff0c;以及集合 S S S中的所有结点。如果要写代码&#xff0c…

使用容器启动的zk无法暴露3888问题解决

1. 问题描述 zk配置如下&#xff1a; 我通过容器启动了一个zk&#xff0c;通过-p 参数暴露了2181和3888端口&#xff0c;容器启动脚本如下&#xff1a; #!/bin/shdocker rm -f myzookeeper1docker run -p 12181:2181 -p 13888:3888 --name myzookeeper1 --restart always …

利士策分享,国庆日,共筑梦想,同庆辉煌

利士策分享&#xff0c;国庆日&#xff0c;共筑梦想&#xff0c;同庆辉煌 今天是我们的祖国成立的第75个国庆日&#xff0c;在这个举国同庆的日子里&#xff0c;我感受到了浓厚的节日氛围。 此刻的你&#xff0c;是否也在和家人朋友一起享受这份难得的宁静与快乐呢&#xff1f…

AI产品经理PRD文档与传统产品经理PRD有什么不同呢?

目录 模型输出&#xff1a;说白了&#xff0c;就是你的AI要干啥数据接入&#xff1a;你的AI要吃啥“粮食”验收标准&#xff1a;怎么判断你的AI干得好不好经验总结 你好&#xff0c;我是三桥君 在工作中&#xff0c;当我作为传统产品经理时&#xff0c;通常只需提供产品需求文…

SigmaStudio控件Cross Mixer\Signal Merger算法效果分析

衰减与叠加混音算法验证分析一 CH2:输入源为-20dB正弦波1khz CH1叠加混音&#xff1a;参考混音算法https://blog.csdn.net/weixin_48408892/article/details/129878036?spm1001.2014.3001.5502 Ch0衰减混音&#xff1a;外部多个输入源做混音时&#xff0c;建议参考该算法控件&…

宝塔的软件商店打不开怎么办?

宝塔的软件商店打不开怎么办&#xff1f; 请从下面这个按钮进入&#xff1a; 或者尝试直接打开链接&#xff1a;https://127.0.0.1:1234/soft

自定义注解加 AOP 实现服务接口鉴权以及内部认证

注解 何谓注解&#xff1f; 在Java中&#xff0c;注解&#xff08;Annotation&#xff09;是一种特殊的语法&#xff0c;用符号开头&#xff0c;是 Java5 开始引入的新特性&#xff0c;可以看作是一种特殊的注释&#xff0c;主要用于修饰类、方法或者变量&#xff0c;提供某些信…

Redis: Sentinel哨兵监控架构及环境搭建

概述 在主从模式下&#xff0c;我们通过从节点只读模式提高了系统的并发能力并发不断增加&#xff0c;只需要扩展从节点即可&#xff0c;只要主从服务器之间&#xff0c;网络连接正常主服务器就会将写入自己的数据同步更新给从服务器&#xff0c;从而保证主从服务器的数据相同…

推送k8s镜像到阿里云服务器

1、服务打包 2、打包后进入Dockerfile的同级目录 运行 docker build -t 镜像名:镜像版本 . (这个点是当前目录的意思&#xff0c;不能忽略)例如 docker build -t trac:v1.0.4 .3、上传镜像到阿里云镜像服务 注意选择区域 例如&#xff1a; docker tag 70743d9bdba3 registr…