P4128 [SHOI2006] 有色图

这篇博客探讨了如何利用Polya计数原理解决组合问题,通过DFS深度优先搜索来计算有约束条件的排列组合总数。文章中给出了C++代码实现,并涉及到了数学中的最大公约数计算。博主还提到了该问题可能与图论中的有色图概念有所关联,增加了问题的复杂性和趣味性。
摘要由CSDN通过智能技术生成

题目

题目

思路

使用polya引理。
1 ∣ G ∣ = 1 n ! {1 \over |G|}={1\over n!} G1=n!1
而轮换总方案数为 n ! ∏ b i ∏ c ! n!\over \prod b_i \prod c! bic!n!
所以最后的式子是 ∑ b 1 ∏ b i ∏ c ! m ∑ i < j g c d ( i , j ) \sum_b{1\over \prod b_i \prod c!}m^{\sum_{i<j}gcd(i,j)} bbic!1mi<jgcd(i,j)
dfs解决
code:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
long long a[80],ans,n,b[80],myd;
long long m;
long long ksm(long long x,long long y)
{
	long long s=1;
	while (y)
	{
		if (y&1) s=s*x%myd;
		x=x*x%myd;
		y>>=1;
	}
	return s;
}
long long gcd(long long x,long long y)
{
	long long r=x%y;
	while (r!=0)
	{
		x=y,y=r,r=x%y;
	}
	return y;
}
void dfs(long long tot,long long syg,long long s)
{
	if (s==0)
	{
		long long x=0,y=1;
		for (int i=1,j=1;i<tot;i++)
		{
			j=1;
			x+=b[i]>>1;
			while (j<i)
			{
				x+=gcd(b[i],b[j]);
				j++;
			}
			y=y*b[i]%myd;
		}
		for (int i=1,j=1;i<tot;i=j)
		{
			while (b[i]==b[j]&&j<tot) j++;
			y=y*a[j-i]%myd;
		}
		ans=(ans+ksm(m,x)*ksm(y,myd-2)%myd)%myd;
		return;
	}
	for (int i=syg;i<=s;i++)
	{
		b[tot]=i;
		dfs(tot+1,i,s-i);
	}
	return;
}
int main()
{
	cin>>n>>m>>myd;
	a[0]=1;
	for (int i=1;i<=80;i++) a[i]=a[i-1]*i%myd;
	ans=0;
	dfs(1,1,n);
	cout<<ans;
	return 0;
}

机房某daolao:据说有色图??

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用:网络需要在像和输出概率(评分0-1)之间过滤不适合工作的片。评分<0.2表示像具有较高概率是安全的。评分>0.8表明极有可能是不适合工作(NSFW)像。我们建议开发者根据用例和像类型的不同选择合适的阈值。根据使用情况、定义以及公差的不同会产生误差。理想情况下,开发人员应该创建一个评价集,根据“什么是安全的”对他们的应用程序进行定义,然后适合ROC曲线选择一个合适的阈值。结果可以通过微调你的数据/ uscase /定义NSFW的模型的改进。我们不提供任何结果的准确性保证。使用者适度地结合机器学习解决方案将有助于提高性能。模型描述:我们将不适合工作的片(NSFW)作为数据集中的积极对象,适合工作的片作为消极对象来进行训练。所有这些被训练得片都被打上了特定的标签。所以由于数据本身的原因,我们无法发布数据集或者其他信息。我们用非常不错的名字叫“CaffeOnSpark”的架构给“Hadoop”带来深度学习算法,并且使用Spark集群来进行模型训练的实验。在此非常感谢 CaffeOnSpark 团队。深度模型算法首先在 ImageNet 上生成了1000种数据集,之后我们调整不适合工作(NSFW)的数据集比例。我们使用了50 1by2的残差网络生成网络模型。模型通过 pynetbuilder 工具以及复制残余网络的方法会产生50层网络(每层网络只有一半的过滤器)。你可以从这里获取到更多关于模型产生的信息。更深的网络或者具有更多过滤器的网络通常会更精确。我们使用剩余(residual)网络结构来训练模型,这样可以提供恰到好处的精确度,同样模型在运行以及内存上都能保持轻量级。 标签:opennsfw
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值