首页 > 其他分享 >[ABC132D] Blue and Red Balls

[ABC132D] Blue and Red Balls

时间:2023-04-26 20:25:06浏览次数:52  
标签:Blue Balls 题目 int long ABC132D 蓝球 choose

2023-01-16

题目传送门

翻译

难度&重要性(1~10):3

题目来源

AtCoder

题目算法

dp

解题思路

因为蓝球的数量是固定的,题目让我们求,在取 \(i\) 次的情况下,有几种方案,首先我们肯定要枚举 \(i\),范围就是 \(\sum_{i=1}^{k}\) 了,然后因为他每次只能取连续的蓝球,于是我们就可以想到用插板法求把蓝球分成 \(i\) 份有多少种情况,也就是求在 \(k-1\) 个空中插 \(i-1\) 个板子,就是求 \({k-1}\choose{i-1}\),然后我们要把这 \(i\) 份蓝球插到 \(n-k\) 个红球中,注意这里有一点不一样,红球的两边都可以插蓝球,所以这里就可以转换为在 \(n-k+1\) 个空中插 \(i\) 个板子,就是求 \({n-k+1}\choose{i}\),那么答案就可以写成 \(\sum_{i=1}^{k}{{k-1}\choose{i-1}}{{n-k+1}\choose{i}}\),这个算法的时间复杂度为 \(O(n^2+k)\)。

完成状态

已完成

Code

#include<bits/stdc++.h>
using namespace std;
long long c[2005][2005],Mod=1e9+7,n,k,num;
int main(){
	cin>>n>>k;
	c[0][0]=1;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			c[i][j]=(c[i-1][j]+c[i-1][j-1])%Mod;
	num=n-k;
	for(long long i=1;i<=k;i++)
		cout<<(c[num][i]*2+c[num][i-1]+c[num][i+1])%Mod*c[k][i]%Mod<<endl;
	return 0;
}

标签:Blue,Balls,题目,int,long,ABC132D,蓝球,choose
From: https://www.cnblogs.com/OIerBoy/p/17357148.html

相关文章

  • Uva--679 Dropping Balls(二叉树的编号)
    记录23:282023-4-16https://onlinejudge.org/external/6/679.pdfreference:《算法竞赛入门经典第二版》例题6-6二叉树,这里是完全二叉树,使用模拟的方式应该会TLE(虽然我用模拟的方式也TLE了,但不是这个原因,下面会提到原因)不用模拟的方式,转换思路,使用递归的方式去思考。这里......
  • bluetooth keeps stopping
    前言注:本文只提供参考,进行操作前请一定要备份好个人数据,否则请自行承担风险。请把本文看完后再自行斟酌你需要做什么操作,不要看了半截文章就开跑。我的k40,一年多前刷了残芯twrp和乌堆官改包。然后昨天由于某些原因,我刷了新的安卓13的twrp,然后发现解密分区失败,然后再换安卓11的tw......
  • 「解题报告」CF960G Bandit Blues
    无脑的APJ用最无脑的方法解题!!!做了两天图论脑子爆炸后的apj寻求精神慰藉首先考虑\(n\)一定是从前往后的最大值与从后往前的最大值,这样我们只需要求出长度为\(n\),有\(k\)个前缀最大值的排列数量,记作\(f_{n,k}\)。考虑每次将当前排列中的最大值与最大值后面的排列去掉,这......
  • IWorkflowBlueprint 蓝图构建器
    前言:学习的过程总是很奇妙....下面是我对Elsa工作流Builder的一个理解,我觉得用思维导图很适合做概括性的描述。如有错误,望大伙们指导......
  • flask:蓝图(blueprint)、g对象、数据库连接池
    目录一、蓝图(blueprint)1、蓝图介绍2、蓝图的使用3、使用蓝图,划分小型项目目录4、使用蓝图,划分大型项目目录5、其他知识点二、g对象三、数据库连接池一、蓝图(blueprint)1、蓝图介绍在Flask中,使用蓝图Blueprint来分模块组织管理。蓝图实际可以理解为是一个存储一组视图方法的容器......
  • Android 12蓝牙报java.lang.SecurityException: Need android.permission.BLUETOOTH_C
    报错如下:E/AndroidRuntime:FATALEXCEPTION:mainProcess:com.studay.base.study,PID:16798java.lang.SecurityException:Needandroid.permission.BLUETOOTH_CONNECTpermissionforAttributionSource{uid=10392,packageName=com.studay.base.study,a......
  • 【UE工具向】使用EditorUtilityBlueprint脚本化操作资产
    资料官方文档:虚幻引擎脚本化操作使用场景对资产/Actor进行一些脚本化操作,比如做一些资源检查、纠正一些配置项、输出信息等等。资产/Actor右键可以执行脚本功能AssetActionUtility示例检查蓝图资源中的某个配置创建工具蓝图:内容浏览器右键->EditorUtilities->Ed......
  • vulnhub靶场之BLUESMOKE: DEVRANDOM2|bluesmoke
    准备:攻击机:虚拟机kali、本机win10。靶机:Bluesmoke:devrandom2,下载地址:https://download.vulnhub.com/bluesmoke/Bluesmoke.ova,下载后直接vbox打开即可。知识点:ssti注入......
  • flask-蓝图blueprint按功能块分开
    随着业务逻辑的增多.视图函数不能都直接写在flask入口文件app.py中需要按功能块将视图函数分别写到blueprint目录下单独的py文件中.然后在app.py中对每个Blueprint对象......
  • C# 在PC上的通过蓝牙(bluetooth)发送数据到手机
    C#在PC上的通过蓝牙(bluetooth)发送数据到手机2023-01-2709:32·opendotnet概述在PC端用.NET开发一个蓝牙下载的程序。实现在PC上查找周围的蓝牙设备(主要是手机),并将......