复旦大学2021机试

2021年真题

第一题

题目描述:给定一颗二叉树,树的每个节点的值为一个正整数。如果从根节点到节点 N 的路径上不存在比节点 N 的值大的节点,那么节点 N 被认为是树上的关键节点。求树上所有的关键节点的个数。请写出程序,并解释解题思路。
例子:
在这里插入图片描述
输入: 3, 1, 4, 3, null, 1, 5
输出:4(图中蓝色节点是关键节点)

解题:
思路如下:
1.用 A[maxv]数组表示树, 则结点 i 的父亲结点是 i/2 向上取整 。 (null 的结点用 0 输入)
2.dp[i]表示从根结点到结点 i 的路径上最大的结点值 。 ans 表示关键节点个数 //如果结点i 的值 A[i] 比从根结点到结点i 的父结点的路径上结点值 dp[i/2]都大, 则是关键节点; 反之, 不是关键节点。

if (A[i]>=dp[i/2] ){dp[i]=A[i];ans++;
}else{dp[i]=dp[i/2];
}

测试用例:
一: 输入: 3 1 4 3 0 1 5
输出: 4
//注: 4 个结点分别是: 3 4 3 5
二: 输入: 4 5 2 1 3 4
输出: 3
//注: 3 个结点分别是: 4 5 4
三: 输入: 3
输出: 1

//时间复杂度O(n)
#include<stdio.h>
const int maxn=10010;             //null的结点用0输入
int A[maxn],dp[maxn];             //A[maxn]是树的数组表示,dp[i]是从根节点到节点i的路径上最大的结点值int main(){int x,ans,num=0;            //ans记录关键节点个数while(scanf("%d",&x)!=EOF){   //树的数组表示A[++num]=x;}//边界for(int i=1;i<=num;i++){dp[i]=A[i];}ans=1;                         //根结点是关键节点//状态转移方程for(int i=2;i<=num;i++){if(A[i]>=dp[i/2]){         //节点i的值 比 从根节点到节点i的路径上节点值 都大,所以是关键节点dp[i]=A[i];ans++;}else{                     //非关键节点dp[i]=dp[i/2];}}printf("%d",ans);return 0;
}
#include<iostream>
using namespace std;
const int maxn=10010;             //null的结点用0输入
int A[maxn],dp[maxn];             //A[maxn]是树的数组表示,dp[i]是从根节点到节点i的路径上最大的结点值int main(){int x,ans,num=0;            //ans记录关键节点个数while(cin>>x){   	//树的数组表示A[++num]=x;}//边界for(int i=1;i<=num;i++){dp[i]=A[i];}ans=1;                         //根结点是关键节点//状态转移方程for(int i=2;i<=num;i++){if(A[i]>=dp[i/2]){         //节点i的值 比 从根节点到节点i的路径上节点值 都大,所以是关键节点dp[i]=A[i];ans++;}else{                     //非关键节点dp[i]=dp[i/2];}}cout<<ans;return 0;
}

第二题
题目描述:训练场上有一个台阶,总共有 n 级。一个运动员可以跳 1 级,也可以跳 2 级。求运动员有多少种跳法。请写出程序,并解释解题思路。

解题:
思路如下: 动态规划
dp[i]是 i 级台阶的跳法数。dp[i]可以从dp[i-1]跳一步得到和从dp[i-2]跳两步得到, 递推边界 dp[1]=1, dp[2]=2。

测试用例:
一: 输入: 3; 输出: 3
二: 输入: 4; 输出: 5
三: 输入: 5; 输出: 8

//时间复杂度 O(n)
#include<stdio.h>
const int maxn=10010;
int dp[maxn]={0};      //dp[i]是i级台阶的跳法数int main(){int n;scanf("%d",&n);//边界dp[1]=1;        dp[2]=2;//状态转移方程//不断递推得到dp。dp[i]可以从dp[i-1]跳一步得到和从dp[i-2]跳两步得到for(int i=3;i<=n;i++){dp[i]=dp[i-1]+dp[i-2];}printf("%d",dp[n]);return 0;
}

第三题
题目描述:给定一个非负整数序列x1,x2,x3…xn,可以给每一个整数取负数或者取原值,求有多少种取法使得这些整数的和等于期望值E。请写出程序,并解释解题思路。
输入:1, 1, 1, 1, 1, 3
输出:5

样例解释:

-1+1+1+1+1 = 3
1-1+1+1+1 = 3
1+1-1+1+1 = 3
1+1+1-1+1 = 3
1+1+1+1-1 = 3

