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

posted @ 2025-05-24 14:48  Second_coming  阅读(39)  评论(0)    收藏  举报