【状压DP】滚榜(P7519)

正题

P7519


题目大意

n个队伍,排名先按分数排序再按编号排序,每个队伍有一个初始分数 aia_iai,和一个附加分数 bib_ibi

对于一个合法的 bib_ibi 序列,按 bib_ibi 大小排序,从小到大把每个 bib_ibi 加进对应的 aia_iai 中,且每个 bib_ibi 加入后对应的点会成为排名第一的点

现在告诉你所有 bib_ibi 的和 m,问你对于所有合法的 bib_ibi,最后的排名有多少种


解题思路

考虑状压DP,设 fS,i,j,kf_{S,i,j,k}fS,i,j,k 为当前所有点是否添加的状态为 SSS,最后添加的点为 iiibi=jb_i=jbi=j,已经加了的 bbb 和为 kkk 的方案数

直接转移时间复杂度为 O(2nn2m2)O(2^nn^2m^2)O(2nn2m2),会TLE

考虑到答案的计算之和最后的排名有关,也就是和加入 bbb 的顺序有关(下文所有顺序都是指加入顺序中的先后),那么对于一种加入顺序,让所有点的 bib_ibi 尽量小(除最后一个点)

因为 bib_ibi 是单调递增的,所以考虑一个点加入 bib_ibi 时,让后面点的 bbb 都加上 bib_ibi,那么就可以保证 bib_ibi 是单调递增的

综上,可以优化掉最后添加的点 iii 的附加值 bib_ibi,那么设 fS,i,kf_{S,i,k}fS,i,k 表示状态为S,最后添加的点为 iiibib_ibi 的和为 kkk ,然后直接转移即可

时间复杂度 O(2nn2m)O(2^nn^2m)O(2nn2m),因为很多状态都跑不到,所以实际上能过


