传送门

题目大意

现在有n个k面的骰子,问在i=2~2*k的情况下,任意两个骰子向上那一面的和不等于i的方案数是多少。

分析

这道题具体做法见这个博客。

至于k2的值为啥是那个自己画画图就明白了。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
const long long mod = ;
long long c[][],pw[],vis[];
inline void getc(){
long long i,j;
for(i=;i<=;i++)
c[i][]=c[i][i]=;
for(i=;i<=;i++)
for(j=;j<i;j++)
c[i][j]=(c[i-][j]+c[i-][j-])%mod;
return;
}
inline void getpw(){
pw[]=;
for(long long i=;i<=;i++)pw[i]=pw[i-]*%mod;
return;
}
inline long long work(long long i,long long n,long long k){
long long k1,k2,Ans=,wh=-,j;
k2=min(k-i/,(i-)/);
k1=k-k2*-(i+)%;
for(j=;j<=k2;j++){
wh*=-;
Ans=(Ans+wh*c[n+k1+k2-j-][k1+k2-j-]*pw[k2-j]%mod*c[k2][k2-j]%mod
+mod)%mod;
}
return Ans;
}
int main(){
long long n,k,i;
scanf("%lld%lld",&k,&n);
getc();
getpw();
for(i=;i<=*k;i++){
if(i&){
printf("%lld\n",work(i,n,k));
}else printf("%lld\n",(work(i,n,k)+work(i,n-,k))%mod);
}
return ;
}

ARC102E Stop. Otherwise...的更多相关文章

  1. 【ARC102E】Stop. Otherwise...(容斥原理,动态规划)

    [ARC102E]Stop. Otherwise...(容斥原理,动态规划) 题面 AtCoder 有\(n\)个骰子,每个骰子有\(K\)个面,上面有\(1\)到\(K\).骰子都是一样的. 现在对 ...

  2. 【arc102E】Stop. Otherwise...

    Portal --> arc102E Description 有\(N\)个位置,每个位置可以填一个\(1\sim K\)的数,要求对于每一个\(i\in [2,2K]\),求出任意两个位置的和 ...

  3. [arc102E]Stop. Otherwise...[容斥+二项式定理]

    题意 给你 \(n\) 个完全相同骰子,每个骰子有 \(k\) 个面,分别标有 \(1\) 到 \(k\) 的所有整数.对于\([2,2k]\) 中的每一个数 \(x\) 求出有多少种方案满足任意两个 ...

  4. ARC102E - Stop. Otherwise... 组合计数

    枚举 \(i\),然后可以把 \(j\) 和 \(i - j\) 绑定成一对.把一对看成一个整的元素,与别的没有被绑定的数一起来参与选择就可以了. 但是由于实际上一对中的数是可以二选一的,所以不妨令 ...

  5. AtCoder Regular Contest 102 (ARC102) E - Stop. Otherwise... 排列组合

    原文链接https://www.cnblogs.com/zhouzhendong/p/ARD102E.html 题目传送门 - ARC102E 题意 有 $n$ 个取值为 $[1,k]$ 的骰子,对于 ...

随机推荐

  1. metaclass 了解一下

    创建类的两种方式 方式一: class Foo(object,metaclass=type): CITY = "bj" def func(self,x): return x + 1 ...

  2. Linux中几个实用快捷键

    返回上层目录: cd .. 命令提示符: user@ubuntu: @之前的部分为当前用户ID名称:  @之后冒号之前是主机名称 sudo :(Superusers Do) 以超级用户执行 在相对路径 ...

  3. 加密算法之BLOWFISH算法

    加密信息 BlowFish算法用来加密64Bit长度的字符串. BlowFish算法使用两个"盒"--ungignedlongpbox[18]和unsignedlongsbox[4 ...

  4. 每天一个linux命令(15):head命令

    版权声明更新:2017-05-19博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的mv命令. 2. ...

  5. UOJ#454. 【UER #8】打雪仗

    UOJ#454. [UER #8]打雪仗 http://uoj.ac/problem/454 分析: 好玩的通信题~ 把序列分成三块,\(bob\)先发出这三块中询问点最多的一块给\(alice\). ...

  6. BZOJ3262:陌上花开

    浅谈离线分治算法:https://www.cnblogs.com/AKMer/p/10415556.html 题目传送门:https://lydsy.com/JudgeOnline/problem.p ...

  7. What makes an inferred latch? how To avoid creating inferred latches? when do you know you need latches?

    What makes an inferred latch?For combinatorial logic, the output of the circuit is a function of inp ...

  8. java继承初级

    总结:重写方法,方法体内容不同. 还有子类都不能加public.它表示公共,一个程序只能有一个公共类 package com.sa; public class Ac { public void rea ...

  9. HTML5一些元素的整理

    address元素: 定义和用法 <address> 标签定义文档或文章的作者/拥有者的联系信息. 如果 <address> 元素位于 <body> 元素内,则它表 ...

  10. C# winfrom FastReport 变量设计加载

    1.源码 DataTable dt5 = new DataTable(); dt5 = SqlHelper.SqlGetDataTable(StrSql, "tbEmpCont") ...