算法竞赛入门【码蹄集进阶塔335题】(MT2296-2300)

news2025/7/12 20:10:51

算法竞赛入门【码蹄集进阶塔335题】(MT2296-2300)


文章目录

  • 算法竞赛入门【码蹄集进阶塔335题】(MT2296-2300)
  • 前言
      • 为什么突然想学算法了?
      • 为什么选择码蹄集作为刷题软件?
  • 目录
    • 1. MT2296 找朋友
    • 2. MT2297 盒子与球
    • 3. MT2298 点餐
    • 4. MT2299 圣诞节送花
    • 5. MT2300 枚举方案
    • 结语


前言

在这里插入图片描述

为什么突然想学算法了?

> 用较为“官方”的语言讲,是因为算法对计算机科学的所有分支都非常重要。 在绝大多数的计算机科学分支领域中,要想完成任何实质性的工作,理解算法的基础知识并掌握与算法密切相关的数据结构知识是必不可少的。
> 但从实际而言,是因为当下快到了考研和找工作的年纪(ಥ_ಥ),无论走哪一条路,都不免需要一些相对丰富的算法知识,是故,便产生了一个暑假速成算法的计划,可能对于像我这种算法竞赛小白而言,几乎很难,但我仍然还是想尝试一下,毕竟,梦想还是要有的,万一实现了呢?~( ̄▽ ̄~)~

在这里插入图片描述


为什么选择码蹄集作为刷题软件?

码蹄集,是在全国高等学校计算机教学与产业实践资源建设专家委员会(TIPCC) 指导下建设的,其依托全国各大名校计算机系和清华大学出版社等单位的强大资源,旨在为计算机学习爱好者提供全面和权威的计算机习题。
在这里插入图片描述


目录

1. MT2296 找朋友

(1)题目描述
将Ⅳ个人分成M组,每组至少一人,在比赛结束时,同一组的人两两之间都会成为朋友,不同分组的分组方案得到的朋友对数不同。你的任务是求出最小和最大的朋友对数。

格式

输入格式: 两个整数n,m 。
.
输出格式: 两个整数表示答案。

样例1

输入格式: 5 1
.
输出格式: 10 10

备注:

提示:1≤m<n≤20

(2)参考代码

#include <bits/stdc++.h>
#define int long long
using namespace std;

signed main(){
    ios::sync_with_stdio(0);
    int n,m;cin>>n>>m;
    int ma=0,mi=0;
    int t=n-(m-1);
    ma=t*(t-1)/2;
    t=n/m;
    int tt=n%m;
    mi=t*(t-1)/2*(m-tt);
    mi+=t*(t+1)/2*tt;
    cout<<mi<<' '<<ma<<endl;
    return 0;
}

2. MT2297 盒子与球

(1)题目描述

现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子。请求出有多少种不同的放法。

两种放法不同当且仅当存在一个球使得该球在两种放法中放入了不同的盒子。

格式

输入格式: 输入只有一行两个整数,分别代表n和r。
.
输出格式: 输出一行一个整数代表答案。

样例1

输入: 3 2
.
输出: 6

(2)参考代码

#include<bits/stdc++.h> 
using namespace std;
int dp[20][20];
int main( )
{
    int n,r;
    cin>>n>>r;
    dp[0][0]=1;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=r;j++){
            if(i<j) break;
            dp[i][j]=dp[i-1][j-1]+dp[i-1][j]*j;
        }
    }
    int ans=dp[n][r];
    for(int i=1;i<=r;i++) ans*=i;
    cout<<ans<<endl;
    return 0;
}

3. MT2298 点餐

(1)题目描述
小码哥和他的两个朋友一起去吃饭,他们决定每个人先从菜单上选几道菜,然后点三个人都选中的菜。假设菜单中有n道菜,他们三人分别点了 a,b,c道菜,小码哥想知道是否有可能不存在三个人都选中的菜。


格式

输入格式:
一行,4个以空格隔开的正整数n, a,b,c 满足0<a,b,c ≤ n≤1000。
.
输出格式: 一行,若可能不存在三个人都选中的菜输出YEs,否则输出NO

样例1

输入格式: 5 3 4 4
.
输出格式: NO

(2)参考代码

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, a, b, c;
    cin >> n >> a >> b >> c;
    if(a + b + c > 2 * n)
        cout << "NO" << endl;
    else 
        cout << "YES" << endl;
}

4. MT2299 圣诞节送花

(1)题目描述
今天是圣诞节,小码哥拿着5束花就想要去送给他的朋友们表示祝福,但后来他才发现远远不够,于是决定在花店买一些花。

当小码哥遇到一家花店时,他会买下和自己手中数量一样的花,当遇到朋友时,则会送出2束。

现在知道了他外出遇到了m个花店和n个朋友,并且遇完所有花店和朋友后,花也正好送完,你能根据m和n计算出有多少种合适的次序吗(合适的次序表示小码哥遇到朋友时总是有花可以送,且遇到了m家花店和n个朋友,且回到家后手里不剩花)?


