2021南京市小学生信息夏令营活动题解

2021南京市小学生信息夏令营活动题解

Problem 1

题面概述

给出 1 1 1~ n n n的一个排列 a a a,问该数列是否满足对于所有 i , j i,j i,j满足 1 < i , j ≤ n 1< i,j \leq n 1<i,jn i i i不等于 j j j,满足 ∣ a [ i ] − a [ i − 1 ] ∣ |a[i]-a[i-1]| a[i]a[i1]不等于$|a[j]-a[j-1]|。

思路

考虑把所有 ∣ a [ i ] − a [ i − 1 ] ∣ |a[i]-a[i-1]| a[i]a[i1]对应 b b b数组中的数值加一,若 b b b数组中有大于一的数,则条件不成立,否则成立。复杂度 O ( n ) O(n) O(n)

Problem 2

题面概述

给出RGB矩阵 c c c,每一个R会把一轮后的G染成R,每一个G会把一轮后的B染成G,每一个B会把一轮后的R染成B。求一轮后的矩阵

思路

考虑暴力枚举。
枚举每一条两个点之间的边。
将所有互不相同的进行下一轮染色。
暴力即可。复杂度 O ( n 2 ) O(n^2) O(n2)

Problem 3

题面概述

给出 n n n,求满足条件 n n n% i = 0 i=0 i=0 i i i有几个。

思路

枚举 i < n i< \sqrt n i<n
n n n% i = 0 i=0 i=0,记两个 i i i
最后枚举 i = n i= \sqrt n i=n
n n n% i = 0 i=0 i=0,记一个 i i i
输出最终结果即可,复杂度 O ( n ) O(\sqrt n) O(n )

Problem 4

题面概述

给出数组 a a a,求最长的每项满足大于两边或小于两边的 a a a的子序列。

思路

贪心,选入首尾两头和其他峰值,谷值,输出总数量即可。
复杂度 O ( n ) O(n) O(n)

Problem 5

题面概述

构造一个数组,满足:
1. ∑ i = 1 m a [ i ] = n \sum _{i=1}^{m} a[i]=n i=1ma[i]=n
2. a [ i − 1 ] < a [ i ] a[i-1]<a[i] a[i1]<a[i]
3. m > 1 m>1 m>1
问有多少个满足要求的数组。

思路

搜索。
通过dfs与记搜枚举从左到右每一位的数值。
复杂度 O ( n 2 ) O(n^2) O(n2)

Problem 6

题面概述

现在有一个数 x x x,每一次操作可以变成 x + 1 x+1 x+1 x − 1 x-1 x1 x ∗ 2 x*2 x2。问至少几次变成 y y y

思路

1)
贪心。
每次 y y y除以2。
哪一次距离 x x x近就输出。
分数10分(有反例)。
2)
宽搜。
每次由 x x x宽搜。
若可以优化,就push入栈中。
可以保证复杂度足够,大约是 O ( n e ) O(ne) O(ne) e e e是一个大约是 1 0 4 10^4 104的常数。

总体评价

题目十分简单,都是CSP-J第二题难度以下。
不过和以前的不太相同,更加新,活,不像以前几乎都是模板题。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值