2019女排世界杯个人技术统计_2019年女排世界杯第三轮

2019女排世界杯个人技术统计_2019年女排世界杯第三轮P3230 [HNOI2013]比赛

大家好,又见面了,我是你们的朋友全栈君。

传送门

我讨厌dfs……题解不想写……自己看吧……->这里

//minamoto
#include<bits/stdc++.h>
#define ll unsigned long long
#define fp(i,a,b) for(register int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(register int i=a,I=b-1;i>I;--i)
using namespace std;
const ll Base=37,P=1e9+7;const int N=1005;
int n,m,a[N],b[N],s[N],su,sx,sy;map<ll,ll>h;
inline bool cmp(const int &x,const int &y){return x>y;}
ll dfs(int u,int v){
    ll res=0;if(u==n)return 1;if(a[u]+3*(n-v+1)<s[u])return 0;
    if(v>n){
        fp(i,u+1,n)b[i]=s[i]-a[i];sort(b+u+1,b+n+1);
        ll S=0;fp(i,u+1,n)S=S*Base+b[i];
        if(h.count(S))return h[S];
        else return h[S]=dfs(u+1,u+2);
    }
    if(a[u]+3<=s[u]&&sx)a[u]+=3,--sx,res+=dfs(u,v+1),a[u]-=3,++sx;
    if(a[u]+1<=s[u]&&a[v]+1<=s[v]&&sy)++a[u],++a[v],--sy,res+=dfs(u,v+1),--a[u],--a[v],++sy;
    if(a[v]+3<=s[v]&&sx)a[v]+=3,--sx,res+=dfs(u,v+1),a[v]-=3,++sx;
    return res%P;
}
int main(){
//  freopen("testdata.in","r",stdin);
    scanf("%d",&n);fp(i,1,n)scanf("%d",&s[i]),su+=s[i];
    sx=su-n*n+n,sy=(su-3*sx)>>1;sort(s+1,s+1+n,cmp);
    printf("%lld\n",dfs(1,2)%P);
}

转载于:https://www.cnblogs.com/bztMinamoto/p/10041365.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107174.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python 生成随机矩阵_matlab建立m行n列矩阵

    python 生成随机矩阵_matlab建立m行n列矩阵导入模块random模块numpy中的random函数python中有两个模块可以生成随机数,该博客以的numpy模块为例进行生成随机数。(因为矩阵要生成大量的随机数据,故推荐使用numpy模块生成随机数)生成随机数(以矩阵为例)#生成随机矩阵importnumpyasnp# 设置随机种子,保证每次生成的随机数一样rd=np.random.RandomState(…

    2022年10月23日
  • datagrip 激活码最新2021破解方法

    datagrip 激活码最新2021破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
  • 微信十年庆生 米聊黯然退场

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 【环球网科技综合报道】在微信庆祝 “十周岁”生日的当天,小米旗下米聊宣布彻底退出历史舞台,并关闭了服务器。 2021…

    2021年6月25日
  • gridview的属性_grid css

    gridview的属性_grid css正在做一个项目,其中用到了Gridview控件,内容如下即每行里又包括两小行,这个功能可以用两个嵌套的gridview实现,第二个要实现的是每个大行之间用实现相隔,每个小行之间用虚线网上很多资料都是关于Gridview的,但是关于样式的就不多后来发现可以在后台程序中动态改变CELL的式样protectedvoidGridView2_RowDataBound(obj

    2022年9月2日
  • redis如何查看版本号_redis版本号

    redis如何查看版本号_redis版本号linux环境下查看redis的版本:查看redis的版本有两种方式:1.redis-server–version和redis-server-v 得到的结果是:Redisserverv=3.2.12sha=00000000:0malloc=jemalloc-3.6.0bits=641.redis-cli–version和redis-cli-…

    2022年10月19日
  • ubuntu 20.04 安装中文输入法_如何在ubuntu中安装中文输入法

    ubuntu 20.04 安装中文输入法_如何在ubuntu中安装中文输入法在Ubuntu系统中,无论是写文档还是在程序中写注释,都经常需要用到中文输入法。本文简单介绍了三种输入法框架,然后详细介绍了在Ubuntu20.04系统中,IBus框架和Fcitx框架支持的中文输入法的配置和安装。……

    2022年9月26日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号