kickstart_2018_round_H_C Let Me Count The Ways
思路:
容斥。
实现:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MOD = 1e9 + ;
const int MAXN = ;
ll f[MAXN + ], inv[MAXN + ];
ll pow(ll a, ll b)
{
ll res = ;
while (b)
{
if (b & )
res = res * a % MOD;
b >>= ;
a = a * a % MOD;
}
return res;
} void init()
{
f[] = ;
for (int i = ; i <= MAXN; i++) f[i] = f[i - ] * i % MOD;
inv[MAXN] = pow(f[MAXN], MOD - );
for (int i = MAXN - ; i >= ; i--) inv[i] = inv[i + ] * (i + ) % MOD;
} ll C(int a, int b)
{
return f[a] * inv[b] % MOD * inv[a - b] % MOD;
} int main()
{
init();
int T, n, m;
cin >> T;
for (int i = ; i <= T; i++)
{
cin >> n >> m;
ll ans = , s = , bin = ;
for (int i = ; i <= m; i++)
{
ans = (ans + s * C(m, i) * bin % MOD * f[ * n - i] % MOD) % MOD;
s *= -;
bin = bin * % MOD;
}
cout << "Case #" << i << ": " << (ans + MOD) % MOD << endl;
}
return ;
}
kickstart_2018_round_H_C Let Me Count The Ways的更多相关文章
- uva 357 Let Me Count The Ways(01背包)
题目连接:357 - Let Me Count The Ways 题目大意:有5种硬币, 面值分别为1.5.10.25.50,现在给出金额,问可以用多少种方式组成该面值. 解题思路:和uva674是一 ...
- UVA 357 Let Me Count The Ways(全然背包)
UVA 357 Let Me Count The Ways(全然背包) http://uva.onlinejudge.org/index.php?option=com_onlinejudge& ...
- UVA.357 Let Me Count The Ways (DP 完全背包)
UVA.357 Let Me Count The Ways (DP 完全背包) 题意分析 与UVA.UVA.674 Coin Change是一模一样的题.需要注意的是,此题的数据量较大,dp数组需要使 ...
- UVa 357 - Let Me Count The Ways
题目大意:也是硬币兑换问题,与147.674用同样的方法即可解决. #include <cstdio> #include <cstring> #define MAXN 3000 ...
- Let Me Count The Ways(Kickstart Round H 2018)
题目链接:https://code.google.com/codejam/contest/3324486/dashboard#s=p2 题目: 思路: 代码实现如下: #include <set ...
- UVA题目分类
题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics ...
- JQuery学习(3)
创建精灵界面导航: 有以下图,合理的布局让图片正确显示: 先写导航栏html代码: <div id="navMenu"> <ul id="spriteN ...
- 算法入门经典大赛 Dynamic Programming
111 - History Grading LCS 103 - Stacking Boxes 最多能叠多少个box DAG最长路 10405 - Longest Common Subsequence ...
- SICP-1.7-递归函数
递归函数 函数内部直接或间接的调用函数自身 将复杂问题简单化 例子程序 def sum_digits(n): """Return the sum of the digit ...
随机推荐
- Nginx基本配置和作用
nginx可以重新加载文件的.我们直接运行:nginx -s reload 配置文件有没有问题,可以直接输入:nginx -t nginx -s stop就可以关闭 但有时我们就不想它挂的时候访问另外 ...
- myeclipse_JUnit导包问题
第一种方式: MyEclipse创建JUnit单元测试时,在需要测试的代码段前键入“@Test”时,按ctrl和1一般会自动提示JUnit需要导包,但有时会无法提示这个建议,如图所示.该经验教你如何解 ...
- This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended
VS2005转换成VS2010时出现的问题: This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x05 ...
- GMap.NET 显示GIF图标的定制
利用System.Drawing.ImageAnimator类实现GIF图标显示 public class GMapMarkerImage : GMapMarker { private Image i ...
- CentOS 6 命令行下安装 VirtualBox 虚拟机步骤
CentOS 6 命令行下安装 VirtualBox 虚拟机步骤 1. 准备工作 安装内核更新 yum install kernel-develyum update kernel*如果内核有更新,则需 ...
- 你忘记的java运算符
当整数被0除时会得到一个无穷大,或者nan, 所以会抛出数据溢出的异常.
- Jquery获取web窗体关闭事件,排除刷新页面
在js脚本里全局定义一个 var r=true;若是刷新的话则把r=false; $(window).unload(function () { if (r) { //这里面证明用户不是点的F5刷新 执 ...
- [工作笔记]JDK版本不同导致的SSL异常
前言 遇到这个问题得说一下笔者的开发环境,笔者所在公司,平时开发用的web容器是jboss,使用的JDK是oracle的JDK,但是测试和生产环境用的是WAS,JDK用的是IBM的JDK,由于项目的不 ...
- 2.SJ-SLAM-14
第三讲 三维空间刚体运动 本讲目标 理解三维空间的刚体运动描述方式:旋转矩阵.变换矩阵.四元数和欧拉角. 掌握Eigen库的矩阵.几何模块使用方法. 3.1 点.向量和坐标系,旋转矩阵 二维空间与三维 ...
- 甩掉DataList,Repeater,列表数据显示得灵活--转
在WebForm 显示列表数据我们一般使用服务器控件Repeater.DataList或者GridView ,功强大能,使用简单.但同时也是有代价的, 一:不管你用哪个控件都需要牺牲一些额外的性能,因 ...