| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8066 人关注过本帖, 1 人收藏
标题:中南大学几道计算机考研机试题
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
题目 D(20 分)
问题描述:
巨人国的小学生放学了,老师要给小朋友们排队了。可是这个老师有强迫症,一定要让路队上的小朋友按身高从高到矮排序。小朋友们呢也很调皮,一旦老师给他排好了队就不愿意动了。这时候小朋友们一个一个从教室里出来了,每个小朋友一出来老师就要给小朋友安排好位置。请问老师最少要给小朋友们排几条路队?

数据输入:
对于每组数据,第一行一个整数 n,表示小朋友的总数(1≤n≤10000)第二行 n 个整数,表示每个小朋友的身高,身高不超过 30000

结果输出:
对于每组数据,输出一个整数,表示最少的路队数

输入示例:
8

389 207 155 300 299 170 158 65

输出示例

2

样例解释:
最少要排两条路队,其中一种方案是:389-207-155-65 和 300-299-170-158


这题看看这样如何~

每次插队都插在能插入的最小值那一列~如果该值是这么多队伍尾部的最大值就另外开条队~似乎这样看上去没啥问题~~
不过如果这样真的能解决~似乎就简单了点吧~难在逻辑推理证明啊~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-28 14:24
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
题目 C(15 分)
问题描述:
在一片 n*m 的土地上,每一块 1*1 的区域里都有一定数量的金子。这一天,你来到这里淘金。然而当地人告诉你,如果你要挖(x,y)区域的金子,那么你就不能挖(x-1,y)、(x+1,y)以及纵坐标为 y-1 和 y+1 的金子(也就是说你挖某一区域的金子,左边、右边、上一行、下一行的金子你都不被允许挖了)。那么问题来了,你最多能淘多少金?


数据输入:
对于每组数据,第一行两个数 n 和 m,分别表示土地的长度和宽度(1≤n,m≤200)
接下来 n 行,每行有 m 个数表示每个区域金子的数量,每个区域金子数量不超过 1000


结果输出:
对于每组数据,输出最多能得到的金子数量

输入示例:
4 6

11 0 7 5 13 9

78 4 81 6 22 4

1 40 9 34 16 10

11 22 0 33 39 6

输出示例:
242


这个感觉是由选择据点数量多到小这样递推出最优解~~
选择数量最多是无异于就两种情况~
10101
01010
10101


01010
10101
01010
10101
01010

不过这个两个显然都不一定是最优解~
然后试试挖多一个剩余价值最大的并把和规则冲突的剔除掉然后看看效果如何~这个我没怎么去证明但感觉难在证明啊~局部解会影响到整体感觉关系不大~所以可以考虑局部动态优化~不过200*200穷举法验证不怎么现实吧~可以考穷举法虑验证5*5的~如果方法没有问题再推及到200*200~

200*200最多可以取20000个据点~如果算法复杂度为0(n^2)级别的话可能会超时~所以感觉难点是要看局部与整体的关系强弱程度~感觉应该是不要先遍历完毕对其进行整体分析就开始选择了(不然0(n^2)算法复杂度可能会超时)~~这个还是先要去思考一下才行~

PS:为啥我用规则能算出300多?~242是怎么来的?~难道对题目理解有误~理解有误也好~不然验证如果是NPC类问题就无语了~一般信息考试题是不会出NPC问题的~