格式

输入格式:
第一行两个数: m和 n分别表示遇到花店、朋友的数量(1≤n, m ≤15)。
.
输出格式: 输出一个整数代表合适的次序的数量。

样例1:

输入:4 9
.
输出:8

(2)参考代码

#include<bits/stdc++.h> 

using namespace std;

int m,n;
int dfs(int num,int M,int N){
    if(num<0 || N>n || M>m || (N==n&&M!=m)) return 0;
    if(M==m&&N==n&&num==0) return 1;
    return dfs(num*2,M+1,N)+dfs(num-2,M,N+1);
}

int main( )
{
    cin>>m>>n;
    int ans=dfs(5,0,0);
    cout<<ans<<endl;
    return 0;
}

5. MT2300 枚举方案

(1)题目描述
从1到n这n个整数中随机选出m 个,输出所有可能的选择方案。

格式

输入格式: 两个整数n,m 。
.
输出格式: 输出每一种可能的方案,一行输出一种,按字典序输出。

样例1

输入格式: 5 3
.
输出格式:
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5

备注:

提示:1≤m<n≤20

(2)参考代码

#include<bits/stdc++.h> 
using namespace std;
int ar[30], hash_[30], vis[30];
int n, m;
void dfs(int i, int num)
{
    if (m == num)
    {
        for (int i = 1; i <= n; i++)
        {
            if (hash_[i] == 1)
            {
                cout << i << " ";
            }
        }
        cout << endl;
        return;
    }
    if (i == n + 1)    return;
    hash_[i] = 1;
    dfs(i + 1, num + 1);
    hash_[i] = 0;
    dfs(i + 1, num);
}
int main( )
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        ar[i] = i;
    }
    dfs(1, 0);
    return 0;
}


结语

感谢大家一直以来的不断支持与鼓励,码题集题库中的进阶塔350题正在逐步更新,之后会逐步跟进星耀,王者的题,尽请期待!!!
同时,也希望这些题能帮助到大家,一起进步,祝愿每一个算法道路上的“苦行僧”们,都能够历经磨难,终成正果,既然选择了这条路,走到了这里,中途放弃,岂不是太过可惜?

另附中国计算机学会的杰出会员、常务理事轩哥博士的B站视频讲解链接https://space.bilibili.com/518554541/?spm_id_from=333.999.0.0,供大家更好的进行学习与刷题~( ̄▽ ̄~)~

愿你的结局,配得上你一路的颠沛流离。

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

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

相关文章

第二章Java概述

第二章Java概述 2.1 Java技术体系平台 Java SE:标准版 Java EE:企业版 Java ME&#xff1a;小型版 2.2Java重要特点&#xff08;四个&#xff09; 1&#xff09;java语言是面向对象的&#xff08;oop&#xff09; 2)java语言是健壮的。java的强类型机制、异常处理、垃圾的自动…

Kamiya丨Kamiya艾美捷人CP ELISA说明书

Kamiya艾美捷人CP ELISA预期用途&#xff1a; 人CP ELISA是一种高灵敏度的双位点酶联免疫分析&#xff08;ELISA&#xff09;人体生物样品中CP的测定。仅供研究使用。不用于诊断程序。 引言 铜蓝蛋白是参与铜转运的多功能蛋白&#xff0c;也是重要的血清抗氧化剂。在此期间炎…

【Canvas】js用Canvas绘制漩涡螺旋图动画效果

学习JavaScript编程&#xff0c;会用Canvas画图吗&#xff0c;学会它&#xff0c;能画很多有趣的事物&#xff0c;可自由发挥想象&#xff0c;会发现图形学的美&#xff0c;收获很多&#xff0c;这里有一个例子&#xff0c;如何用canvas画漩涡螺旋图动图效果&#xff0c;接下来…

c语言tips-结构体

1. 结构体定义和使用 #include <stdio.h>struct stu {int age;int height;int weight; };int main(int argc, char *argv[]) {struct stu stu1;stu1.age 18;stu1.height 172;stu1.weight 62;printf("年龄为&#xff1a;%d, 身高为&#xff1a;%d, 体重为&#x…

Self-attention自注意力机制——李宏毅机器学习笔记

self-attention想要解决的问题 复杂的输入 每次输入的length不同时&#xff0c;即Vector Set大小不同&#xff0c;该如何处理&#xff1f; one-hot encoding&#xff0c;缺点&#xff1a;所有的词汇之间没有语义资讯。 word embedding&#xff0c;会给每一个词汇一个向量&…

02-Docker-常用命令

目录 一、帮助启动类命令 启动docker 停止docker 重启docker 查看docker状态 开机启动 查看docker概要信息 查看docker总体帮助文档 查看docker命令帮助文档 二、镜像命令 1. 列出本地主机上的镜像 2. 查找镜像 3. 下载镜像 4. 查看镜像/容器/数据卷所占的空间 5.…

