首页 > 其他分享 >Codeforces Global Round 24 D

Codeforces Global Round 24 D

时间:2022-11-29 19:22:27浏览次数:59  
标签:24 int res Global Codeforces 然后 枚举 ans

D. Doremy's Pegging Game

题目链接
挺难的一道计数
计数问题最重要的是考虑如果划分集合 然后不重不漏地计算出来
我们考虑枚举每一个序列的结束点
就是有n个 然后这n个显然是等价的 所以我们最后n即可
然后我们可以发现我们结束状态一定是“一边”点 就是最远的点距离不超过n/2
这样我们就可以枚举“边”的起始 然后O(1)计算即可
我们边中间的可以在可以不在
设边除了起始两个点还有x个点
然后可以预处理边内点选i=0,1,2,3,....x个要删掉时的也就是Cxi再
一共有多少点删掉的全排列
我们预处理出这个sum[x]
最后再枚举边的时候判断一下合法性
再最后判断一下n是偶数是 可以有一种特殊的对着的两个点的特殊情况即可

int a[N],b[N],p;
int qmi(int a,int k,int p){
    int res=1;
    while(k){
        if(k&1)res=(res*a)%p;
        k>>=1;
        a=a*a%p;
    }
    return res;
}
int C(int x,int y){
    if(x<0||y<0||x<y)return 0;
    return a[x]*b[y]%p*b[x-y]%p;
}
vector<int>A(N);
void init(){
    a[0]=b[0]=1;
    for(int i=1;i<=1e5;i++){
        a[i]=(a[i-1]*i)%p;
        b[i]=b[i-1]*qmi(i,p-2,p)%p;
    }
}
void solve(){
    int n;cin>>n>>p;
    init();
    A[0]=1;
    for(int i=1;i<=n;i++)A[i]=A[i-1]*i%p;
    vector<int>sum(n+10);
    for(int x=0;x<=n-3;x++){
        for(int j=0;j<=x;j++){
            (sum[x]+=C(x,j)*A[n-x-3+j]%p)%=p;
        }
    }
    int ans=0;
    for(int i=2;i<=n/2+1;i++){
        for(int j=i+1;j<=n;j++){
            int x=j-i;
            if(x<up(n,2)&&j>up(n,2)){
                (ans+=sum[x-1])%=p;
            }
        }
    }
    if(n%2==0){
        (ans+=A[n-2])%=p;
    }
    cout<<ans*n%p<<endl;
}

标签:24,int,res,Global,Codeforces,然后,枚举,ans
From: https://www.cnblogs.com/ycllz/p/16936442.html

相关文章

  • Codeforces Round #836 (Div. 2)(A~D)
    A每个字符出现次数都是偶数,直接拼接defsolve():s=input()t=sprint(s+t[::-1])t=int(input())foriinrange(t):solve()B奇数个的情况下n个相同的......
  • 力扣240(java&python)-搜索二维矩阵 II(中等)
    题目:编写一个高效的算法来搜索 m x n 矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例......
  • cs224w(图机器学习)学习笔记2 Traditional Feature Based on Methods
    目录一.Review二.TraditionalFeature-basedMethods:Node1.半监督学习任务semi-supervised2.节点特征overview3.节点度nodedegree4.节点中心度nodecentrality5.聚......
  • KubeSphere 社区双周报 | KubeKey v3.0.2 发布 | 2022-11-24
    KubeSphere从诞生的第一天起便秉持着开源、开放的理念,并且以社区的方式成长,如今KubeSphere已经成为全球最受欢迎的开源容器平台之一。这些都离不开社区小伙伴的共同努力......
  • Codeforces Round #826 (Div. 3) F
    F.Multi-ColoredSegments洛谷最优解显然我们对于每一个线段可以分成左右两端考虑我们先按照lsort一遍然后每次计算与他最近的值我们维护两个最大的r即可然后每次......
  • 「题解」Codeforces 1765L Project Manager
    写了两个小时写吐了,你告诉我这玩意2400?如果不管假期的话,那么每一周必然会有一个项目跟进一次进度。那么答案就是线性的。即使有假期的存在也没关系,每个假期顶多就只会拖......
  • 0124-Go-JSON 转换
    环境Time2022-08-25Go1.19前言说明参考:https://gobyexample.com/json目标使用Go语言的JSON。简单值packagemainimport("encoding/json""fmt......
  • Codeforces Global Round 24(持续更新)
    Preface最近可能中了降智病毒,写什么都写不过下午打的校趣味赛看错题一个爆搜WA了四次,少罚一次时都Rank1了然后晚上CF先是C想半天,然后D作为曾经最擅长的计数题也漏想了一......
  • Codeforces Round #829 (Div. 1) C
    C.WishIKnewHowtoSort我们会发现此题的终点状态只有一个起点状态也只有一个所以我们的状态表示可以非常简单我们可以发现我们为了达到最终的状态我们用一些1来......
  • 10.24送温暖,把“猿”节过的圆圆满满(文末双重福利!)
    "IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、实用的知识与技能,快速提升职场竞争力。程序员之歌在那山的那边海的那边......