随笔 - 531  文章 - 0  评论 - 3  阅读 - 10215 

A,B 打牌(牌的数量为偶数), 计算A赢  B赢  平局的方案数

如果A赢

     1.A获得最大的牌,

     2.A没有最大的牌,但如果有 n-1 的牌,逼B交n的牌,也可能赢, 

>>>>>

f[n][0]= c(n-1,n/2-1) +f[n-2][1]

#include <iostream>
using namespace std;

const int M=100,N=100;
#define int long long
const int mod=998244353 ;
 int c[N][N];
 void init(){
 	int i,j;
 	c[1][1]=1;
 	for(i=0;i<=M;i++) c[i][0]=1;
 	
 	for(i=2;i<=M;i++)
 		for(j=1;j<=i;j++)
 		c[i][j]=(c[i-1][j]+c[i-1][j-1]);
 }
 
 int n,f[N][2];
 
 main(){
 	int i,j,cas;
 	init();
 	f[2][0]=1; f[2][1]=0;
 	for(i=4;i<=100;i++){
 		f[i][0]=c[i-1][i/2-1]+f[i-2][1];
 		f[i][1]=c[i][i/2]-f[i][0]-1; 
 		f[i][0]%=mod,f[i][1]%=mod;
	 }
 	cin>>cas;
 	while(cas--)
 cin>>n,cout<<f[n][0]<<' '<<f[n][1]<<' '<<1<<endl;
 }

方案数. 

posted on   towboat  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示