HDU 4390

scDeepCluster_pytorch代码解读与文章理解 论文:Clustering single-cell RNA-seq data with a。 阅读详情

题目:给出n个数,b1,b2,b3……bn,构造n个数,a1,a2,……an(ai>1),使得a1*a2*a3……an=b1*b2……bn;

http://acm.hdu.edu.cn/showproblem.php?pid=4390 

首先是将所有 的b进行素因子分解,则a和b的因子是完全一致的。

剩下的便是将所有b的因子,分给a

我们考虑某个素因子pi,如果有ci个,便成了子问题将ci个相同的物品放入到n个不同的容器中,种数为多少

但是要求ai>1,也就是容器不能为空,这是个问题。

我们考虑的是什么的情况,然后减去假设有一个确定是空的情况,发现可以用容斥原理解决

我们假设f[i]表示有i个容器的结果,c(n,i)*f[i]

将m个物品放到到不同的n个容器中,结果为c(n+m-1,n-1)


坑爹啊 一开始MOD写成1e9+5了 哎 要是在正式比赛想死的心都有了

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;

const int maxn=1005;
const int MOD=1000000007;
int p[maxn];
int a[maxn];
int c[maxn][maxn];

template<class T>
void pp(T *a,int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		cout<<a[i]<<" ";
	}
	cout<<endl;
}

void Init()
{
    for(int i=0;i<=500;i++)
    {
        c[i][0]=c[i][i]=1;
        for(int j=1;j<i;j++) c[i][j]=(c[i-1][j]+c[i-1][j-1])%MOD;
    }
}

void init()
{
	int i,j;
	for(i=0;i<maxn;i++)
	{
		c[i][i]=c[i][0]=1;
		for(j=1;j<i;j++)
		{
			c[i][j]=(c[i-1][j]+c[i-1][j-1])%MOD;
		}
	}
}

int put(int m,int n)
{
	return c[m+n-1][n-1]; //将m个物品放到到不同的n个容器中,结果为c(n+m-1,n-1)
}

int getans(int cnt,int n)
{
	int i,j;
	ll ans=1;
	for(i=0;i<=cnt;i++)
	{
		ans=(ans*put(a[i],n))%MOD;
	}
	for(i=1;i<n;i++)
	{
		ll tmp=c[n][i];
		for(j=0;j<=cnt;j++)
		{
			tmp=(tmp*put(a[j],n-i))%MOD;
		}
		if(i&1)
		{
			ans=((ans-tmp)%MOD+MOD)%MOD;
		}
		else
		{
			ans=(ans+tmp)%MOD;
		}
	}
	return ans;
}

int main()
{
	init();
	int n;
	while(~scanf("%d",&n))
	{
		int t,i,j;
		int cnt=0;
		for(i=0;i<n;i++)
		{
			scanf("%d",&t);
			for(j=2;j*j<=t;j++)
			{
				while(t%j==0)
				{
					p[cnt++]=j;
					t/=j;
				}
			}
			if(t>1)
			{
				p[cnt++]=t;
			}
		}
		sort(p,p+cnt);
		a[0]=1;
		i=0;
		for(j=1;j<cnt;j++)
		{
			if(p[j]==p[j-1])
			{
				a[i]++;
			}
			else
			{
				a[++i]=1;
			}
		}
		cnt=i;
		printf("%d\n",getans(cnt,n));
	}
	return 0;
}


面试复习题--RN面试 考察点:热更新方案的深度理解,选型能力,实战落地经验。答题思路主流热更新方案对比。 阅读详情

相关推荐

SQL手工注入及sqlmap注入(文章管理系统实例练习)

sql手工注入及sqlmap注入练习

weixin_53303754的博客 524

hdu4390 容斥原理

突然发现以前没坐过数学题,,菜菜菜啊、、、看了下题目,知道用容斥原理,但好多什么分解质因数,什么的都不会 ,于是搜了下别人博客,然后才会的、、现在开始做点数学题。。up~~ 比较简单的题目:分解质因数 对于每个因子的指数p分给n个数,方案数就是多重组和c(n+p-1,p)但是ai>1所以用个容斥原理就ok #include #include #include #include con

终究我要华丽逆袭 999

抖音X-Medusa风控逆向:unidbg环境重建与魔改AES还原

