• 2019北大计算机研究生推免机试题目总结


    近一些年北大研究生推免机试题目都会在OpenJudge-百练平台上,但是比赛已经结束,不能提交题目,所以我借助Virtual Judge平台创建了一个比赛的链接,密码为fighting,和大家一起学习,同时写下一篇简单的总结。

    题目总的比较简单,都是简单的模拟和常用的算法。当然最后一题,没有看,估摸是个大模拟的题目,被题目长度击退,估计太麻烦也写不出。

    A - 有趣的跳跃

    读入数据,相邻的数据相减的绝对值保存到数组,排序之后检查数组是否依次是1~n-1的值即可。

         B - 玛雅历

      两种日期的互换,主要是读懂题意。自己定义的初始化函数记得调用。

    C - 走迷宫

      迷宫中的最短路问题,标准版bfs既可。如果需要打印路径,只需要每一个位置保存前一个位置,采用逆向打印。

    D - 最大上升子序列和

      最长上升子序列的dp问题解法基本相同,在最长上升子序列中,dp[i]保存到i为止,最长上升子序列的长度,而本问题中,保存的最大上升子序列的和。因为在dp的过程中,每一个位置i都遍历了前一个可能的上升子序列的前一位置,取出最优的保存。可以保证问题求解的正确性。

       E - Yogurt factory

      贪心题。

      题意是每一周需要一定数量的Yougurt,每一周生产的Yougurt价格不同,但是仓库空间无限大,每一周需要的Yougurt都可以在前面任意的周内做好,单位内存储成本固定,每一份Yougurt每周为S。求最小的cost。

      逆向遍历,从后往前,因为当前周的产品可以由前面周生产,遍历前面全部周,cost最小的那一周即为本周产品的生产周。

      可能还有更好的遍历策略,但是这样n*n的复杂度没有问题。

      贪心的正确性在于每一周的产品不会在不同周生产,同一周生产后面某周的产品即可保证最优。

         F - Wireless Network

    基本上是并查集裸体,唯一变化是的一些结点被唤醒之后,暴力查找范围内的唤醒结点连接。

    G - Arctic Network

      这个题在两年前ac过,那次主要是数组开小了RE了几次,这次却WA了几次,原来是多组输入时,边的数量没有清空。

      想一想可以确定,最小生成树的简单应用,使用的是Kruskal,然后策略是贪心,选择前面最小的前n-m条边连接,所以答案就是第n-m条边的长度,由于Kruskal算法排序了,所以并查集操作的时候,只要连接了n-m条边,输出当前边。(边从1开始,n为点个数,m为已经联通的点)。

  • 相关阅读:
    【uoj3】 NOI2014—魔法森林
    【bzoj2002】 Hnoi2010—Bounce 弹飞绵羊
    【hdu4010】 Query on The Trees
    【uoj129】 NOI2015—寿司晚宴
    【bzoj2877】 Noi2012—魔幻棋盘
    【bzoj2876】 Noi2012—骑行川藏
    【bzoj2875】 Noi2012—随机数生成器
    【codeforces 235E】 Number Challenge
    【bzoj2154】 Crash的数字表格
    【bzoj3529】 Sdoi2014—数表
  • 原文地址:https://www.cnblogs.com/gzr2018/p/12285246.html
Copyright © 2020-2023  润新知