JZOJ【NOIP2013模拟联考14】隐藏指令
JZOJ【NOIP2013模拟联考14】隐藏指令
题目
Description
在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的值。两个指令被认为不同当且仅当存在一个位置,两个串在该处的元素不同。
Input
输入仅一行,两个用空格分开的非负整数d,N。
Output
输出仅一行,仅一个整数表示能够变得幸福的指令数mod 1 000 000 007。
Sample Input
输入1:
2 0
输入2:
2 1
输入3:
2 2
输入4:
3 1
输入5:
3 2
Sample Output
输出1:
1
【样例1说明】
空指令是能够变得幸福的。
输出2:
4
【样例2说明】
S1 =←→, S2 =→← , S3 =↑↓, S4 =↓↑
输出3:
36
【样例3说明】
如果结月缘只在一个维度上运动,也就是指令中横与纵的方向不同时出现,那么可能的情况有12种。如果结月缘在两个维度上都有运动,也就是指令中左右上下同时出现,那么有4! = 24种情况。相加后除以1 000 000 007取余数即可得到答案36。
输出4:
6
【样例4说明】
结月只能在三个维度之中一个运动,每个维度对应两种可能的能够变得幸福的隐藏指令。故总计3*2=6。
输出5:
90
Data Constraint

题解
题意
有一个\(d\)维空间,同时有一个长度为\(2n\)的操作序列,每个操作往某一维的正方向或反方向走一格,问多少种方案使得最后走回原点,对\(1e9+7\)取模
题解
5%
\(n=0\)时答案是1
期望得分5
30%
\(d=1\)时答案是\(C_{2n}^n\)
因为只有正方向和反方向各占一半才能走回原点
综上,期望得分30
60%
\(d=2\)时答案是\((C_{2n}^n)^2\)
证明如下

综上,期望得分60
75%
\(d=3\)时答案为
\(\sum_{i=0}^n\sum_{j=0}^{n-i}C_{2n}^{2i}C_{2n-2i}^{2j}C_{2i}^iC_{2j}^jC_{2n-2i-2j}^{n-i-j}\)
证明同\(d=2\)
综上,期望得分75
100%
考虑\(dp\)
设\(f[i][j]\)表示当前到了第\(i\)维,放了\(j\)对正反方向
转移
\(f[i][j]=\sum_{k=0}^jf[i-1][j-k]*C_{2j}^{2k}*C_{2k}^k\)
\(k\)表示当前这一维要放几对正反
预处理组合数即可
Code
#include<cstdio>
#include<cstring>
#define mod 1000000007
using namespace std;
int n,d,t[401];
long long s,now,g[401][401],f[401][401];
int main()
{
scanf("%d%d",&d,&n);
if (n==0)
{
printf("1\n");
return 0;
}
g[0][0]=1;
for (int i=1;i<=2*n;++i)
for (int j=0;j<=i;++j)
g[i][j]=(g[i-1][j-1]+g[i-1][j])%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]*g[2*j][2*k]%mod)*g[2*k][k]%mod))%mod;
printf("%lld\n",f[d][n]);
return 0;
}
JZOJ【NOIP2013模拟联考14】隐藏指令的更多相关文章
- JZOJ 3493. 【NOIP2013模拟联考13】三角形
3493. [NOIP2013模拟联考13]三角形(triangle) (File IO): input:triangle.in output:triangle.out Time Limits: 10 ...
- JZOJ 3487. 【NOIP2013模拟联考11】剑与魔法(dragons)
3487. [NOIP2013模拟联考11]剑与魔法(dragons) (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB De ...
- JZOJ 3470. 【NOIP2013模拟联考8】最短路(path)
470. [NOIP2013模拟联考8]最短路(path) (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Detailed ...
- JZOJ 3463. 【NOIP2013模拟联考5】军训
3463. [NOIP2013模拟联考5]军训(training) (Standard IO) Time Limits: 2000 ms Memory Limits: 262144 KB Deta ...
- JZOJ 3462. 【NOIP2013模拟联考5】休息(rest)
3462. [NOIP2013模拟联考5]休息(rest) (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Detailed ...
- JZOJ 3461. 【NOIP2013模拟联考5】小麦亩产一千八(kela)
3461. [NOIP2013模拟联考5]小麦亩产一千八(kela) (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Det ...
- 【NOIP2013模拟联考7】OSU
[NOIP2013模拟联考7]OSU 描述 Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分, ...
- [jzoj]3468.【NOIP2013模拟联考7】OSU!(osu)
Link https://jzoj.net/senior/#main/show/3468 Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: ...
- [jzoj]3456.【NOIP2013模拟联考3】恭介的法则(rule)
Link https://jzoj.net/senior/#main/show/3456 Description 终于,在众亲们的奋斗下,最终boss 恭介被关进了库特设计的密室.正当她们松了一口气时 ...
随机推荐
- Bucardo使用文档-lottu
官网地址 一.Bucardo介绍 Bucardo 是基于表复制的系统 Bucardo 可以实现PostgreSQL数据库的双master/多master的方案 Bucardo的核心是一个Perl守护进 ...
- 打印Sql查询语句
如果在使用了yii的查询语句的话,可以打印本次的Sql,可以用 $model->find()->createCommand()->getRawSql();此语句返回的就是sql查询语 ...
- 电脑查看当前自己的wifi密码
菜单+R 输入control 点击确认.
- 双十一,就用turtle画个单身狗送给自己
今年的双十一到了 但还有谁记得双十一是 单身狗的节日 单身狗的我是时候站出来 捍卫自己的权益了 单身是一种怎样的状态? 我们所有人都单身过,但也许只有很少的人真正体验过. 短视频内容完全是假的,全程是 ...
- layui导航
关于导航 首先看一下官网的样式: <!DOCTYPE html><html><head> <meta charset="utf-8" /& ...
- Sentinel 的一些小扩展
随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制.熔断降级.系统自适应保护等多个维度来帮助您保障微服务的稳定 ...
- Numpy_02
# 十,使用数组进行文件输入和输出 # Numpy 可以将数据以[文本]或[二进制]的形式存入硬盘,或从硬盘载入. # 由于大部分用户更倾向于使用pandas等其他工具来载入文本或表格型数据,因此,这 ...
- CentOS修改镜像源头
CentOS6改为阿里镜像源: 1. cd /etc/yum.repos.d 2. mv CentOS-Base.repo CenOS-Base.repo.bak 3. wget http://mir ...
- 批处理最小二乘法 python
参考:系统辨识与自适应控制MATLAB仿真(修订版) 庞中华 崔红 仿真实例2.5 import numpy as np import matplotlib.pyplot as plt from mx ...
- 说一说packet poll 错误掩码的一个bug tcp udp packet poll细节有所不同 处理时需要注意
今天处理一个cpu标高的bug,原因:在poll 返回后将error事件当做POLLIN事件处理,fd 一直都在唤醒线程处理,但是rcv的时候没有数据: unsigned int datagram_p ...