鱼C论坛

 找回密码
 立即注册
查看: 1164|回复: 16

[已解决]梦想星际舰队第16关 && FCOI #8 第三题绳子题解【原创】

[复制链接]
发表于 2023-8-22 21:06:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zhangjinxuan 于 2023-8-22 21:17 编辑


梦想星际舰队第16关 && FCOI #8 题解


第三题:绳子

题目描述
有 N 个物品,现在要用一些绳子把它们连起来,使得两个物品之间都有一根绳子链接。

一根绳子只能连接 2 个物品。

答案可能过大,请输出结果对 10^9+7 取模的结果。

输入格式
一行一个整数 N。

输出格式
一个整数表示答案。

输入输出样例
输入 #1
4
输出 #1
6
输入 #2
10
输出 #2
45
输入 #3
114514
输出 #3
556670799

数据范围
对于 30% 的数据,保证 1≤N≤1000

对于 100% 的数据,保证 1≤N≤10^6


Extra 数据范围
对于 100% 的数据,保证 1≤N≤10^18

其他说明
本题目为 zhangjinxuan 原创题目。
测试链接:https://www.luogu.com.cn/problem/U325335

答案与解析
游客,如果您要查看本帖隐藏内容请回复
[/hide]

最佳战士排行榜
游客,如果您要查看本帖隐藏内容请回复
[/hide]
最佳答案
2023-8-22 21:13:02
本帖最后由 Ewan-Ahiouy 于 2023-8-22 21:15 编辑
def r(n):
        return n * (n - 1) // 2
n = int(input())
print(r(n) % 1000000007)

最佳我来啦~

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-22 21:06:30 | 显示全部楼层
本帖最后由 陶远航 于 2023-8-22 21:18 编辑
k = int(input())
print(int((1 + k - 1) * (k - 1) / 2 % (10 ** 9 + 7)))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-22 21:06:33 | 显示全部楼层
本帖最后由 isdkz 于 2023-8-22 21:09 编辑

这个问题可以使用动态规划来解决。我们定义一个数组dp,其中dp[ i]表示连接i个物品所需的绳子的数量。

首先,我们考虑边界情况。当只有一个物品时,不需要绳子,即dp[1] = 0。当有两个物品时,需要一根绳子,即dp[2] = 1。

接下来,我们考虑连接i个物品所需的绳子的数量。我们可以将第i个物品与前面的任意一个物品连接,然后将剩下的i-1个物品连接起来。因此,dp[ i] = dp[i-1] + (i-1)。

最后,我们将结果对10^9+7取模,即dp[N] % (10^9+7)。

下面是具体的代码实现:
def solve(N):
    dp = [0] * (N+1)
    dp[1] = 0
    dp[2] = 1
    for i in range(3, N+1):
        dp[ i] = (dp[i-1] + (i-1)) % (10**9+7)
    return dp[N]

N = int(input())
print(solve(N))

希望能帮到你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-22 21:07:15 | 显示全部楼层
isdkz 发表于 2023-8-22 21:06
这个问题可以使用动态规划来解决。我们定义一个数组dp,其中dp[ i]表示连接i个物品所需的绳子的数量。

...

呃呃,小题大作了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-22 21:13:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Ewan-Ahiouy 于 2023-8-22 21:15 编辑
def r(n):
        return n * (n - 1) // 2
n = int(input())
print(r(n) % 1000000007)

最佳我来啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-22 21:15:12 | 显示全部楼层

bushi,这是绳子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-22 21:15:55 | 显示全部楼层

你的链接错了!!!害得我丢人
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-22 21:16:48 | 显示全部楼层
(1 + k - 1)不就等于k吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-22 21:17:41 | 显示全部楼层
Ewan-Ahiouy 发表于 2023-8-22 21:16
(1 + k - 1)不就等于k吗

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-22 21:18:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-22 21:19:38 | 显示全部楼层


已处理~

继续水梦想护卫舰的业绩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-22 21:19:57 | 显示全部楼层
zhangjinxuan 发表于 2023-8-22 21:19
已处理~

继续水梦想护卫舰的业绩

测试链接错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-22 21:20:10 | 显示全部楼层

改了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-22 21:26:18 | 显示全部楼层

6,无权查看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-22 21:28:14 | 显示全部楼层
陶远航是真恶心,我发问题他抄题解,这个这么简单的问题照样抄,还有那个封号事件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-22 23:41:15 | 显示全部楼层
Ewan-Ahiouy 发表于 2023-8-22 21:28
陶远航是真恶心,我发问题他抄题解,这个这么简单的问题照样抄,还有那个封号事件

1c
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-24 20:31:39 | 显示全部楼层
好多这个系列

评分

参与人数 2荣誉 +6 收起 理由
Frog_Belly + 1 鱼C有你更精彩^_^
zhangjinxuan + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 09:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表