2016.5.28【初中部 NOIP普及组 】模拟赛

17 篇文章 0 订阅
16 篇文章 0 订阅

题目:

https://jzoj.net/junior/#contest/problems/1310


T1:

题目大意:求某数列——1,2,2,3,3,3,4,4,4,4....的a~b区间里的和。

分析:

这道题可以先把这个数列从1到b全部先算好,然后再直接从a~b区间内求和。


T2:

题目大意:在8*8的棋盘里,分布着白黑两色的棋子,现在允许多下一步黑子,问能转换最多多少枚白子。转化的方式是(当前新下的黑子与其所对应的八个方向的任意一个方向上有多一枚黑子为其包夹“新下黑子”与“多一枚黑子”之间的白子,而这些白子之间需无空格,也就是这些白子是连起来的意思。其次刚变黑子的白子不能又去改变其他白子)

分析:可以从8*8的每个点枚举,如果枚举到当前点,符合条件,就模拟题目要求你做的一些判断,以及最终判断,你当前枚举的这个点可以变多少白子,取一个最大值即可。


T3:

题目大意:在一个有n个数的序列里,你需要从第一个格跳到最后一个格。题目给的“跳”的条件是,如果向前跳,需比上一次跳的格子数目多1.如果向后跳,则与上一次格子的数目相同。你应该怎么选择你跳的顺序以及方式,使得你每次跳所需要加上的“数”的最后总和尽可能少。
分析:很明显的动态规划题目。我们可以设f[i,j]表示当前移动到第j格,且上一次移动到第j格时跳了i步的最优值。我们略加思考一下,就可以想到,当前第j格其实只能由后面往前跳到第j格,或者是前面往后跳到第j格,所以两个的状态分别对应的是f[i-1,j-i]+a[j]和f[i,j+i]+a[j]。其次,因为我们从前往后跳的时候如果是顺序枚举就不可能得到最优解,所以我们枚举j时要逆序枚举。
边界:f[1,1]:=a[1]+a[2]. f[1,2]:=a[2].

其实,如果没有想到动态规划,还可以用记忆化的方式。一步一步的往上递归,当递归完之后要用一个数组把所得到的结果储存起来,以便下次“记忆”,出口就是当前跳到的位置小于1,或大于n,这个时候可以返回一个无穷大,以示为此行不通。


T4:

题目大意:指在一个n个字符串的a数组里,以及一个m个字符串的b数组里,找到一个可以满足“至少有(n+1) div 2个相同的字符串”的最小位置。
分析:直接模拟。n*m爆搜即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值