首页 > 其他分享 >CF1739C Card Game

CF1739C Card Game

时间:2023-03-21 19:58:37浏览次数:49  
标签:aa CF1739C cnt int 卡牌 Game cnt1 Card mod

题目地址

题意:有n(n为偶数)张大小不同的卡牌,现在A和B玩一个游戏,规则是如果一个人出示了一张卡牌,另一个人无法出示更大的卡牌,他就赢了,如果反之该回合结束,并将这两张牌移除(移入墓地bushi),由另一个人先出示卡牌,如果牌全部出示完了,那么就算平局,现在问如果最开始由A出示,分别有多少种发牌方式使得A赢,B赢以及平局。

Solution

组合数学,如果A赢,那么他必须拿到第一大的牌,或者每去掉四张牌的第一大和之前去掉的牌中最接近这张牌的(例如[1,2,3,4,5,6,7,8]中必须拿到8或者567或者467)

对于平局的情况,只有一种,B拿到第一大的牌,A拿到第二三大的牌,B拿到第四五大的牌,以此类推

剩下的情况就是B赢的

 1 void init()
 2 {
 3     fac[0]=1;
 4     for(int i=1;i<=60;i++)
 5     {
 6         fac[i]=(fac[i-1]*i)%mod;
 7     }
 8     inv[60]=ksm(fac[60],mod-2);
 9     for(int i=59;i>=0;i--)
10     {
11         inv[i]=(inv[i+1]*(i+1))%mod;
12     }
13 }
14 
15 int C(int n,int m)
16 {
17     if(n<m||n<0||m<0)return 0;
18     else return ((fac[n]*inv[n-m])%mod*inv[m])%mod;
19 }
20 
21 
22 void solve()
23 {
24     init();
25     int n;cin>>n;
26     int cnt1=C(n-1,(n/2)-1);
27     int aa=n/2-2;
28     int cnt=1;
29     while(aa>0)
30     {
31         cnt1=((cnt1+C(n-4*cnt,aa-1))%mod+C(n-4*cnt-1,aa-1))%mod;
32         aa-=2;
33         cnt++;
34     }
35     int cnt2=((C(n,n/2)-cnt1)%mod-1)%mod;
36     cnt2=(cnt2+mod)%mod;
37     cout<<cnt1<<" "<<cnt2<<" ";
38     cout<<"1\n";
39 }
View Code

 

标签:aa,CF1739C,cnt,int,卡牌,Game,cnt1,Card,mod
From: https://www.cnblogs.com/HikariFears/p/17241197.html

相关文章

  • 「解题报告」ARC128F Game against Robot
    好厉害的题。震撼到了。大部分参考Atcoder计数乱做-苹果蓝17。我的观察能力还是太差,一点条件都观察不出来,连\(p\)固定怎么做都不会。下面令\(n\gets\frac{n}{2......
  • Card Marking
    如果younggc线程只遍历年轻代内的对象引用,那么老年代到年轻代的跨代引用就会被忽略,被老年代存活对象跨代引用的年轻代对象会被回收,这样就破坏了应用程序的运行。但是如......
  • Python之Pygame新建窗口
    #1、首先导入pygame模块、sys模块importpygame,sys#2、使用函数创建一个窗口,设置窗口的大小、背景、标题等参数#主程序defmain():#导入pygame的所有可用模块,程序检......
  • 题解:【ARC112C】 DFS Game
    题目链接题目里面的注意点还是很多的,如果读错了题整个思路可能会一点都不对。首先是移动和选取硬币的操作是分开的,所以你移动到了一个有硬币的节点,将是你的对手获得硬币。......
  • CF1442F Differentiating Games
    CF1442FDifferentiatingGames传送门CF1442FDifferentiatingGames题目大意给你一个DAG,\(n(n\le1000)\)个点,\(m(m\le10^5)\)条边。一次游戏为:两人轮流操作,每......
  • 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 05.认识GameMode&自动生成AI角色
    斯坦福课程UE4C++ActionRoguelike游戏实例教程0.绪论概述本篇文章将会讲述UE中Gamemode的基本概念,并在C++中开发GameMode,为游戏设置一个简单的玩法:使用环境查询自动......
  • 「解题报告」ARC154F Dice Game
    看起来就多项式,跟概率有关就上概率生成函数吧。考虑类似于FlipCells的套路,设\(F(x)\)为翻出所有的生成函数,\(G(x)\)为第一次翻出所有的生成函数,\(H(x)\)是翻出后任......
  • ElasticSearch 实现分词全文检索 - id、ids、prefix、fuzzy、wildcard、range、regexp
    目录ElasticSearch实现分词全文检索-概述ElasticSearch实现分词全文检索-ES、Kibana、IK安装ElasticSearch实现分词全文检索-Restful基本操作ElasticSearch......
  • CodeForces 1147F Zigzag Game
    洛谷传送门CF传送门很有意思的题。考虑若无边权的限制则B必胜,不妨猜想有了限制之后仍然是B必胜。假设A选了I(若A选了D可以边权取相反数),若B走了\((a,b)\)......
  • 题解 ARC111B【Reversible Cards】
    我们将值域中每个数视作一个节点,将每张卡片视作连接两个节点的边,则问题转化为:对于每条边都选择一个端点,使得被选择的节点总数最大。显然每个连通块可以分开处理。设连通块......