X-Medusa并非传统加密算法,而是深度耦合运行时环境的动态混淆系统,其核心是硬件指纹感知、线程上下文绑定与非标AES变异。理解其原理需跳出‘找密钥’思维,转向对CPU型号、系统属性、微秒级时间及内存布局的综合建模。技术价值在于将不可控的客户端风控,转化为可复现、可配置、可运维的服务化能力;典型应用场景包括合规数据采集、API协议适配与移动安全研究。本文聚焦Android native层逆向实践,基于unidbg实现高保真环境模拟,并完整还原S-Box动态生成、MixColumns矩阵变异与轮密钥XOR扰

weixin_33783283的博客 691

hdu 4390 容斥组合数学

先抽象出 n个相同物品放在m个不同抽屉里的模型 结果为C(n, n+m-1) 然后本题要求抽屉里必须放物品 所以要反向思维容斥求出有抽屉不放物品的方案数 为大于等于一个为空的方案减大于等于两个为空的方案加大于等于三个为空的方案。。。。#include<cstdio> #include<cstring> #include<vector> #define LL long long using nam

acblacktea的博客 367

esp32s3 spi camera gc6133调试

gc6133 spi只有master模式,同时需要esp32提供主时钟,需要有主时钟然后才能通过i2c进行初始化.测试了几种方式,记录如下。

hclydao的专栏 1567

kaggle社区LLM Classification Finetuning

预测用户在一个由大型语言模型(LLMs)驱动的聊天机器人之间的正面交锋中会偏好哪些回应。获得来自聊天机器人竞技场(Chatbot Arena)的对话数据集,其中不同的LLMs对用户的提示生成答案。通过开发一个胜出的机器学习模型,帮助改进聊天机器人与人类的互动方式,并确保它们更好地符合人类的偏好。实际上是进行一个序列的分类。

m0_73542617的博客 1933

