首页 > 其他分享 >生产机器

生产机器

时间:2024-08-27 22:53:12浏览次数:14  
标签:tmp 机器 int long jcinv 生产 return mod

  • 一个合法的序列可能有多种生成方式,因此我们考虑确定其中唯一的一种
  • 从前往后匹配,只有当某种颜色的充能球的数量达到上限时才切换到下一小时
  • DP。f[i]表示考虑到第i小时,[j]表示这一小时的第一颗充能球的颜色,也是上一小时达到上限的充能球的颜色
  • 朱世杰恒等式(取的数的多少不变):$C_{m+n+1}^{n+1} =\sum_{i=0}^{m} C_{n+i}^{n} $ 可用二项式定理证
  • 不要忘记利用组合递推式“点燃引线”的思想
  • l/f中至少有一个为0的情况看起来很难处理,但相信OI美学,不妨把别扭的特判注释掉,发现答案就对了
点击查看代码
#include <bits/stdc++.h>
using namespace std;
const int mod=1000000007;
long long jc[2000005],jcinv[2000005];
int w[100005][2];
long long f[100005][2],g[100005][2];
int power(int n,int p)
{
	if(p==0)
	{
		return 1;
	}
	long long tmp=power(n,p/2);
	if(p%2==1)
	{
		return tmp*tmp%mod*n%mod;
	}
	return tmp*tmp%mod;
}
void pre()
{
	jc[0]=1;
	for(int i=1;i<=2000000;i++)
	{
		jc[i]=jc[i-1]*i%mod;
	}
	jcinv[2000000]=power(jc[2000000],1000000005);
	for(int i=2000000-1;i>=0;i--)
	{
		jcinv[i]=jcinv[i+1]*(i+1)%mod;
	}
}
int c(int n,int m)
{
	return jc[n]*jcinv[m]%mod*jcinv[n-m]%mod;
}
int calc(int x,int y)
{
	if(x<0||y<0)
	{
	//	return 0;
	}
	return c(x+y+1,x+1);
}
//x+1
//x+y+1
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	pre();
	int T;
	cin>>T;
	while(T--)
	{
		int n;
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			cin>>w[i][0]>>w[i][1];
		}
		long long ans=1;
		f[1][0]=(w[1][0]>0);
		f[1][1]=(w[1][1]>0);
		g[1][0]=g[1][1]=1;
		for(int i=2;i<=n;i++)
		{
			f[i][0]=(g[i-1][0]*calc(w[i-1][0]-1,w[i-1][1])%mod+g[i-1][1]*calc(w[i-1][0],w[i-1][1]-1)%mod)%mod;
			g[i][0]=f[i][0];
			f[i][0]*=(w[i][0]>0);
			f[i][1]=(g[i-1][0]*calc(w[i-1][1],w[i-1][0]-1)%mod+g[i-1][1]*calc(w[i-1][1]-1,w[i-1][0])%mod)%mod;
			g[i][1]=f[i][1];
			f[i][1]*=(w[i][1]>0);
		}
		for(int i=1;i<=n;i++)
		{
			ans=(ans+f[i][0]*(c(w[i][0]-1+w[i][1]+2,w[i][0]-1+1)-1)%mod)%mod;
			ans=(ans+f[i][1]*(c(w[i][0]+w[i][1]-1+2,w[i][0]+1)-1)%mod)%mod;
		}
		cout<<ans<<endl;
	}
	return 0;
}

标签:tmp,机器,int,long,jcinv,生产,return,mod
From: https://www.cnblogs.com/watersail/p/18383444

相关文章

  • 2024吴恩达机器学习
    一、机器学习的应用1.监督学习(回归与分类)2.无监督学习(聚类、异常检测、降维)3.线性回归模型f(x)=wx+b代价函数costfunction: objective minimizeJ(w,b)4.梯度下降w=w-@d/dwJ(w,b)b=b-@d/dbJ(w,b) 学习率@的影响toosmall toobig 4.线性回归中的梯度......
  • Datawhale X 李宏毅苹果书 AI夏令营:task1通过案例了解机器学习
    隐藏任务:①:找出本篇中形如回归(regression)加粗字体的术语,并用自己的话进行解释,列成表格,与学习群的其他小伙伴讨论你的理解和搜索到的相关案例。②:整理出本篇中所有的公式,手动摘录,并尝试理解。③:找出机器学习找函数的3个步骤!并查找资料,交叉佐证这些步骤。④:归纳梯度下降的步骤。......
  • 一张报表完成工厂生产综合数据分析,用这款免费报表工具就够了
    在当今快节奏的工业环境中,工厂管理者们越来越依赖于数据分析来优化生产流程、提高效率和降低成本。然而,传统的数据分析工具往往复杂难用,且动辄需要高昂的费用,这让很多工厂望而却步。不过最近本人发现了一款非常实用的报表工具,叫作山海鲸可视化(官网:shanhaibi.com/report),能让你在一......
  • 生产者消费者模式,以及基于BlockingQueue的快速实现
    生产者消费者模式,以及基于BlockingQueue的快速实现什么是生产者消费者模式,简单来说就是有两个角色,一个角色主要负责生产数据,一个角色主要负责消费(使用)数据。那么生产者直接依赖消费者,然后直接调用是否可以?答案是可以的,但是有些场景无法及时解决,典型的就是生产者消费者的速度无法同......
  • 云知声多模态模型:实时多模态输入输出;独立于 Siri ,苹果或开发新 AI 用于机器人丨 RTE
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • 利用机器学习模型实时检测恶意软件——打造一款基于PyQt5的智能检测系统
    引言随着科技的发展,恶意软件的种类和复杂性也在日益增加。传统的防护手段往往难以应对新型的攻击手段,而机器学习技术的应用为恶意软件检测带来了新的可能性。本文将带领大家一起探索如何通过Python和PyQt5,构建一个实时恶意软件检测系统。这个系统不仅可以分析数据,还能训练机器......
  • 医药行业智能客服机器人的未来发展趋势探析
    Hi~这里是ProXiao文章参考:晓观点 智能客服机器人在医药行业的发展趋势是什么?https://insight.xiaoduoai.com/intelligent-tools/intelligent-customer-service-robot/what-is-the-development-trend-of-intelligent-customer-service-robots-in-the-pharmaceutical-industr......
  • 周志华机器学习西瓜书学习笔记(一)| 第一章 绪论
    1.引言    机器学习(machinelearning,ML)是一门研究如何通过计算的手段,利用经验来改善系统自身性能的学科。由于在计算机系统中,“经验”通常以数据形式储存,因此,机器学习研究的主要内容,是关于在计算机上从数据中产生模型(model)的算法,称作“学习算法”*(learningalgorith......
  • 深入理解GPU内存分配:机器学习工程师的实用指南与实验
    给定一个模型架构、数据类型、输入形状和优化器,你能否计算出前向传播和反向传播所需的GPU内存量?要回答这个问题,我们需要将流程分解为基本组件,并从底层理解内存需求。以下实验(可以在GoogleColab上运行)将帮助你理解核心概念。 数据类型float32需要4字节的内存,bfloat......
  • 足球数据分析-基于机器学习的足球比赛角球数预测模型构建
    文章目录前言一、数据收集二、数据预处理1、特征选择与构建2、数据清洗与预处理三、模型选择1、模型选择2、模型训练四、模型评估与优化1、模型评估2、模型优化:五、模型解释与部署1、模型解释2、模型部署六、代码解读及实现1.数据准备2.数据预处理3、模型构建4、数......