codeforces 233 D. Table(思维+dp )
题目链接:http://codeforces.com/contest/233/problem/D
题意:问在n*m的矩阵中满足在每一个n*n的矩阵里画k个点,一共有几种画法。
题解:其实这题挺简单的但是有一个优化要注意一下,接下来将一下这题的解法。
拿一个连续长度为n的块。1,2将其分成3部分第一部分为第一列a,第二部分为中间重合的部分,第三部分为最后一列c设Si表示,第i列一共有几个点。
显然Sa=Sc于是乎便有思路了吧,所有可能性就是1~n的C(n,k)^cnt(cnt是m/n or m/n + 1)然后用dp[i][j]来存第i个有j个点的一共有几种,然后
转移一下就行具体怎么转移法看代码。
#include <iostream>
#include <cstring>
#include <cstdio>
#define mod 1000000007
using namespace std;
typedef long long ll;
ll c[200][200] , dp[110][10010];
//这里要用到快快速幂毕竟最多有1e18次。
ll modexp(ll a , ll b) {
ll ret = 1;
ll tmp = a;
while(b) {
if(b & 0x1) ret = ret * tmp % mod;
tmp = tmp * tmp % mod;
b >>= 1;
}
return ret;
}
int main() {
ll n , m , k;
scanf("%lld%lld%lld" , &n , &m , &k);
for(int i = 1 ; i <= 100 ; i++) c[i][1] = i , c[i][i] = 1 , c[i][0] = 1;
for(int i = 2 ; i <= 100 ; i++) {
for(int j = 2 ; j < i ; j++) c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % mod;
}//预处理组合数
memset(dp , 0 , sizeof(dp));
ll cnt = m / n;
ll gb;
if(m % n) {
gb = m - n * cnt;
cnt++;
}
else gb = n;
//gb在这里起指示作用,当整除的时候一共有cnt-1对,不能整除的话有gb个是cnt对的剩下cnt-1对。
for(int i = 0 ; i <= n ; i++) dp[i][0] = 1;
for(int i = 1 ; i <= n ; i++) {
//注意这个优化求次方一定要在外层不然会超时。
for(int j = 0 ; j <= n && j <= k ; j++) {
ll gg = c[n][j];
ll gl;
if((ll)i <= gb) gl = modexp(gg , cnt);
else gl = modexp(gg , cnt - 1);
for(int l = j ; l <= k ; l++) {
if(l == 0) continue;//细节稍微注意一下
dp[i][l] += dp[i - 1][l - j] * gl;
dp[i][l] %= mod;
}
}
}
printf("%lld\n" , (dp[n][k] + mod) % mod);
return 0;
}
codeforces 233 D. Table(思维+dp )的更多相关文章
- Codeforces 233 D - Table
D - Table 思路:dp 首先,第i列的个数肯定和第i - n列个数一样,假设[i - n + 1, i - 1] 之间的个数之和为x,那么第i列和第i-n列的个数应该是n - x 那么我们可以 ...
- CodeForces 22B Bargaining Table 简单DP
题目很好理解,问你的是在所给的图中周长最长的矩形是多长嗯用坐标(x1, y1, x2, y2)表示一个矩形,暴力图中所有矩形易得递推式:(x1, y1, x2, y2)为矩形的充要条件为: (x1, ...
- Codeforces 1012B Chemical table (思维+二分图)
<题目链接> 题目大意:给定一个n*m的矩阵网格,向其中加点,对于一个组成矩形的四个点中如果有三个点中有元素,那么第四个点中会自动产生新的元素.问你最少再加多少个点能够填满这个网格.解题分 ...
- Codeforces 417E Square Table(随机算法)
题目链接:Codeforces 417E Square Table 题目大意:给出n和m.要求给出一个矩阵,要求每一列每一行的元素的平方总和是一个平方数. 解题思路:构造.依照 a a a b a a ...
- [BZOJ 3625] [Codeforces 438E] 小朋友的二叉树 (DP+生成函数+多项式开根+多项式求逆)
[BZOJ 3625] [Codeforces 438E] 小朋友的二叉树 (DP+生成函数+多项式开根+多项式求逆) 题面 一棵二叉树的所有点的点权都是给定的集合中的一个数. 让你求出1到m中所有权 ...
- Educational Codeforces Round 61 F 思维 + 区间dp
https://codeforces.com/contest/1132/problem/F 思维 + 区间dp 题意 给一个长度为n的字符串(<=500),每次选择消去字符,连续相同的字符可以同 ...
- Codeforces Round #345 (Div. 1) C. Table Compression dp+并查集
题目链接: http://codeforces.com/problemset/problem/650/C C. Table Compression time limit per test4 secon ...
- Codeforces Round #533 (Div. 2) C.思维dp D. 多源BFS
题目链接:https://codeforces.com/contest/1105 C. Ayoub and Lost Array 题目大意:一个长度为n的数组,数组的元素都在[L,R]之间,并且数组全 ...
- Queue CodeForces - 353D (思维dp)
https://codeforces.com/problemset/problem/353/D 大意:给定字符串, 每一秒, 若F在M的右侧, 则交换M与F, 求多少秒后F全在M左侧 $dp[i]$为 ...
随机推荐
- tensorflow学习笔记——常见概念的整理
TensorFlow的名字中已经说明了它最重要的两个概念——Tensor和Flow.Tensor就是张量,张量这个概念在数学或者物理学中可以有不同的解释,但是这里我们不强调它本身的含义.在Tensor ...
- Spring aop 影响本地事务的回滚总结
1 @Before 不会,因为还没执行到service的业务逻辑 2 @ After 默认情况下,报错会影响事务回滚., 当设置@Order属性并设置值优先级大小, 即使报错也不会回滚了 ...
- 使用富文本编辑器Kindeditor
今天在做需求的时候,遇到有一个字段,需要保存带有格式的内容,决定使用富文本框编辑器Kindeditor来实现,解决方法如下: 登录官网下载控件包: http://kindeditor.net/down ...
- 【C/C++】随机数的生成
C/C++:rand()函数 rand()函数的头文件:#include<stdlib.h> 该函数产生的随机数随机性差,速度慢,周期小(0-32767) 用法如下所示: #include ...
- Alfred Workflow
实用的 Alfred Workflow Alfred Workflow 介绍 alfred-pkgman-workflow 快速从各个软件仓库(maven, gradle 等等)中查找需要的软件包 A ...
- 【0731 | Day 5】Python基础(三)
Part 10 格式化输出的三种方式 一.占位符 #一般字符串连接/普通形式 name = 'Adela' age = str(22) print('My name is '+ name+ ',' ...
- spring架构解析--入门一
Spring 框架中的核心组件只有三个:Core.Context 和 Beans.它们构建起了整个 Spring 的骨骼架构.简单理解: spring core是工具,context是环境,而bean ...
- Kubernetes容器云平台建设实践
[51CTO.com原创稿件]Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署.大规模可伸缩.应用容器化管理.伴随着云原生技术的迅速崛起,如今Kubernetes 事实上已经 ...
- Linux 使用命令 1
fold : Usage: fold [OPTION]... [FILE]...Wrap input lines in each FILE (standard input by default), w ...
- 干货 | Elasticsearch、Kibana数据导出实战
1.问题引出 以下两个导出问题来自Elastic中文社区. 问题1.kibana怎么导出查询数据? 问题2:elasticsearch数据导出 就像数据库数据导出一样,elasticsearch可以么 ...