2025.5.24 考试回顾
| T1 | T2 | T3 | T4 |
|---|---|---|---|
| 5 | 5 | 0 | 0 |
Score:10
uh.
T1 【四校联考1】隐藏指令
【问题描述】
在d维欧几里得空间中,指令是一个长度为2N的串。串的每一个元素为d个正交基的方向及反方向之一。例如,d = 1时(数轴),串的每一个元素为左或右;d = 2时(平面),串的元素为上下左右之一;d = 3时(空间),串的元素为上下左右前后之一;d≥4时同理。 从起点出发,结月缘按照顺序一个一个的执行指令S中的元素,对于每个元素,结月往该方向行走1步。图2是一个例子,d = 2, S =→↓↑→→↓→→,|S|=2N=8。

我们认为,指令S是能够变得幸福的,当且仅当结月执行完该指令S后能够回到出发点。
请计算有多少种不同的指令S是能够变得幸福的,并输出其mod 1 000 000 007的值。两个指令被认为不同当且仅当存在一个位置,两个串在该处的元素不同。
【输入】
输入仅一行,两个用空格分开的非负整数d,N。
【输出】
输出仅一行,仅一个整数表示能够变得幸福的指令数mod 1 000 000 007。
考试时没有认真思考
数学题
以每个维度进行考虑:
1维状态下,只能往两个方向走。因为题目要求最后回到原点,所以左移量=右移量=\(N\),总方案数为 \(C^{2N}_{N}\)
2维状态下,只能往四个方向走。左移量=右移量,上移量=下移量。
设 \(K\) = 左移量。
则 右移量 = \(K\) , 上移量=下移量= \(\frac{2N-2K}{2}\) = \(N-K\)
就有三种情况:
- 只有 \(x\) 维 \(C^{2N}_{K}\)
- 只有 \(y\) 维 \(C^{2N-K}_{K}\)
- 二维并存 \(C^{2N-2K}_{N-K}\)
乘起来即为二维答案
根据这个方法就可以求出任意维度的柿子了。
#include<bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define il inline
using namespace std;
const int mod=1e9+7;
int c[1005][1005];
int f[1005][1005];
int n,d;
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
freopen("shiawase.in","r",stdin);
freopen("shiawase.out","w",stdout);
cin>>d>>n;
for (int i = 0; i <= n << 1; i++) c[i][0] = 1;
for (int i = 1; i <= n << 1; i++)
for (int j = 1; j <= i; j++)
c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;
f[0][0]=1;
for(int i=1;i<=d;i++){
for(int j=0;j<=n;j++){
for(int k=0;k<=j;k++){
f[i][j]=(f[i][j]+((f[i-1][j-k]*c[2*j][2*k]%mod)*c[2*k][k]%mod))%mod;
}
}
}
cout<<f[d][n];
}
T2 【四校联考2】人类基因组
【问题描述】
L教授最近正在研究一个关于人类基因的项目,基因可以被看作一个长度为N的序列:A0,A1,......,An-1。对于这个基因序列循环移动k位之后,就可以得到一个新的基因序列为:Ak,Ak+1,…,An-1,A0,A1,…,Ak-1。当一个基因序列满足对于任意的前i(1<=i<=n)项和都满足不小于0,我们就称这个基因序列为优质基因序列。
由于L教授最近工作比较繁忙,所以找到了正在实验室闲逛的你,你的任务就是帮L教授统计出所有优质基因序列的个数。
【输入】
第一行一个整数n,表示基因序列的长度。
第二行n个整数,依次为A0,A1,......,An-1的值。
【输出】
输出仅一个整数,表示优质基因序列的个数。
【输入输出样例1】
3
2 2 3
3
【样例1说明】
3个元素的序列:2 2 3,循环移动情况如下:
循环移动0位得到序列:2 2 3,前i项和分别为:2 4 7,符合条件;
循环移动1位得到序列:2 3 2,前i项和分别为:2 5 7;符合条件;
循环移动2位得到序列:3 2 2,前i项和分别为:3 5 7;符合条件;
【输入输出样例2】
5
3 -1 2 -3 4
2
【数据规模与约定】
对于30%的数据,满足1<=N<=5,000
对于50%的数据,满足1<=N<=10,000
对于100%的数据,满足1<=N<=1,000,000,-1,000<=Ai<=1,000

浙公网安备 33010602011771号