HDU 4390 Number Sequence(容斥原理+组合计数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4390 题意:给出n个数字b1,b2,……,bn。求有多少个有序序列a1,a2,……,an,满足b1*b2*……*bn=a1*a2*……*an?(ai&gt;1) 思路:首先分解质因数,存下每个质因子出现的次数。其次,容斥原理还是比较好想的,设f[n]表示n个数字(可以有1),那么 P是出现的...

weixin_33735077的博客 197

在overleaf中使用bibtex引用参考文献

最近在挑选写tex的平台,挑来挑去,个人感觉overleaf给我带来的体验感是最舒适的。不过由于对内部的文件组织和make进行了一层封装,所以与一般的本地平台编译tex会有一点不同。此处写一下在overleaf中使用bibtex的方法。 在tex中使用bibtex引用文献是一件很舒适的事,毕竟这是tex的优点之一(要是tex比word难用,我干什么不去用word,hhh) 第一步,我们创建一个.bib文件,名字随便起,我这边起为reference.bib。 然后打开谷歌学术,搜索你想要引用的文章,并找到

锦恢的博客 4万+

HDU 4390 Number Sequence(容斥原理)

转载请注明出处,谢谢http://blog.youkuaiyun.com/ACM_cxlove?viewmode=contents    by---cxlove  题目:给出n个数,b1,b2,b3……bn,构造n个数,a1,a2,……an(ai>1),使得a1*a2*a3……an=b1*b2……bn; http://acm.hdu.edu.cn/showproblem.php?pid=4390

窝不是爱酱,喵~~~~ 2252

支付漏洞防护绕过的一种方式

放完包后就到了提交订单的地方,可以发现,金额确实小了很多,合理的搭配的话还可以更低,再次前进可以发现,金额确实是这么多,后面就不支付了,到此就结束了。也就是说数量可以为负数,但是金额不能为0或者0以下,有什么方法可以绕过这个限制吗,其实并不难,既然可以为负数,只是对金额不能为0或者负数做了限制。我们可以尝试拼接法,利用负数加上正数让他的值变得很低,但是又大于0就可以了,这里利用购物车的结算方法,随机加一些在购物车里。这里为了方便查看数据包,我这边商品的数量选择3,点击立即购买并抓包。

2301_80115097的博客 1529

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南

在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。

PeterPan的博客 589

#HDU4390#表达式计数(第二类Stirling + 容斥)

[HDU4390]表达式计数 时间限制: 1 Sec  内存限制: 128 MB 题目描述 给出n个数,b1,b2,b3……bn,构造n个数,a1,a2,……an(ai>1),使得a1*a2*a3……an=b1*b2……bn; 问一共有多少种数列a1,a2,……an满足上述条件。 输入 包含多组输入数据 每组数据第一行有1个整数n(1 每组数据第

ElaineZXY的博客 833

使用R语言获取data.frame中指定列的数据

这里以"df"为例,包含三列数据:“列1”、“列2"和"列3”。通过以上代码,我们成功获取了"列1"和"列3"的数据,并将它们分别存储在了变量"column1"和"column3"中。假设我们有一个名为"df"的data.frame,其中包含了多个列,我们想要提取其中的某一列。符号,我们可以从data.frame中提取出"列2"的数据,并将其赋值给变量"column2"。符号,我们可以轻松提取出data.frame中特定列的数据,并将其存储在变量中供进一步的分析和处理使用。假设我们要获取"列2"的数据。

DevRevolt的博客 2321

HDU 4390 Number Sequence (容斥原理+组合计数)

HDU 4390题意:大概就是这样,不翻译了: Given a number sequence b1,b2…bn.b_1,b_2…b_n. Please count how many number sequences a1,a2,...,ana_1,a_2,...,a_n satisfy the condition thata1∗a2∗...∗an=b1∗b2∗…∗bn(ai,bi>1). a_

a novice 1251

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【HDU】4390 Number Sequence 容斥原理

传送门:【HDU】4390 Number Sequence

poursoul 716

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

hdu 4390 Number Sequence

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4390题目大意:给一些数,求出这些数的乘积,再把这个积分解成n个大于一的因子,问有多少种情况。解题思路:没想到,看了别人的。别人的思路是统计这每个质因子的对于n个数出现的次数。再用容斥定理求出结果。把每个质因子分到n个数中是总的情况,再减去n个数中至少有一个数没有分到质因子的情况,就是每个数都分到质因子的

单木的专栏 320

HDU 4390 Number Sequence 二分

题目地址:  http://acm.hdu.edu.cn/showproblem.php?pid=4390 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include us

lamborghini1993 1198

HDU4390Number Sequence(容斥原理)

HDU4390Number Sequence(容斥原理)

追梦赤子心 1208

hdu 4390 Number Sequence(容斥原理)

题目:给出n个数,b1,b2,b3……bn,构造n个数,求有多少组序列a1,a2,……an(ai>1),使得a1*a2*a3……an=b1*b2……bn(bi>1); http://acm.hdu.edu.cn/showproblem.php?pid=4390 首先是将所有 的b进行素因子分解,则a和b的因子是完全一致的。 剩下的便是将所有b的因子,分给a 我们考虑某个素因子pi,如果有

hlmfjkqaz的专栏 507

HDU 4390 Number Sequence 数论-(容斥原理)

题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4390 给出n个数,b1,b2,b3……bn,构造n个数,a1,a2,……an(ai>1),使得a1*a2*a3……an=b1*b2……bn 首先是将所有 的b进行素因子分解,则a和b的因子是完全一致的。 剩下的便是将所有b的因子,分给a 我们考虑某个素因子pi,如

lamborghini1993 1203

hdu 4390

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4390 给你n个数(nta1*a2*...*an=b1*b2*…*bn ,并且每个ai要大于1 数据范围1000也可以做 一看就是组合问题,首先,第一步,肯定是先分解质因数,然后得到一个数组a,a[i]表示第i种素数的个数,至于这个素数是什么已经不重要了 然后就相当于依次将每种素数放入n个容器中,记

努力奋斗才能梦想成真 2029

【解题报告】 HDU 4390 Number Sequence -- 容斥原理(不好理解)

/* HDU 4390 Number Sequence -- 容斥原理(不好理解) http://blog.youkuaiyun.com/acm_cxlove/article/details/8146102 n种球每种Ai个 {A1, A2, A3...An}放在m个盒子里,盒子不为空有多少种放法 先求出总的放法(允许为空),然后减去至少有一个盒子为空的放发 容斥原理可求出至少有一个盒子为空的

生命有一种绝对 958

HDU 4390 组合数学&数论

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4390 Number Sequence Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1067    Accepted Sub

雷_u013188850的专栏 528
上一篇: HDU 4394 bfs
下一篇: POJ 1144 求割点
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值