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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 简单的java图片存储方法

    简单的java图片存储方法Controller中//调用ReceivePIC.receivePIC(request,response);//封装的方法packagecom.jwwl.fsq.util;importjava.io.File;importjava.io.FileOutputStream;importjava.io.InputStream;importj

  • c#五种封装简单介绍

    c#五种封装简单介绍

  • 高斯约旦消元法求逆矩阵的思想(分块矩阵的逆矩阵)

    P4783【模板】矩阵求逆题目描述求一个N×NN×NN×N的矩阵的逆矩阵。答案对109+710^9+7109+7取模。1.逆矩阵的定义假设AAA是一个方阵,如果存在一个矩阵A−1A^{-1}A−1,使得A−1A=IA^{-1}A=IA−1A=I并且AA−1=IAA^{-1}=IAA−1=I那么,矩阵A就是可逆的,A−1A^{-1}A−1称为A的逆矩阵2.逆矩阵求…

  • object.hashcode的作用_java的hashcode方法

    object.hashcode的作用_java的hashcode方法Java中的hashCode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值。其主要作用是为了配合基于散列的集合一起正常运行,这样的散列集合包括HashSet、HashMap以及HashTable。当集合要添加新的对象时,先调用这个对象的hashCode方法,得到对应的hashcode值,实际上在HashMap的具…

  • 无锡梅里旅游策划方案——中国第一锡宫!

    无锡梅里旅游策划方案——中国第一锡宫!无锡梅里旅游策划方案——中国第一锡宫!熊大寻旅游策划公司/文无锡梅里古都”,位于无锡新区梅村,是吴文化的发祥地。梅村古名梅里,早在三千二百多年前,西周周太王长子泰伯,为达成父王想立三子季历的愿望,偕二弟仲雍托辞采药,夜奔江南,拴马于枯树桩。到清早,见枯枝上梅花朵朵,喜出望外,顿悟此地当为宝地。于是为其取“梅里”之名,定居于此。勾吴之国,由此发端。因泰伯三让两家天下,孔子称其为“至德”,司马迁的…

  • AppSettings和ConnectionStrings的使用。[通俗易懂]

    AppSettings和ConnectionStrings的使用。[通俗易懂]引用:http://www.cnblogs.com/mikemao/archive/2009/02/02/1382694.htmlAppSettings是ASP.NET1.1时期用的,在.NETFramework2.0中,新增了ConnectionStrings.1.ConnectionStrings的使用<connectionS…

发表回复

您的电子邮箱地址不会被公开。

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