首页 > 其他分享 >博弈

博弈

时间:2024-07-25 10:53:08浏览次数:3  
标签:博弈 int sum long jcinv jc mod

  • 统筹全局,类比今年校赛的E题,博弈双方的地位是平等的。这样,我们只需要求出平局的概率,就可以解出本题了
点击查看代码
#include <bits/stdc++.h>
using namespace std;
const int mod=998244353;
int h[30];
long long jc[10000005],jcinv[10000005];
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<=10000000;i++)
	{
		jc[i]=jc[i-1]*i%mod;;
	}
	jcinv[10000000]=power(jc[10000000],998244351);
	for(int i=10000000-1;i>=0;i--)
	{
		jcinv[i]=jcinv[i+1]*(i+1)%mod;
	}
}
int main()
{
	pre();
	int T;
	cin>>T;
	for(int tt=1;tt<=T;tt++)
	{
		int n;
		cin>>n;
		int sum=0,opt=0;
		for(int i=1;i<=n;i++)
		{
			char c;
			cin>>c>>h[i];
			sum+=h[i];
			opt+=(h[i]%2==1);	
		}
		if(sum%2==0)
		{
			if(opt!=0)
			{
				printf("%d\n",power(2,998244351)); 
			}
			else
			{
				long long p=1,q=jc[sum]*jcinv[sum/2]%mod;
				for(int i=1;i<=n;i++)
				{
					p=p*jc[h[i]]%mod*jcinv[h[i]/2]%mod;
				}
				int ans=(q-p+mod)*power(2*q,998244351)%mod;
				printf("%d\n",ans);
			}
		}
		else
		{
			if(opt>1||opt==0)
			{
				printf("%d\n",power(2,998244351)); 
			}
			else
			{
				long long p=1,q=jc[sum-1]*jcinv[sum/2]%mod*sum%mod;
				for(int i=1;i<=n;i++)
				{
					p=p*jc[h[i]-h[i]%2]%mod*jcinv[h[i]/2]%mod;
					if(h[i]%2==1)
					{
						p=p*h[i]%mod;
					}
				}
				int ans=(q+p)*power(2*q,998244351)%mod;
				printf("%d\n",ans);
			}
		}
	}
	return 0;
}

标签:博弈,int,sum,long,jcinv,jc,mod
From: https://www.cnblogs.com/watersail/p/18322511

相关文章

  • 博弈论
    一、要素局中人:在一场竞赛或博弈中,每一个有决策权的参与者成为一个局中人。只有两个局中人的博弈现象称为“两人博弈”,而多于两个局中人的博弈称为“多人博弈”。策略:一局博弈中,每个局中人都有选择实际可行的完整的行动方案,即方案不是某阶段的行动方案,而是指导整个行动的一个方......
  • 博弈论
    公平组合游戏两人进行公平博弈,只会出现你赢我输,你输我赢两种局面:定义必胜状态为先手必胜的状态,必败状态为先手必败的状态。有以下三条结论定理1:没有后继状态的状态是必败状态。定理2:一个状态是必胜状态当且仅当存在至少一个必败状态为它的后继状态。定理3:一个状态......
  • 博弈论
    1.树上删边问题sg函数的一个简单应用,把树拆成很多条以根节点为起点的链,就可以等效于nim问题。我们把叶子节点的sg赋值为0,一个节点的sg值为它儿子节点的sg值+1的异或和。最后判断根节点的sg值是否为0,再判断是先手必胜还是后手。点击查看代码#include<bits/stdc++.h>usingn......
  • 片集 - 思维(博弈论,etc.) - 1
    欢迎来看“片”(的简介)由于-\(看片\)-生涯转瞬即逝,于是我选择对“\(片\)”进行一定的总结:相信你一定看懂了由于开始的时间有一点晚,就姑且认为我以后会慢慢补充吧......\(P6970\)\([NEERC2016]\)\(Game\)\(on\)\(Graph\)解:博弈论首先,我们有更原始的问题:\(A\),\(B\)......
  • 生成式 AI:Chat 与 Agent 的发展博弈
    生成式AI的发展方向,是Chat还是Agent?随着生成式AI技术的不断进步,关于其未来发展方向的讨论也愈发激烈。究竟生成式AI的未来是在对话系统(Chat)中展现智慧,还是在自主代理(Agent)中体现能力?这一问题引发了广泛的讨论和探索。你怎么看待生成式AI的未来发展方向?什么是AIAgent(......
  • alpha-beta六子棋博弈算法
                c语言Alpha-Beta剪枝算法六子棋   介绍Alpha-Beta剪枝算法是一种用于优化博弈树搜索的算法,可以在搜索过程中减少不必要的计算,从而提高搜索效率。该算法常用于博弈游戏,如六子棋。六子棋是一种类似于五子棋的棋类游戏,在一个六边形的棋盘......
  • MATLAB程序复现-基于合作博弈与改进理想解法的低碳化电网运营水平综合评价
    摘要:在我国能源领域“双碳”目标的引领下,电网呈现低碳化发展趋势,因此需要构建更加全面的综合评价体系进行低碳化电网运营水平的综合评价。提出了一种基于合作博弈与改进理想解法的低碳化电网运营水平综合评价方法。首先,考虑低碳化电网运营的影响因素,提出了包括安全与可靠性、经......
  • 题解:CodeForces 346A Alice and Bob[博弈/数论]
    CodeForces346AA.AliceandBobtimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputItissoboringinthesummerholiday,isn'tit?SoAliceandBobhaveinventedanewgametoplay.Therulesa......
  • 【多微电网】含多微电网租赁共享储能的配电网博弈优化调度(Matlab代码实现)
     ......
  • P2964 [USACO09NOV] A Coin Game S (博弈论 dp)
    P2964[USACO09NOV]ACoinGameS博弈论dp(乱取的)两个人都希望自己的价值最大,可以认为他俩是等价的。考虑设计dp状态,设\(f_{i,j}\)表示考虑了前\(i-1\)个,现在的先手\([i,i+j-1]\)个,他之后能得到的最大价值。转移肯定是从\(f_{i+j,k}\)转移过来,并且\(1\lek\le2j\)......