[附源码]SSM计算机毕业设计小说网站的设计与实现1JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Java#数据结构----2

目录 一.数据结构(树) 二.二叉树(任意节点的度<2) 二叉查找树又称为二叉排序树/二叉搜索树 平衡二叉树 平衡二叉树的旋转机制 三.红黑树 一.数据结构(树) 基本概念: 度: 每一个节点的子节点数量 树高: 树的总层数 根节点: 最顶层的节点 左子节点: 左下方的节点 右子节…

【Java八股文总结】之面试题(二)

文章目录面试题一、几种锁的区别1、synchronized 和ReentrantLock的区别二、Java高级1、反射1、反射的应用场合2、Java反射API3、反射使用步骤&#xff08;获取Class 对象、调用对象方法&#xff09;4、获取Class对象的3种方法5、创建对象的两种方法 newInstance(&#xff09;2…

数据结构和算法——基于Java——3.1链表(单链表)

理论补充 概念:链表是以节点的方式存储&#xff0c;是链式存储 特性 每个节点包含一个data数据域&#xff08;存放数据&#xff09;&#xff0c;一个next域&#xff08;指向下一个节点&#xff09;链表分带头结点和不带头节点&#xff08;单链表带头&#xff09;链表的内存分…

移动端开发:WebView介绍和使用、JSBridge等

Android应用层的开发有几大模块&#xff0c;其中WebView是最重要的模块之一。Android系统的WebView发展历史可谓一波三折&#xff0c;系统WebView开发者肯定费劲心思才换取了今天的局面——应用里的WebView和Chrome表现一致。 webview是什么&#xff1f; WebView是一种控件&a…

计算机的存储器(详解)

文章目录一&#xff0c;存储器&#xff08;一&#xff09;存储器的分类1) 根据功能和特性分类2) 根据存储容量和所在位置分类二&#xff0c;寄存器&#xff08;一&#xff09;寄存器的类别三&#xff0c;高速缓冲存储器&#xff08;一&#xff09;高速缓存的类别1) 一级高速缓存…

QT-MySQL QSqlDatabase: QMYSQL driver not loaded

使用Qt连接mysql数据库&#xff0c;遇到了一个问题&#xff0c;就是QT5.14.1版本在连接MySQL数据库时候&#xff0c;提示驱动加载失败&#xff0c;“QMYSQL driver not loaded” 编程环境&#xff1a;   Qt5.14.1,编译器是MSVC2017_64,是64位的。   mysql-8.0.30-winx64&am…

场馆系统的数据分析功能怎么样?

在大数据时代&#xff0c;对人们的消费数据进行分析&#xff0c;对企业发展至关重要。对于正在向智能化靠近的运动球馆来说&#xff0c;收集数据、分析数据来了解和改善场馆的运营已经成了一个新的趋势。 场馆系统组建了数据管理分析模块&#xff0c;让球馆通过信息化管理&…

【IoT】如何快速了解一个行业?如何做市场洞察?

如果要做一个新的事情&#xff0c;往往我们也不知道未来会怎么样。 我们准备去做一个事情之前一般都是会有个假设&#xff0c;比方说我们学习一项新技术&#xff0c;我们假设学习了以后能够给未来的生活带来提升&#xff0c;能给自己创造更多的机会&#xff0c;这就是个假设。 …

C++求解汉明距离

目录汉明距离介绍汉明距离应用解法1&#xff1a;Brian Kernighan算法解法2解法3汉明距离介绍 leetcode 461 汉明距离&#xff0c;难度&#xff1a;简单 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x 和 y&#xff0c;计算并返回…

[附源码]计算机毕业设计Springboot电影推荐网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

APS软件的技术指标与特色

企业可能经常会因为无法掌握生产制造现场的实际产能状况及物料进货状况&#xff0c;导致物料及产能规划与现场详细作业排程难度增大&#xff0c;从而采取有单就接的接单政策与粗估产能的生产排程方式。这种方式就可能导致企业的生产状况频发&#xff1a;在提高对顾客的服务水平…

【Android App】实战项目之实现你问我答的智能语音机器人(超详细 附源码和演示视频)

需要全部代码请点赞关注收藏后评论区留言私信~~~ 一、需求描述 想必大家都见过商场里的智能语音机器人&#xff0c;你对它提问时它可以自动回答你的问题&#xff0c;接下来我们也实现这样一个机器人&#xff0c;它依靠语音技术完成问询服务 基本功能如下 1&#xff1a;接收人们…

锦江酒店(中国区):在变革中拥抱未来 实现高质量发展

过去十年&#xff0c;中国酒店业经历了规模急剧扩张的黄金时期。后疫情时代&#xff0c;酒店行业正在发生深刻变革。 2022年&#xff0c;面对诸多外部不确定性&#xff0c;国内企业均感受到挑战。如何做到在国内大循环为主体、国内国际双循环相互促进的全新格局下高质量发展&a…