打卡信奥刷题(123)用Scratch图形化工具信奥PP8474 [普及组]「GLR-R3」立春

「GLR-R3」立春

题目背景

  「从此雪消风自软,梅花合让柳条新」


  “明天就要返校了呢。”

  灰色的长发被身后的人儿慢慢地顺着,顺着,于假期最后一个慵懒的清晨醒来,与春日的第一抹阳光迷迷糊糊地耳语,她的目光随着点过窗外的鸟雀,停留在那丛褐色的光秃枝丫。

  “天依?”

  赤红色的眸子随之望去,片刻,静默。

  “如果我能告诉它,今天是立春,是春天的……”

  “那么它会抽芽,繁盛,会成为我们窗外或红或绿的美妙。”

  “——因为它本该如此,希望如此吧。”


  立春 「雏鸟站在悬崖上 展开了翅膀 地平线上的梦想 照进一缕光」

题目描述

由于天依刚睡醒,害怕第一题的题面就迷糊了大家,所以本题只有简要题意。(其实是实在编不下去了。)

σ \sigma σ 为任意一个长度为 n n n 的排列, τ ( σ ) \tau(\sigma) τ(σ) 表示其中的逆序对个数,请求出

∑ σ 2 τ ( σ ) \sum_\sigma 2^{\tau(\sigma)} σ2τ(σ)

( 1 0 9 + 7 ) (10^9+7) (109+7) 取模的结果。

输入格式

输入一行一个整数 n n n,表示排列的长度。

输出格式

输出一行一个整数,表示所求得的答案。

样例 #1

样例输入 #1

3

样例输出 #1

21

提示

题意解释

本节为部分选手介绍逆序对的定义,对此熟悉的选手可以跳过本节。

对于长度为 n n n 的排列 σ \sigma σ,假设下标从 1 1 1 开始,那么我们称 ( i , j ) (i,j) (i,j) 构成逆序对,当且仅当 1 ≤ i < j ≤ n 1\le i<j\le n 1i<jn,并且 σ i > σ j \sigma_i>\sigma_j σi>σj τ ( σ ) \tau(\sigma) τ(σ) 则表示总共有多少对不同的 ( i , j ) (i,j) (i,j) 满足上述条件。

举个例子,对于排列 σ = ⟨ 2 , 4 , 1 , 3 ⟩ \sigma=\lang 2,4,1,3\rang σ=2,4,1,3,有逆序对 ( 1 , 3 ) , ( 2 , 3 ) , ( 2 , 4 ) (1,3),(2,3),(2,4) (1,3),(2,3),(2,4),所以 τ ( σ ) = 3 \tau(\sigma)=3 τ(σ)=3。可见只要 σ \sigma σ 中元素的大小关系确定, τ ( σ ) \tau(\sigma) τ(σ) 就是确定的。

样例 #1 解释

∑ σ 2 τ ( σ ) = 2 τ ( ⟨ 1 , 2 , 3 ⟩ ) + 2 τ ( ⟨ 1 , 3 , 2 ⟩ ) + 2 τ ( ⟨ 2 , 1 , 3 ⟩ ) + 2 τ ( ⟨ 2 , 3 , 1 ⟩ ) + 2 τ ( ⟨ 3 , 1 , 2 ⟩ ) + 2 τ ( ⟨ 3 , 2 , 1 ⟩ ) = 2 0 + 2 1 + 2 1 + 2 2 + 2 2 + 2 3 = 21. \begin{aligned} \sum_{\sigma}2^{\tau(\sigma)} &= 2^{\tau(\lang 1,2,3\rang)}+2^{\tau(\lang 1,3,2\rang)}+2^{\tau(\lang 2,1,3\rang)}+2^{\tau(\lang 2,3,1\rang)}+2^{\tau(\lang 3,1,2\rang)}+2^{\tau(\lang 3,2,1\rang)}\\ &= 2^0+2^1+2^1+2^2+2^2+2^3\\ &= 21. \end{aligned} σ2τ(σ)=2τ(⟨1,2,3⟩)+2τ(⟨1,3,2⟩)+2τ(⟨2,1,3⟩)+2τ(⟨2,3,1⟩)+2τ(⟨3,1,2⟩)+2τ(⟨3,2,1⟩)=20+21+21+22+22+23=21.

数据规模与约定

本题采用 Subtask 的计分方式。

子任务编号 n n n分值
1 1 1 ≤ 4 \le4 4 5 5 5
2 2 2 ≤ 10 \le10 10 20 20 20
3 3 3 ≤ 100 \le100 100 20 20 20
4 4 4 ≤ 1 0 3 \le10^3 103 25 25 25
5 5 5 ≤ 1 0 7 \le10^7 107 30 30 30

Scratch实现

在这里插入图片描述

后续

接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值