NC247049. 最值区间计数
描述
计算长度为 的所有排列中所有最大值为 且最小值为 的子区间个数,对 取模。
也就是计算
输入描述
第一行给定一个正整数
输出描述
对于每组数据输出答案对 取模。
示例1
输入:
2
输出:
2
说明:
所有排列为 ,子区间只有 满足条件示例2
输入:
4
输出:
60
C++(g++ 7.5.0) 解法, 执行用时: 7ms, 内存消耗: 520K, 提交时间: 2022-12-18 17:31:02
#include<bits/stdc++.h> using namespace std; int main() { long long n,res=2,i,j; cin>> n; if(n==1) res=1; else { for(i=5;i<=n+2;i++) { res=(res*i)%998244353; } } cout<<res; }
pypy3 解法, 执行用时: 78ms, 内存消耗: 21324K, 提交时间: 2023-06-02 22:56:58
from sys import stdin n = int(stdin.readline()) mod = 998244353 ans = 2 if n==1: print(1) else: for i in range(3,n+1): ans = ans*(i+2)%mod print(ans)
Python3 解法, 执行用时: 359ms, 内存消耗: 4560K, 提交时间: 2023-02-22 19:45:34
n=int(input()) ans=2 for i in range(5,n+3): ans=ans*i%998244353 print(ans if n!=1 else 1)