当前位置: 首页 > news >正文

沧州网站设计师招聘百度发布信息怎么弄

沧州网站设计师招聘,百度发布信息怎么弄,流量神器,电子商务网站环境建设首先题目有博弈,先分析一波最优策略(步骤:分析性质)。 两个人,所以显然考虑奇偶考虑法递归考虑。 首先删就是使子问题-1,重新排列是在当前子问题里的。 一个串的排列是有限的,所以这里就可以…

首先题目有博弈,先分析一波最优策略(步骤:分析性质)。

两个人,所以显然考虑奇偶考虑法+递归考虑。

首先删就是使子问题-1,重新排列是在当前子问题里的。

一个串的排列是有限的,所以这里就可以上奇偶考虑法。如果有偶数种串,则必然是后手先“被迫“进入子问题(要算上初始情况)

考虑假设法:我们可以先假设进入子问题:

  1. 必赢。先手进!
  2. 必死。偶串时后手被迫进入,先手胜!

我们的奇偶考虑法证明了串方案wei偶数时先手必胜了!

考虑奇数种时先手能不能赢,同样假设一下:

  1. 进去必赢。先手胜
  2. 进去必输。先手被迫进入,后手胜

现在先手就不能再这层耗了,只能进入下一层了。然后结合上面的结论,只能进入子问题种类数是奇数时先手才有机会。

然后好像就卡住了…

然后回到题目看一看,发现问种类数,考虑dp太早了,就先想下计数

假设每种字符出现次数为 a a a,那么就有 a n \frac a n na种串。然后我们现在这个是奇数。

考虑删掉一个变成什么,是 n ! ∏ a ! ( a − 1 ) ! \frac {n!} {\prod a! (a-1)!} a!(a1)!n!,我们现在希望这个是奇数。我们除一下发现上面要乘个 a n \frac a n na,则这个也要是奇数。

我们考虑我们还漏了什么条件, ∑ a = n \sum a=n a=n。奇偶的话就从二进制的角度推敲一下, n n n 的最低位1必然存在在其中一个 a a a 里,所以 a n \frac a n na 为奇数必然存在。

所以现在只和 n n n 的奇偶有关了。 n n n 偶先手必胜,否则必败。

剩下dp就很简单了。若 n n n 为奇数,我们要构造 a n \frac a n na 为偶数,考虑用全局-奇。

因为有 ∏ a ! ∣ n ! \prod a! | n! a!n!,所以 ∏ a ! \prod a! a! 的2的因子和 n ! n! n! 只能相同。考虑类似10,不能用1+1表示,只能用10+0表示。所以每个 a a a 必然是 n n n 的子集。同时 ∑ a = n \sum a=n a=n

然后dp维护下 1 ∏ a ! \frac 1{\prod a!} a!1 的和。

有个小优化,就是钦定当前lowbit必选,最后乘个阶乘即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int read(){int x=0,f=1;char ch=getchar(); while(ch<'0'||
ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
#define Z(x) (x)*(x)
#define pb push_back
//mt19937 rand(time(0));
//mt19937_64 rand(time(0));
//srand(time(0));
#define N 250010
//#define M
//#define mo
int mo; 
int pw(int a, int b) {int ans=1; while(b) {if(b&1) ans*=a; a*=a; b>>=1; ans%=mo; a%=mo; }return ans; 
}
int fac[N], inv[N], ifac[N]; 
void init(int n) {int i; for(i=fac[0]=1; i<=n; ++i) fac[i]=fac[i-1]*i%mo; ifac[n]=pw(fac[n], mo-2); for(i=n-1; i>=0; --i) ifac[i]=ifac[i+1]*(i+1)%mo; for(i=1; i<=n; ++i) inv[i]=ifac[i]*fac[i-1]%mo; 
}
int C(int n, int m) {if(m>n) return 0;return fac[n]*ifac[m]%mo*ifac[n-m]%mo; 
}
int n, m, i, j, k, T;
int f[27][N], s, t, ans; void Add(int &a, int b) {
//	a=(a+b)%mo; a+=b; if(a>=mo || a<=mo) a%=mo; 
}int dfs(int i, int s) {
//	printf("f[%lld][%lld] %lld\n", i, s, f[i][s]); if(f[i][s]!=-1) return f[i][s]; if(i==0 || s==0) return 0; f[i][s]=0; int j=s&-s, t; 
//	printf("====\n"); 
//	printf("%lld %lld\n", S, j); for(t=(s-j); ; t=(t-1)&(s-j)) {//ai=tAdd(f[i][s], dfs(i-1, s-j-t)*ifac[t+j]); if(!t) break;  }
//	printf("f[%lld][%lld]=%lld\n", i, s, f[i][s]); return f[i][s]; 
}signed main()
{
//	freopen("in.txt", "r", stdin);
//	freopen("out.txt", "w", stdout);
//	T=read();
//	while(T--) {
//
//	}n=read(); k=read(); mo=read(); init(n); if(n%2) return printf("%lld\n", pw(k, n)), 0; memset(f, -1, sizeof(f)); f[0][0]=1; 
//	for(i=1; i<=k; ++i) printf("%lld %lld %lld\n",  fac[n], f[i][0], fac[n]*f[i][0]%mo); for(i=1; i<=k; ++i) {
//		printf("dfs[%lld %lld]=%lld\n", i, 0, dfs(i, 0)); Add(ans, fac[n]*dfs(i, n)%mo*C(k, i)%mo*fac[i]%mo); }
//	printf("%lld\n", (ans%mo+mo)%mo); Add(ans, pw(k, n)-2*ans); printf("%lld", (ans%mo+mo)%mo); return 0;
}
http://www.yidumall.com/news/60805.html

相关文章:

  • 旅游网站设计说明书大连做优化网站哪家好
  • 做网站需要什么专业方向的员工央视新闻
  • 福建省效能建设网站百度招聘网最新招聘信息
  • 网页设计公司介绍怎么写手机网站关键词seo
  • 自动提卡的网站怎么做的seo工具是什么意思
  • wps上怎么做网站点击分析表seo内部优化方案
  • 电子商务网站建设的目标是万网查询
  • 廊坊网站建设价格域名注册优惠
  • 深圳市龙华区网站建设网络营销方法
  • 学什么可以先做网站推广员是干什么的
  • 网站后台 生成所有页面佛山优化推广
  • 制作php网站用什么软件国家免费技能培训平台
  • a站免费最好看的电影片推荐如何建造自己的网站
  • 建站工作室 网站建设工作室如何制作一个网站
  • 高品质网站建设怎么打广告吸引客户
  • 寺庙网站模板seo网站优化教程
  • 做公司网站需要注意什么网站开发怎么做
  • 响应式网站 模版360优化大师下载官网
  • 温州网站建设wzwmwl建网站的软件有哪些
  • 做淘宝的导购网站如何发布自己的广告
  • 服饰营销型网站建设长沙网站搭建关键词排名
  • 黄石本土做网站的公司网销怎么做
  • 做网站注意什么问题外贸怎么找客户资源
  • 做网站怎样投放广告网站外链有多重要
  • 哪个网站可以卖自己做的模型2021最新免费的推广引流软件
  • 视觉设计网站有哪些做销售记住这十句口诀
  • 微信如何做微商城网站外包网站
  • 网站的基本要素怎么才能在百度上做引流呢
  • 网站建设走什么科目优化关键词步骤
  • 网站域名管理怎么登陆广告推广精准引流