首页 > 试题广场 >

法法

[编程题]法法
  • 热度指数:701 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
设 A 是一个 的排列,其中第 i 项为 Ai



换句话说:



的全排列的 f 的和

答案对 2 取模

输入描述:
第一行输入一个整数 T,表示数据组数
之后 T 行,第 i+1 行有一个整数 ni,表示第 i 次询问


输出描述:
一共 T 行,第 i 行有 1 个整数,表示第 i 次询问的答案
示例1

输入

1
3

输出

0

说明

1^{(2^{3^{}})}=1\\<br /><br />1^{(3^{2^{}})}=1\\<br /><br />2^{(1^{3^{}})}=2\\<br /><br />2^{(3^{1^{}})}=8\\<br /><br />3^{(1^{2^{}})}=3\\<br /><br />3^{(2^{1^{}})}=9\\

备注:
数据范围
1 ≤ n ≤ 1018
1 ≤ T ≤ 10
头像 小男娘
发表于 2026-05-05 00:22:01
答案是 ,否则答案是小男娘(划掉) 喵~ #include <iostream> using namespace std; using ll = long long; ll n; void Solve() { cin >> n; cout <&l 展开全文
头像 AliLexiWalker
发表于 2026-05-05 00:37:09
!?法法?! 首项奇偶决定幂塔奇偶,所以答案只有 时为 1,其余为 0。 import sys data=sys.stdin.read().split() it=iter(data) MOD=1e9+7 MOD2=998244353 def solve(): n=int(next(it) 展开全文
头像 lotusor
发表于 2026-05-05 00:23:29
注意到和的奇偶性 = 奇数结果的个数的奇偶性,又因奇数个数S(n)≡m⋅(n−1)!(mod2)(其中 m=⌊(n+1)/2⌋),则当n>3时输出一定是0 t = int(input()) for _ in range(t): n = int(input()) print(1 展开全文
头像 小男娘
发表于 2026-05-05 01:25:42
你们都是男娘
头像 ASC_8384
发表于 2020-06-26 12:21:23
牛客算法周周练12 法法 很显然的结论,当n为偶数时f(n)必为偶数,当n为奇数时,要算(n-1)!次,而A(n-1)!显然是个偶数。 偶数%2显然为0。 特判一下1和2就好了。 唯一的坑点在于 n 需要开long long。 #include <iostream> using name 展开全文
头像 4FGR
发表于 2026-05-05 08:49:01
显然,由于答案模 ,我们只用关注排列中的奇数,因为对于正整数 ,奇偶数的 次方的奇偶性不变。然后对任意一个数,他的指数的排列有 种,显然,当 时,排列数一定为偶数,偶数个奇数相加一定是偶数,因此只用特判 的情况即可。 #include <bits/stdc++.h> usin 展开全文
头像 少女SKIKO
发表于 2026-05-05 11:21:35
容易想到,结果只和底为奇数的项有关,而均对其mod 2 的话,结果只与(n/2)(n-1)!的值mod 2有关 由数论得任意的nn-1一定是2的倍数,所以当n>=3时结果为0,其余为1. #include #include #include #include #define int long 展开全文
头像 kendas
发表于 2026-05-05 18:54:22
每日一题:昨天好像又忘记了 题意:对于一个长度为n的排列A,定义f(A)为,求对1-n的全排列的奇偶性 观察到,所以只能找规律了,那么奇数无论多少次方都是奇数,偶数多少次方都是偶数,所以只有奇数才改变整体的奇偶性.所以对于一个排列A,的奇偶只和相关,如果是奇数,就是奇数,偶数同理 那么有多少个第 展开全文