[此贴子已经被作者于2017-4-28 15:02编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-28 14:39
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
题目 C(15 分)
问题描述:
在一片 n*m 的土地上,每一块 1*1 的区域里都有一定数量的金子。这一天,你来到这里淘金。然而当地人告诉你,如果你要挖(x,y)区域的金子,那么你就不能挖(x-1,y)、(x+1,y)以及纵坐标为 y-1 和 y+1 的金子(也就是说你挖某一区域的金子,左边、右边、上一行、下一行的金子你都不被允许挖了)。那么问题来了,你最多能淘多少金?

数据输入:
对于每组数据,第一行两个数 n 和 m,分别表示土地的长度和宽度(1≤n,m≤200)
接下来 n 行,每行有 m 个数表示每个区域金子的数量,每个区域金子数量不超过 1000

结果输出:
对于每组数据,输出最多能得到的金子数量

输入示例:
4 6

11 0 7 5 13 9

78 4 81 6 22 4

1 40 9 34 16 10

11 22 0 33 39 6

输出示例:
242

这道题应该是变形的“01背包问题”,应该使用“贪心算法”。具体来说应该分解成两层来解决。
1.根据“如果你要挖(x,y)区域的金子,那么你就不能挖(x-1,y)、(x+1,y)的金子”分别对每一行用贪心算法,计算出该行最多可以挖到多少金子;
2.根据“如果你要挖(x,y)区域的金子,那么你就不能挖纵坐标为 y-1 和 y+1 的金子”判断我们要选择挖哪些行的金子。
图片附件: 游客没有浏览图片的权限,请 登录注册


-----------------------------------------------------



[此贴子已经被作者于2017-4-28 21:37编辑过]


φ(゜▽゜*)♪
2017-04-28 21:23
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
第二题先遍历矩阵~逐个逐个对比~把冲突的暂时放下比较~保留其价值量较大的~遍历若干次矩阵直至找不到价值量比原矩阵的取法~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-28 21:30
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
题目 D(20 分)
问题描述:
巨人国的小学生放学了,老师要给小朋友们排队了。可是这个老师有强迫症,一定要让路队上的小朋友按身高从高到矮排序。小朋友们呢也很调皮,一旦老师给他排好了队就不愿意动了。这时候小朋友们一个一个从教室里出来了,每个小朋友一出来老师就要给小朋友安排好位置。请问老师最少要给小朋友们排几条路队?

数据输入:
对于每组数据,第一行一个整数 n,表示小朋友的总数(1≤n≤10000)第二行 n 个整数,表示每个小朋友的身高,身高不超过 30000
结果输出:
对于每组数据,输出一个整数,表示最少的路队数
输入示例:
8
389 207 155 300 299 170 158 65
输出示例
2
样例解释:
最少要排两条路队,其中一种方案是:389-207-155-65 和 300-299-170-158

乍看形状像拓扑排序,但我没想清楚怎样表达先后次序。。。
暂时的解决方案是倒过来考虑排队问题。{
如上示例:
1.65单独建队。
2.158>65,所以158进65的队列,同时更新队列头为158。
3.170>158,所以170进65的队列,同时更新队列头为170.
4.299>170,所以299进65的队列,同时更新队列头为299
5.300>299,所以300进65的队列,同时更新队列头为300
6.155<300,所以155和300一定不在同一个队列,新建队列155
7.207<300,所以207和300一定不在同一个队列;207>155,所以207进155的队列,同时更新队列头为207
8.389>300且大于207,应该选择队列更高的那个队伍站,所以389进65的队列,同时更新队列头为389
到此为止:共建立了两个队列,分别为:389-300-299-170-158-65和207-155
}


φ(゜▽゜*)♪
2017-04-28 21:57
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:5 
回复 13楼 书生牛犊
DP,带权区间调度
2017-04-29 00:15
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
倒推: 选择加1 或 减1  看对下次分裂的效果, 以分裂后的偶数作为依据

1 到 111
         
         111 = 112 - 1
              /   \
            56    56
                  / \
                28  28
                   /  \
                  14  14
                     /  \
                    7   7 + 1(8)
                        /  \
                       4    4
                           / \
                          2   2
                             / \
                             1  1

5 到 17                             
     
        17 = 16 + 1
            /  \
           8    8
               /  \
              4   4 + 1
2017-04-29 00:32
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 13楼 书生牛犊
PS:为啥我用规则能算出300多?~242是怎么来的?~难道对题目理解有误~理解有误也好~不然验证如果是NPC类问题就无语了~一般信息考试题是不会出NPC问题的~


哎呀~原来真的是我理解错题意了~语文没学好~更正理解后感觉比原来要简单很多~解法就像13楼的那样~先计算每一行最多挖多少个金子~然后再计算应该选取第几行~
具体计算方法用深度搜索就行了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-29 00:32
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 17楼 寒风中的细雨
以下是引用寒风中的细雨在2017-4-29 00:32:05的发言:

倒推: 选择加1 或 减1  看对下次分裂的效果, 以分裂后的偶数作为依据

1 到 111
         
         111 = 112 - 1
              /   \
            56    56
                  / \
                28  28
                   /  \
                  14  14
                     /  \
                    7   7 + 1(8)
                        /  \
                       4    4
                           / \
                          2   2
                             / \
                             1  1


问题是当取值为奇数时例如~~你怎么知道是111=112-1而不是111=110+1或者是取7+1而不是取7-1???~~~~


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-29 00:40
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 19楼 九转星河
选择加1 或 减1  看对下次分裂的效果, 以分裂后的偶数作为依据
收到的鲜花
  • 九转星河2017-04-29 00:46 送鲜花  10朵   附言:理解了~好!~
2017-04-29 00:42
快速回复:中南大学几道计算机考研机试题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017817 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved