洛谷 P1866 编号

news/2024/10/23 9:38:46/

题目描述

太郎有N只兔子,现在为了方便识别它们,太郎要给他们编号。兔子们向太郎表达了它们对号码的喜好,每个兔子i想要一个整数,介于1和Maxnumber[i]之间(包括1和Maxnumber[i])。当然,每个兔子的编号是不同的。现在太郎想知道一共有多少种编号的方法。

你只用输出答案mod 1000000007即可。如果这是不可能的,就输出0.

输入格式

第一行是一个整数N。(1≤N≤50)

第二行N个整数Maxnumber[i]。(1≤Maxnumber[i]≤1000)

输出格式

一个整数

输入输出样例

输入 #1

2
5 8

输出 #1

35

需要一定思路的题目。

思路比较直观,首先我们将整个Maxnumber进行从小到大排序,然后将Maxnumber从小到大的情况进行枚举。

举个栗子

 n = 5  Maxnumber = {5 13 9 20 16}

首先sort一下 Maxnumber,得到{5 9 13 16 20}

随后从头开始考虑

第一只兔子的编号取值有1 - 5,共5种情况

第二只兔子的编号取值有1 - 9,出去第一只兔子的取值,共9 - 1 = 8 种情况

第三只兔子的编号取值有1 - 13,出去前两只兔子的取值,共13 - 2 = 12 种情况

以此类推,将得到的所有值乘起来,即为答案

需要注意的是,存答案的数据类型一定要是long long 类型(第一次交没开long long导致WA了7个点,吐血,同学们碰到数据范围大一些的一定开long long保证不出错)

然后就是mod的问题,由于乘积很大,每次数乘都需要mod一次

代码如下

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;	//不开long long见祖宗!! const int N=55;	//数据量 
const int mod=1000000007;	//取余 int num[N];	//最大编号数组 
int main()
{int n;cin>>n;for(int i=0;i<n;i++)cin>>num[i];sort(num,num+n);	//排序 ll ans=1;	//答案初值切记为1 for(int i=0;i<n;i++){ans=(ll)((ans*(num[i]-i))%mod);	//每次都要取余,多加几个括号防止出错 }cout<<ans<<endl;return 0;
}


http://www.ppmy.cn/news/323921.html

相关文章

全程15分钟 详解如何为MacBook Pro 15寸 加装固态硬

本文导航 第1页&#xff1a;详解如何为MBP15加装固态硬第2页&#xff1a;用时约3分钟&#xff1a;查看硬盘和光驱接口信息第3页&#xff1a;用时约2分钟&#xff1a;拆解机身底盖螺丝 第4页&#xff1a;用时约3分钟&#xff1a;拆解光驱和清理风扇第5页&#xff1a;用时约5分…

A1062(25)

德才论 看题目可能会觉得简单&#xff0c;但是实际的话会有些麻烦。注意根据题意将输出分为四个类别&#xff0c;即德才均达标&#xff0c;德达标&#xff0c;德大于才&#xff0c;其余。先按照类比来比较&#xff0c;类别相同&#xff0c;比较总分&#xff0c;总分相同比较德分…

A1042

Shuffling Machine (20分) 单词&#xff1a; shuffling&#xff1a;洗牌 position&#xff1a;位置the number at the i-th position is j, it means to move the card from position i to position j&#xff1a;第i个位置上是j&#xff0c;表示移动第i个位置上的数…

mac屏蔽独显(我的小本本自救系列)

原文网址&#xff1a; http://www.asyncro.com/2014/03/2 ... -issue-fix-updated/本人只负责搬运以及翻译。整个步骤有效性自己验证。下述论坛用户反映&#xff0c;按照这个方法的确有效&#xff0c;http://apple.stackexchange.com/q ... -graphics-macbook-p 简单翻译下&…

【Docker】docker部署前Springboot-vue后端分离项目【实战篇】

文章目录 1、docker 安装jdk2、docker 安装mysql通过Docker命令进入Mysql容器内部初始化数据sqlDbx连接查看 3、docker build构建后端镜像修改配置数据库JDBC链接IP为虚拟机服务器IPmaven clean package打包后端jar并上传到服务器编写Dockfilebuild 构建查看构建的后端镜像app …

5.DIY可视化-拖拽设计1天搞定主流小程序-公告管理

1.DIY可视化-拖拽设计1天搞定主流小程序-公告管理 公告管理-本教程均在第一节中项目启动下操作 1.DIY可视化-拖拽设计1天搞定主流小程序-公告管理2.创建数据表执行: php think diygw:tableandapi oneHdp 3. 复制幻灯片界面进行编辑4.修改后台API5.富文本添加6.验证 :访问url : …

UnityVR--组件6--Animation动画

目录 新建动画Animation Animation组件解释 应用举例1&#xff1a;制作动画片段 应用举例2&#xff1a;添加动画事件 Animator动画控制器 应用举例3&#xff1a;在Animator中设置动画片段间的跳转 本篇使用的API&#xff1a;Animation、Animator以及Animator类中的SetFlo…

Flutter调用Rust代码操作指南

在之前的利用Rust与Flutter开发一款小工具文章中&#xff0c;我们使用Rust代码实现了一个简单的WebSocket发送功能。也在Rust库交叉编译以及在Android与iOS使用这篇中介绍了Rust库的打包以及双端的使用。 今天我们继续用之前WebSocket的代码举例&#xff0c;来介绍如何在Flutt…