http://www.lydsy.com/JudgeOnline/problem.php?id=3139

队伍的顺序不会影响结果

将队伍的得分情况作为状态,记忆化搜索

就是先搜索第一只队伍的得分情况,即为他分配分数

当第一只队伍的分数分配完时,它与其他队伍的比拼会使其他队伍也分配到了一定的分数

将其他队伍分配到的分数 这个状态 哈希

然后第二支队……,这就是子问题

啊啊啊,我也不知道我在说啥了

myl考场AC tql!!!

#include<algorithm>
#include<cstring>
#include<cstdio>
#include<map> #define N 11 using namespace std; typedef long long LL; const int mod=1e9+; int n,w[N]; map<LL,int>mp[N]; LL gethash(int *b,int p)
{
LL S=;
for(int i=p;i<=n;++i) S=S*+b[i];
return S;
} int dfs(int *val,int l,int r)
{
if(l==r)
{
if(val[l]) return ;
if(l==n) return ;
int b[N];
memcpy(b,val,sizeof(b));
sort(b+l+,b+n+);
LL S=gethash(b,l+);
if(mp[l+].find(S)==mp[l+].end()) mp[l+][S]=dfs(b,l+,n);
return mp[l+][S];
}
if(*(r-l)<val[l]) return ;
int tot=;
if(val[l]>=)
{
val[l]-=;
tot+=dfs(val,l,r-);
tot-=tot>=mod ? mod : ;
val[l]+=;
}
if(val[l] && val[r])
{
val[l]--; val[r]--;
tot+=dfs(val,l,r-);
tot-=tot>=mod ? mod : ;
val[l]++; val[r]++;
}
if(val[r]>=)
{
val[r]-=;
tot+=dfs(val,l,r-);
tot-=tot>=mod ? mod : ;
val[r]+=;
}
return tot;
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;++i) scanf("%d",&w[i]);
printf("%d",dfs(w,,n));
}

bzoj千题计划294:bzoj3139: [Hnoi2013]比赛的更多相关文章

  1. bzoj千题计划300:bzoj4823: [Cqoi2017]老C的方块

    http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色 ...

  2. bzoj千题计划142:bzoj3144: [Hnoi2013]切糕

    http://www.lydsy.com/JudgeOnline/problem.php?id=3144 如果D=2 ,两个点,高度为4,建图如下 #include<queue> #inc ...

  3. bzoj千题计划295:bzoj3140: [Hnoi2013]消毒

    http://www.lydsy.com/JudgeOnline/problem.php?id=3140 如果只有两维,那就是二分图最小点覆盖 现在是三维,但是a*b*c<=5000,说明最小的 ...

  4. bzoj千题计划293:bzoj3142: [Hnoi2013]数列

    http://www.lydsy.com/JudgeOnline/problem.php?id=3142 如果已知数列的差分数列a[1]~a[k-1] 那么这种差分方式对答案的贡献为 N-Σ a[i] ...

  5. bzoj千题计划290:bzoj3143: [Hnoi2013]游走

    http://www.lydsy.com/JudgeOnline/problem.php?id=3143 计算每条边经过的概率e[] 然后经过概率多的分配的编号大,经过概率少的分配的编号小 如何计算边 ...

  6. bzoj千题计划196:bzoj4826: [Hnoi2017]影魔

    http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j ...

  7. bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪

    http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...

  8. bzoj千题计划177:bzoj1858: [Scoi2010]序列操作

    http://www.lydsy.com/JudgeOnline/problem.php?id=1858 2018 自己写的第1题,一遍过 ^_^ 元旦快乐 #include<cstdio> ...

  9. bzoj千题计划317:bzoj4650: [Noi2016]优秀的拆分(后缀数组+差分)

    https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式 ...

随机推荐

  1. 《Effective Java》学习笔记 —— 通用程序设计

    本章主要讨论局部变量.控制结构.类库.反射.本地方法的用法及代码优化和命名惯例. 第45条 将局部变量的作用域最小化 * 在第一次使用的它的地方声明局部变量(就近原则). * 几乎每个局部变量的声明都 ...

  2. 前端项目模块化的实践1:搭建 NPM 私有仓库管理源码及依赖

    以下是关于前端项目模块化的实践,包含以下内容: 搭建 NPM 私有仓库管理源码及依赖: 使用 Webpack 打包基础设施代码: 使用 TypeScript 编写可靠类库 使用 TypeScript ...

  3. 微信小程序选择并上传图片

      上传图片 API: wx.chooseImage() 和 wx.uploadFile() wx.chooseImage({ count: 1, // 默认9 sizeType: ['origina ...

  4. [转]申瓯 JSY2000-06 程控电话交换机呼叫转移设置

    说明:若申瓯程控电话交换机分机有事不在位置上或遇忙分机正忙时为使某些重要来话不丢失,可设置将呼入本机的电话转移至其他分机及公网固定电话或手机.电话交换机使用了本功能不管分机用户在什么地方都能接听到办公 ...

  5. RabbitMq基础教程之基本概念

    RabbitMq基础教程之基本概念 RabbitMQ是一个消息队列,和Kafka以及阿里的ActiveMQ从属性来讲,干的都是一回事.消息队列的主要目的实现消息的生产者和消费者之间的解耦,支持多应用之 ...

  6. ROCKETMQ——2主2从集群部署

    1.压缩包准备两台服务器镜像操作cd /optmkdir softcd soft将两个压缩包复制到 soft目录unzip apache-maven-3.2.2-bin.zipunzip rocket ...

  7. MySQL——约束(constraint)详解

    该博客说说关于数据库中一个重要的知识点——约束 一.什么是约束约束英文:constraint 约束实际上就是表中数据的限制条件 二.约束作用表在设计的时候加入约束的目的就是为了保证表中的记录完整和有效 ...

  8. 说说 Python 的变量以及简单数据类型

    1 变量 先来看一个示例: news="我国第一个人工智能规划问世"print(news) 运行结果: 可以看出使用 Python 定义变量很简单,甚至都不需要指定变量的类型. 1 ...

  9. 团队作业Week6:规格说明书编写

    (1)请分析你们团队项目的典型用户和场景,并写一个团队博客发布你们团队项目的功能规格说明书. (2)再写一个博客团队博客发布你们项目的设计文档(技术规格说明书). 截止时间:2015-11-03

  10. 基于 Java Web 的毕业设计选题管理平台--系统设计和任务分配

    一.团队作业:http://www.yzhiliao.com/course/70/task/440/show 二.个人作业: 1.项目的代码托管 (1).GitHub 地址:https://githu ...