bzoj 4806 炮】的更多相关文章

题目描述 众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技.炮吃子时必须隔一个棋子跳吃,即俗称"炮打隔子".  炮跟炮显然不能在一起打起来,于是rly一天借来了许多许多的炮在棋盘上摆了起来……他想知道,在N×M的矩形 方格中摆若干炮(可以不摆)使其互不吃到的情况下方案数有几种. 棋子都是相同的. 输入输出格式 输入格式: 一行,两个正整数N和M. N<=100,M<=100 输出格式: 一行,输出方案数mod 999983. 输入输出样例 输入样例#1: 1 3 输出样例…
Written with StackEdit. Description 众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技.炮吃子时必须隔一个棋子跳吃,即俗称"炮打隔子". 炮跟炮显然不能在一起打起来,于是\(rly\)一天借来了许多许多的炮在棋盘上摆了起来--他想知道,在\(N×M\)的矩形 方格中摆若干炮(可以不摆)使其互不吃到的情况下方案数有几种. 棋子都是相同的. Input 一行,两个正整数\(N\)和\(M\). \(N<=100,M<=100.\) Outpu…
同1801 注意到一行只能放012个炮,我们只需要知道列的状态,不用状压行 所以设f[i][j][k]表示前i行有j列有1个炮,有k列有2个炮的方案数 然后分情况讨论转移就行了 #include<cstdio> #include<iostream> using namespace std; const int N=105,mod=999983; long long n,m,f[N][N][N],ans; int main() { scanf("%lld%lld"…
4806: 炮 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 103  Solved: 72[Submit][Status][Discuss] Description 众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技.炮吃子时必须隔一个棋子跳吃,即俗称"炮打隔子".  炮跟炮显然不能在一起打起来,于是rly一天借来了许多许多的炮在棋盘上摆了起来……他想知道,在N×M的矩形 方格中摆若干炮(可以不摆)使其互不吃到的情况下方案数有几种.…
Description 曾经发明了脑洞治疗仪&超能粒子炮的发明家SHTSC又公开了他的新发明:超能粒子炮·改--一种可以发射威力更加 强大的粒子流的神秘装置.超能粒子炮·改相比超能粒子炮,在威力上有了本质的提升.它有三个参数n,k.它会 向编号为0到k的位置发射威力为C(n,k) mod 2333的粒子流.现在SHTSC给出了他的超能粒子炮·改的参数,让你求 其发射的粒子流的威力之和模2333. Input 第一行一个整数t.表示数据组数. 之后t行,每行二个整数n,k.含义如题面描述. k<…
4591: [Shoi2015]超能粒子炮·改 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 178  Solved: 70[Submit][Status][Discuss] Description 曾经发明了脑洞治疗仪&超能粒子炮的发明家SHTSC又公开了他的新发明:超能粒子炮·改--一种可以发射威力更加 强大的粒子流的神秘装置.超能粒子炮·改相比超能粒子炮,在威力上有了本质的提升.它有三个参数n,k.它会 向编号为0到k的位置发射威力为C(n…
4591: [Shoi2015]超能粒子炮·改 题意:多组询问,求 \[ S(n, k) = \sum_{i=0}^n \binom{n}{i} \mod 2333,\ k \le n \le 10^{18} \] lucas定理,展开一层然后整除分块一下,不完整的块单独拿出来,就是 \[ S(n,k) = S(\frac{n}{p}, \frac{k}{p}-1)S(n \bmod p, p-1) + \binom{\frac{n}{p}}{ \frac{k}{p}} S(n \bmod p,…
题目链接:超能粒子炮·改 这道题的大体思路就是用\(lucas\)定理,然后合并同类项,就可以得到一个可以递归算的式子了. 我们用\(S(n,k)\)表示答案,\(p\)表示模数(\(2333\)是一个质数),那么有: \begin{aligned}S(n,k)&=\sum_{i=0}^k\binom{n}{i} \\&=\sum_{i=0}^k\binom{n\bmod p}{i \bmod p}\binom{\lfloor \frac{n}{p} \rfloor}{\lfloor \f…
http://www.lydsy.com/JudgeOnline/problem.php?id=4591 最后的式子合并同类项 #include<cstdio> #include<iostream> using namespace std; typedef long long LL; ; ][],s[][]; template<typename T> void read(T &x) { x=; char c=getchar(); while(!isdigit(c…
Link: 传送门 Solution: 记录一下推$\sum_{i=0}^k C_n^i$的过程: 其实就是将相同的$i/p$合起来算,这样每个里面都是一个可以预处理的子问题 接下来递归下去算即可 Tip:推式子时尽量化出与模数相关的量方便预处理 Code: #include <bits/stdc++.h> using namespace std; #define X first #define Y second #define pb push_back typedef double db;…