#include<iostream>
#include<map>
#include<vector>
#include<numeric>
using namespace std;int main(){cout<<"输入序列(-1为结束符):"<<endl;vector<int> nums;while(1){                   //输入序列(以-1为结束符)int x;cin>>x;if(x==-1) break;nums.push_back(x);}int sum=accumulate(nums.begin(),nums.end(),0);      //序列和int n=nums.size();                                  //序列个数cout<<"请输入期望值E:"<<endl;int E;cin>>E;//边界vector<map<int,int> > dp(n+1);                      //v可以为负值,考虑用 vector<map<int,int>>进行解决   for(int i=0;i<=n;i++){for(int v=-sum;v<=sum;v++){if(i==0 && v==0) dp[i][v]=1;else dp[i][v]=0;}}//状态转移方程for(int i=1;i<=n;i++){for(int v=-sum;v<=sum;v++){//dp[i][v]=dp[i-1][v-nums[i-1]]+dp[i-1][v+nums[i-1]]//即前i个值取到v的方法数 = 前i-1个数取到 v-nums[i-1]的方法数  +  前i-1个数取到 v+nums[i-1]的方法数 (注意nums[i-1]是第i个数)int temp1,temp2;if(v-nums[i-1]>=-sum) temp1=dp[i-1][v-nums[i-1]];if(v+nums[i-1]<=sum)  temp2=dp[i-1][v+nums[i-1]];dp[i][v]=temp1+temp2;}}cout<<dp[n][E];return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复旦大学,计算机考研情况

复旦大学是位于上海的一所985大学&#xff0c;计算机学科评估B&#xff0c;软件工程学科评估B&#xff0c;在985大学中处于中游水平。但由于学校整体实力很强&#xff0c;名气也大&#xff0c;因此深受考生的欢迎。 复旦大学2021考研招生目录 计算机科学技术学院 081201&#x…

新版悬赏猫任务平台系统源码+已经去授权

正文: 完整标题: 悬赏猫任务平台去授权版&#xff0c;用户自主发布任务接免签支付&#xff0c;信用分评分机制网站源码可打包app 这个是带有用户发布任务功能的&#xff0c;还有信用分评分什么的&#xff0c;挺全面&#xff0c;具体的大家搭建出来看一下就知道。 程序: ww…

最新交易猫 闲鱼源码 带后台管理+个人码收款

带一款非常简洁好看的后台。 搭建教程&#xff1a;修改数据库账号密码直接使用。 源码码下载&#xff1a; 网盘下载地址&#xff1a;https://pan.baidu.com/s/19iOsoyK-J-Rhi2dZYqzMMg?pwdiumr 提取码:iumr

10款自媒体人必备的免费工具,快速高效运营

1、GIISO写作机器人 此款工具的slogan就是&#xff1a;AI校对&#xff0c;比人更会! 这款工具包含&#xff1a;文章校对、提纲写作、营销写作、汽车写作等功能! 比较受欢迎的是它的营销写作功能和提纲写作功能&#xff0c;营销写作功能可以一键生成营销软文。 而提纲写作功能…

这四款软件有多好用你不会还不知道吧

第一款&#xff1a;秘塔写作猫 秘塔写作猫是一款非常不错的写作软件。基于人工智能&#xff0c;可智能识别错别字、语义、标点符号、词序和语法问题。对于效率君来说&#xff0c;长期写作可以用它来检查&#xff0c;节省大量检查时间。它不仅可以改写&#xff0c;还可以翻译内…

交易猫源码完整搭建教程

源码仅供学习参考。 教程&#xff1a;修改数据库账号密码 源码下载&#xff1a;https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

【018】秘塔写作喵-中英文文章自动审阅纠错

10月19日发布的每日网站指南007“微软Aim Writing-智能英文写作平台”&#xff0c;有读者反馈只能针对英文进行审阅&#xff0c;那今天ONETer就为大家介绍一个可以中英文文章自动审阅纠错的网站&#xff1a;秘塔写作喵 地址&#xff1a;参见文末图 写作喵网站需要注册后使用&a…

编程猫创作工具:新版Kitten新体验

在少儿编程图形化工具方面&#xff0c;Scratch是老牌的创作工具&#xff0c;最为流行&#xff0c;用的人也最多。但是Scratch界面不友好、本地化功能欠缺、网络访问慢等问题也日渐显著。编程猫自主研发的图形化编程创作工具&#xff1a;源码编辑器应运而生。Kitten以更丰富的素…

【编程题】【Scratch三级】2019.06 猫咪抓老鼠游戏

猫咪抓老鼠游戏 1. 准备工作 &#xff08;1&#xff09;保留小猫角色&#xff0c;添加“Mouse1”&#xff1b; &#xff08;2&#xff09;默认白色背景。 2. 功能实现 &#xff08;1&#xff09;键盘上下左右键控制小猫上下左右移动&#xff1b; &#xff08;2&#xff09…

AI智能润色改写,伪原创写作工具,毕业论文必备工具

小伙伴们注意&#xff1a;公众号的推送机制不再按照时间前后推送了&#xff0c;微信公众号信息流乱序。君哥建议大家把科技毒瘤君公众号置顶&#xff08;设为星标⭐&#xff09;&#xff0c;以便第一时间看到推送&#xff0c;非常感谢~&#xff0c;方法如下图&#xff1a; 推荐…

你不能错过的文章撰写软件

关注“心仪脑”查看更多脑科学知识的分享。 关键词&#xff1a;资源推荐、写文软件 抛开我们常用的WPS和OFFICE不说&#xff0c;现在的写作工具是越来越人性化了&#xff0c;就差实现人工智能。当我们辛辛苦苦做完实验&#xff0c;终于轮到我们报告的时候&#xff0c;却发现我…

怎么用秘塔写作猫写小红书种草文案?

在一些自媒体平台发布一些产品时&#xff0c;为吸引更多人的眼球&#xff0c;很多自媒体发声者会费尽心思写一些种草文案&#xff0c;但是自己绞尽脑汁写的种草文案&#xff0c;却没有取得较好的效果&#xff0c;反而借助一些AI工具帮助大家写的种草文案&#xff0c;更广泛地被…

怎么用秘塔写作猫写短视频文案?

短视频文案通常需要在短短的几秒钟传递一些比较重要的信息和情感&#xff0c;让关注更好的了解视频的主题和内容&#xff0c;写一份好的短视频文案可以吸引较多观众的注意力&#xff0c;能够让他们更好的理解视频内容&#xff0c;同时在观看视频时还可以给大家留下比较深刻的印…

「转」好用的写作辅助工具 - 秘塔写作猫

关注我很久的读者&#xff0c;应该都知道&#xff0c;我特别喜欢写作&#xff0c;每天不写点东西心里总是痒痒的。而且我写公众号文章有时候经常会有错别字&#xff0c;细心的读者能够帮我指正&#xff0c;其实挺感谢大家的指正的。 不知道大家发现了没有&#xff0c;我最近写…

秘塔写作猫(网页端)

首先&#xff0c;秘塔写作猫是利用智能AI写作功能帮大家完成各种写作&#xff0c;集AI写作&#xff0c;多人协作&#xff0c;文本校对&#xff0c;改写润色&#xff0c;自动配图等功能为一体AI Native的内容创作平台&#xff0c;这绝对是一个写作神器。 最开始不会使用的小伙伴…

秘塔写作猫

秘塔写作猫是集AI智能写作、多人协作、改写润色、文本校对等功能为一体的AI原生创作平台&#xff0c;可以帮助不同群体大幅提升写作效率和生产力。 接下来小编就带大家了解一下该软件具体的一些功能&#xff0c;不论你是学生、上班族还是自媒体从业者等&#xff0c;该工具绝对可…

python几行代码实现微信自动发消息

直接上代码 from wxauto import WeChat# 获取当前微信客户端 wx WeChat()# 获取会话列表 wx.GetSessionList()with open("C:\\Users\\mmm\\Desktop\\test.txt","r",encoding"gbk")as f: #这个.txt里写要发送的文字for line in f.readlines():…

Python实现飞书机器人定时发送文本、图片等群消息

工作中会经常遇到监控告警相关问题&#xff0c;监控和告警的目的是要在事中及时发现问题并定位系统问题&#xff0c;那么当系统或平台出现问题了&#xff0c;如何及时暴露这些问题给对应的项目开发人员呢&#xff1f; 本文记录了在Python项目中利用飞书的自定义机器人webhook向…

这都行?Python 自动发微博

最近在研究用 Python 来制作各个类别的机器人&#xff0c;今天先来分享一个自动发布新浪微博的机器人。 基本思路 其实要实现一个简单的自动发布微博机器人还是不难的&#xff0c;只需要每天按时找好要发布的素材&#xff08;一般就是爬虫了&#xff09;&#xff0c;然后再通过…

用python自动发微博

……刚刚全部写完了点发布……结果什么都没保存……内心好忧伤。 终极目标是用raspberry pi camera 捕捉画面&#xff0c;处理图像识别图中有我家主子&#xff08;猫&#xff09;&#xff0c; 然后自动capture图像&#xff0c;发微博。raspberry pi明天才能送到&#xff0c;所…