code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 14
using namespace std;
ll n,m,mx,sum,ans,a[N],f[1<<N][N][505];
int main()
{scanf("%lld%lld",&n,&m);for(ll i=1;i<=n;++i){scanf("%lld",&a[i]);if(a[i]>a[mx])mx=i;}f[0][mx][0]=1;//要保证第一个点加到比最大的点大for(ll S=0;S<(1<<n)-1;++S){sum=0;for(ll i=1;i<=n;++i)if(!(S&(1<<i-1)))sum++;//计算后面有多少个点for(ll k=0;k<=m;++k)for(ll i=1;i<=n;++i)	if(f[S][i][k])for(ll j=1;j<=n;++j)if(!(S&(1<<j-1)))if(k+sum*max(a[i]-a[j]+(j>i),0ll)<=m)f[S|(1<<j-1)][j][k+sum*max(a[i]-a[j]+(j>i),0ll)]+=f[S][i][k];}for(ll i=1;i<=n;++i)for(ll j=0;j<=m;++j)//多出来的部分放到最后一个点ans+=f[(1<<n)-1][i][j];printf("%lld",ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P4480-[BJWC2018]餐巾计划问题【三分,贪心】

正题 题目链接:https://www.luogu.com.cn/problem/P4480 题目大意 nnn天&#xff0c;第iii天需要aia_iai​个餐巾。 每个餐巾价格为ppp&#xff0c;使用完后有两种清洗方法 清洗m1m_1m1​天&#xff0c;费用为c1c_1c1​清洗m2m_2m2​天&#xff0c;费用为c2c_2c2​ 求满足所…

BotSharp v0.2 发布, 支持微信智能回复

BotSharp v0.2 主要是针对微信的消息平台做整合&#xff0c;让.NET开发者可以轻松的搭建基于NLU自然语言理解的智能回复功能&#xff0c;BotSharp.Channel.Weixin模块负责和微信的公众号平台对接&#xff0c;接收消息通知&#xff0c;并能消息产生智能回复&#xff0c;回复的内…

P2852 [USACO06DEC]Milk Patterns G

题目描述 Farmer John has noticed that the quality of milk given by his cows varies from day to day. On further investigation, he discovered that although he can’t predict the quality of milk from one day to the next, there are some regular patterns in th…

codeforces1467 E. Distinctive Roots in a Tree(树上差分)

E. Distinctive Roots in a Tree 树上差分 如果当前节点u的某一棵子树中的某个节点的值和当前节点相同&#xff0c;那么除了当前节点这一棵子树节点&#xff0c;其他节点&#xff08;其他子树以及u上面的节点&#xff09;一定不满足要求。 如果当前节点子树之外的节点&#x…

【图论】旅行者(P5304)

正题 P5304 题目大意 给你一个有向图以及k个关键点&#xff0c;问你关键点之间最短路距离的最小值 解题思路 考虑两个不同点二进制下必定有一位不同 枚举每一位&#xff0c;把该位为1的作为起点跑最短路&#xff0c;然后对于每个为0的点计算答案&#xff0c;反过来同理 时…

c# 弹性和瞬态故障处理库Polly 学习

关于PollyPolly是一个基于.NET的弹性及瞬态故障处理库,允许开发人员以顺畅及线程安全的方式执行重试(Retry)、断路(Circuit Breaker)、超时(Timeout)、隔离(Bulkhead Isolation)和回退策略(Fallback ).Polly适用于 .NET 4.0, .NET 4.5 和.NET Standard 1.1。以上是官方文档对po…

CF444C-DZY Loves Colors【线段树,set】

正题 题目链接:https://www.luogu.com.cn/problem/CF444C 题目大意 nnn个物品第iii个颜色为iii&#xff0c;权值为000。要求支持mmm次操作 给出l,r,xl,r,xl,r,x&#xff0c;对于所有区间[l,r][l,r][l,r]中的物品&#xff0c;如果颜色为ccc&#xff0c;那么该位置的权值加上∣…

codeforces1473 E.Minimum Path(分层图最短路)

E - Minimum Path 分层图最短路 第一个分层图 第0层就是按照题中给的点连边&#xff0c;从第0层到第1层我们连一条边权是0的边&#xff0c;从第1层到第2层连一条边权是原先边权2倍的边&#xff0c;当然第1层以及第2层之间按照原图连边。 第二个分层图 第0层就是按照题中给的点…

【博弈】取石子游戏(P2599)

正题 P2599 题目大意 给n堆石子&#xff0c;第 i 堆有 aia_iai​ 个石子&#xff0c;每次可以从最左边或者最右边的一堆里面取若干个&#xff0c;两个人轮流取&#xff0c;问先手是否存在必胜策略 解题思路 设 li,jl_{i,j}li,j​ 为在 [i,j][i,j][i,j] 右边添加一堆大小 li,…

2020牛客国庆集训派对day8

牛客网链接 文章目录Easy Chess题意&#xff1a;题解&#xff1a;Easy Problemset题意题解&#xff1a;Shuffle Cards题解&#xff1a;Diff-prime Pairs题意题解&#xff1a;代码&#xff1a;Easy Chess 题意&#xff1a; 通过n步从左下角走到右上角&#xff0c;每次移动都是…

TechEmpower最新一轮的性能测试出炉,ASP.NET Core依旧表现不俗

TechEmpower在10月30发布最新一轮&#xff08;Round 17&#xff09;针对“Web Framework Benchmarks”的性能测试报告&#xff0c;ASP.NET Core依旧表现不俗&#xff0c;在一些指标上甚至是碾压其他主流Web框架。为此我们做了一个简单的统计&#xff0c;看看ASP.NET Core和其他…

P6076-[JSOI2015]染色问题【组合数学,容斥】

正题 题目链接:https://www.luogu.com.cn/problem/P6076 题目大意 给出n∗mn*mn∗m的网格&#xff0c;ccc种颜色涂色要求 每个格子可以染色也可以不染每一行每一列至少有一个格子被染每个颜色至少用一次 1≤n,m,c≤4001\leq n,m,c\leq 4001≤n,m,c≤400 解题思路 一个比较简…

E - Escape from the Island(最短路+dp)

E - Escape from the Island 大佬题解&#xff0c;码风真的爱了 状态表式&#xff1a;f(u,j)f(u,j)f(u,j)当前在uuu点&#xff0c;已经划了jjj步时离终点的最短距离 状态转移&#xff1a; 主动划一步min&#xff0c;转移到下一个点vvv f(u,j)f(v,j1)1,(u,v)∈E,(u,v)∈Ef(u,j…

国内开源社区巨作AspectCore-Framework入门

前些天和张队(善友),lemon(浩洋),斌哥(项斌)等MVP大咖一块儿吃饭,大家聊到了lemon名下的AOP这个项目,我这小白听得一脸懵逼,后面回来做了一下功课,查了下资料,在lemon的Github上把这个项目学习了一下,收获颇丰,让我这个没有接触过AOP的Coder叹为观止,陷入了对lemon的深深崇拜,在…

【数论】Product(P5221)

正题 P5221 题目大意 求 ∏i1n∏j1nlcm(i,j)gcd(i,j)\prod_{i1}^n\prod_{j1}^n\frac{lcm(i,j)}{gcd(i,j)}i1∏n​j1∏n​gcd(i,j)lcm(i,j)​ 解题思路 ∏i1n∏j1nlcm(i,j)gcd(i,j)\prod_{i1}^n\prod_{j1}^n\frac{lcm(i,j)}{gcd(i,j)}i1∏n​j1∏n​gcd(i,j)lcm(i,j)​ ∏i1n∏…

STL的可持久化数组

rope是一种可持久化数组&#xff0c;可持久化平衡树&#xff0c;采用块状链表实现 #include<ext/rope> using namespace __gnu_cxx; rope<int>a;rope就是一个用可持久化平衡树实现的“重型”string 库中模板计算基本和string一样简单 各种操作的复杂度都是O(log…

HarmonyOs4.0基础(一)

目录 一、HarmonyOs系统定义 1.1系统的技术特性(三大特征) 1.1.1、硬件互助、资源共享 1.1.2、一次开发、多端部署(面向开发者) 1.1.3、统一OS&#xff0c;弹性部署(支持多种API&#xff1a;ArkTs、JS、C/C、Java) 1.2、系统的技术架构 二、Harmony OS项目搭建 2.1、(D…

P4643-[国家集训队]阿狸和桃子的游戏【结论】

正题 题目链接:https://www.luogu.com.cn/problem/P4643 题目大意 给出nnn个点mmm条边的无向图&#xff0c;两个人轮流选择一个未被选择的点加入点集。 然后每个人的权值为选出的点的导出子图点权加边权和。 两个人都希望自己的权值减去对方的权值最大 求先手的权值减去后…

C. Code a Trie(Trie+dfs+贪心)

C. Code a Trie 大佬题解&#xff0c;代码基本就是抄的 对于每一个值计算所有串的LCA&#xff0c;也就是最长公共前缀&#xff0c;将该节点&#xff08;Trie树的节点&#xff09;标记&#xff0c;对于这些字符串在LCA下面的点一定不存在&#xff08;如果存在他们不会返回相同…

swagger文档转换为WebApiClient声明式代码

1 swagger简介Swagger是一个规范且完整的框架&#xff0c;提供描述、生产、消费和可视化RESTful Web Service。其核心是使用json来规范描述RESTful接口&#xff0c;另外有提供UI来查看接口说明&#xff0c;并有一套生成不同语言的客户端调用代码生成器。1.1 对Api提供者自顶向下…