考研

2020考研计算机复试试题解析之西安电子科技大学

时间:2020-04-13 来源:文都网校 浏览: 分享:

      今年受到疫情的影响2020考研复试的时间都有所调整,最近在家隔离的日子正是同学们好好准备复试的好时机。文都网校考研小编整理“2020计算机复试试题解析之西安电子科技大学”文章,希望能给同学们提供参考~

      最近很多学校都进入了考研的复试阶段,对于计算机专业来说,复试分为笔试和机试,机试在复试中占了一部分比重,也是很多同学比较害怕的部分,今天,我们来给大家讲讲西安电子科技大学的复试机试题目,西安电子科技大学是一个很有专业特色的院校,和很多*一样,对机试的要求不算简单,有一定难度。近几年来有出过中规中矩的题目,也有结合社会热点,新生事物派生出的相关题目,所以同学们要做好准备,多上机进行练习,培养算法思维,取得较好的成绩。一般来讲,机试共1个半小时,共4道题大题。下面我们给大家举两个之前考过的题目,说明思路,供大家参考。

      一、Problem A

      问题描述:最近很火的微信游戏跳一跳游戏规则如下:短跳得1分,跌落游戏结束,长跳得2分,并且长跳可连续累加,第一次2分,第二次4分,依次类推,若长中断则重新计分2分。

      现给定0,1,2的组合序列,其中0:跌落 1:短跳成功 2:长跳成功

      请你计算玩家当次游戏的合计得分。

      输入格式:首先输入一个数字n代表当前游戏状态变化数,接着输入n个由0,1,2组合的数字,0代表结束。

      输出格式:输出玩家当次游戏得分。

      输入案例:

      6

      1 2 2 1 2 0

      输出结果:10

      思路:该题为基础题,只需要对长跳进行记录即可,累加计算得分,可设置变量存放上一跳状态与连跳次数。

      参考代码:

      #include

      using namespace std;

      int main()

      {

      int n;

      while(cin>>n)

      {

      int ans=0,last=0,c=1;

      for(int i=0;i

      {

      int tmp;

      cin>>tmp;

      if(tmp==0) // 结束

      break;

      if(tmp==1) // 短跳

      {

      ans+=1;

      c=1;

      }

      if(tmp==2)

      {

      if(last==2) // 连续长跳

      {

      ans+=2*c;

      c++;

      }

      else // 单次长跳

      {

      ans+=2;

      c++;

      }

      }

      last=tmp; //保存上一跳

      }

      cout<

      }

      return 0;

      }

      二、Problem B

      最长连续公共子序列LCS

      问题描述:输入两个字符串s1,s2,设s1长度为a,s2长度为b,s1与s2的最长公共子串长度为c,定义公共因子 d=c/(a+b),要求求得d并输出,结果保留两位小数

      输入格式:输入两个字符串s1,s2,长度不大于100,以空格隔开

      输出格式:输出公共因子d,结果保留两位小数

      输入案例:

      abcde abgde

      输出案例:

      0.20

      两字符串具有连续公共子序列ab,c=2,a=b=5,于是有d=c/(a+b)=2/10=0.20

      思路:解决此类公共子序列典型解题方法就是使用动态规划,求解LCS的问题则变成递归求解的问题。但是如果重复的子问题多,效率就会很低下。改进的办法——用空间换时间,用数组保存中间状态,方便后面的计算。这就是动态规划(DP)的核心思想。

      参考代码:

      #define MAX 101

      #define GMax(x,y) x>y?x:y

      #include

      #include

      #include

      using namespace std;

      // dp数组

      int dp[MAX][MAX];

      int main()

      {

      char str1[MAX];

      char str2[MAX];

      gets(str1);

      gets(str2);

      int a=strlen(str1);

      int b=strlen(str2);

      int max_len=0; // 最大长度

      // 初始化序列

      for(int i=0;i<=a;i++)

      dp[i][0]=0;

      for(int j=0;j<=b;j++)

      dp[0][j]=0;

      // 注意这里不需要计算到dp[a][b],因为str[a]=str[b],长度会多加1

      // 递推动态规划

      for(int i=1;i

      for(int j=1;j

      {

      if(str1[i]==str2[j])

      {

      dp[i][j]=dp[i-1][j-1]+1;

      // 更新最大长度

      if(dp[i][j]>max_len)

      max_len=dp[i][j];

      }

      else

      // 非连续写法

      // dp[i][j]=GMax(dp[i-1][j],dp[i][j-1]);

      //连续写法 重新计数

      dp[i][j]=0;

      }

      int c=max_len;

      float ans=(float)c/(a+b);

      //规格化输出

      cout<

      cout<

      return 0;

      }

      三、总结

      第一题从微信小游戏跳一跳出发,和普通的应用题类似,属于比较基础的题目,大部分考生应该能够编译成功,得分容易,而第二道题目难度偏大,考到了字符串的问题,和普通的字符串拼接等是有不同的,考生需要想到动态规划这个概念,了解动态规划的相关思想,加了一些难度,部分考生会比较迷惑,容易失分,因此,同学们在复习过程中应该注意方方面面的知识点,多动手操练,各类编程大题所涉及内容均应复习到位,提高效率,才能在1个半小时时间里完成4道编程大题。以上就是计算机复试西安电子科技大学机试题目的总结,希望对考生们能有所帮助。祝大家顺利通过考研复试机试环节!

      以上文都网校考研为考生整理的2020考研计算机复试试题解析之西安电子科技大学,希望能帮助到大家。更多考研动态、资讯尽在文都网校考研频道!有问题找文都☞☞☞详情咨询入口 >>>

      复试是考研的临门一脚,复试的表现决定最终的录取结果,所以希望同学们认真准备,最后取得圆满的结果。预祝大家复试成功。

    文都网校考研复试精品推荐
    课程 * 价格 详情
    2020考研复试预习规划直播课 张爱媛、白晨、周冰 19 点击领取
    20考研复试调剂百问百答 宋高芬 1 点击领取
    2020考研复试全程实战演练班 何凯文、张爱媛、白晨、周冰 349 点击领取
    2020考研复试特训班 何凯文、张爱媛、常成、周冰 4310 点击领取
    2020考研复试专业课一对一课程 文都* 3300 点击领取
    2020考研复试政治全程班 常成 299 点击领取
    2020考研复试精讲班 张爱媛、周冰 1280 点击领取
    2020考研复试无领导小组全程班 张爱媛 299 点击领取

    关注公众号,及时了解课程信息

    2020考研复试问是否有过项目经验,如何回答才好?

    文都2023考研福利群:1009102006【加群

    文都2023考研交流群:690522225【加群

    文都2024考研交流群群:1095571237【加群

    文都四六级资料分享群:671078088【加群

    热门课程
    热文排行