正题

题目链接:http://noip.ybtoj.com.cn/contest/90/problem/3


解题思路

有nnn道题,mmm个人。一些题目是让某些人一定得分,一些题目是让某些人可以能得分。

求排名前sss的人选出ttt个人,可能的集合个数。


解题思路

显然我们如果要判断一个集合UUU能否被选择,那么肯定是这个集合内的人选最高分,其他的最低分。

那我们可以按照最高分数值从大到小排序,然后枚举一个iii表示选择这个iii且这个iii后面的都不选择。那么这个iii肯定是这ttt个人里排名最后的,那么我们要从iii前面选t−1t-1t−1个然后要求大于iii的最大值的分数不到sss个,考虑dpdpdp这个iii前面的选择方案。

设fi,j,kf_{i,j,k}fi,j,k​表示选到第iii个,现在选择了jjj个,大于maximax_imaxi​的没有选择的minminmin值有kkk个的方案。

时间复杂度O(n4)O(n^4)O(n4)


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=55;
ll n,m,s,t,ans,a[N],mx[N],mi[N],p[N],f[N][N][N];
char str[N];
bool cmp(ll x,ll y)
{return mx[x]>mx[y];}
int main()
{freopen("ctsc.in","r",stdin);freopen("ctsc.out","w",stdout);scanf("%lld",&n);for(ll i=1;i<=n;i++)scanf("%lld",&a[i]);scanf("%lld",&m);for(ll i=1;i<=m;i++){scanf("%s",str+1);for(ll j=1;j<=n;j++){if(a[j]<0)mx[i]+=-a[j]*(str[j]=='Y');else mx[i]+=a[j]*(str[j]=='Y'),mi[i]+=a[j]*(str[j]=='Y');}mx[i]=100*mx[i]+m-i;mi[i]=100*mi[i]+m-i;p[i]=i;}scanf("%lld%lld",&s,&t);sort(p+1,p+1+m,cmp);for(ll i=1;i<=m;i++){ll k=s-t;for(ll j=i+1;j<=m;j++)if(mx[p[i]]<mi[p[j]])k--;memset(f,0,sizeof(f));f[0][0][0]=1;for(ll j=1;j<i;j++)for(ll h=0;h<t;h++)for(ll g=0;g<=k;g++){//f[j][h][g]表示选到第i个,现在选了h个,有g个比它大 if(g&&mi[p[j]]>mx[p[i]])f[j][h][g]+=f[j-1][h][g-1];else if(mi[p[j]]<mx[p[i]]) f[j][h][g]+=f[j-1][h][g];if(h)f[j][h][g]+=f[j-1][h-1][g];}for(ll g=0;g<=k;g++)ans+=f[i-1][t-1][g];}printf("%lld",ans);return 0;
}

YbtOJ#20065-[NOIP2020模拟赛B组Day4]模拟比赛【dp】相关推荐

  1. YbtOJ#20063-[NOIP2020模拟赛B组Day4]古老谜题【统计】

    正题 题目链接:http://noip.ybtoj.com.cn/contest/90/problem/1 题目大意 给出一个010101序列,求有多少对(l,p,r)(l,p,r)(l,p,r)使得 ...

  2. YbtOJ#20066-[NOIP2020模拟赛B组Day4]筹备计划【线段树,树状数组】

    正题 题目链接:http://noip.ybtoj.com.cn/contest/90/problem/4 题目大意 一个集合[1,n]∈S[1,n]\in S[1,n]∈S,和一个序列aaa.有操作 ...

  3. YbtOJ#20064-[NOIP2020模拟赛B组Day4]预算缩减【树形dp】

    正题 题目链接:http://noip.ybtoj.com.cn/contest/90/problem/2 题目大意 nnn个点的一棵树,求删掉一些边让剩下的连通块大小不小于kkk,求方案数. 解题思 ...

  4. YbtOJ#20082-[NOIP2020模拟赛B组Day8]导出子图【dp】

    正题 题面链接:https://www.ybtoj.com.cn/contest/62/problem/4 题目大意 nnn个区间,如果第xxx个区间和第yyy个区间有交集那么xxx到yyy直接就有一 ...

  5. 2021.7.16模拟赛C组总结(转载XJY)

    2021.7.16模拟赛C组总结 这次比赛,题虽然不难,但丝毫不影响我打挂-唉- 0+100+50+0=150 题解 T1 题目描述: ​ 鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小 ...

  6. 2021.08.09【普及组】模拟赛C组比赛总结

    文章目录 2021.08.09[普及组]模拟赛C组比赛总结 写在前面: T1 :[普及模拟]生产武器 题目大意: 正解: T2 :[普及模拟]城市连接 题目大意: 正解: T3 :[普及模拟]抢救文件 ...

  7. 2021-07-17【普及组】模拟赛C组

    文章目录 2021.07.17[普及组]模拟赛C组 写在前面: T1: 题目大意: 正解: T2: 题目大意: 正解: T3: 题目大意: 正解: T4: 题目大意: 正解: 2021.07.17[普 ...

  8. 第十二届蓝桥杯(2021年)模拟赛 Python组(第一期) 题目+个人解答

    填空题 填空题-1 [问题描述] 如東整数a是整数b的整数倍,则称b是a的约数. 请问,有多少个正整数是2020的约数. [答案提交] 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一 ...

  9. 蓝桥杯校内模拟赛_C++组

    蓝桥杯校内模拟赛 填空题 填空题比较简单,只需要在空格中填写整数答案即可: 在计算机存储中,15.125GB是多少MB? 解题思路: 1GB=1024MB,打开系统计算器计算即可 答案: 15488 ...

最新文章

  1. 18常用web开发 浮动层、提示层代码下载
  2. java工作流引擎证照库类型的流程设计 实现方案与演示案例
  3. 返回或输出类型为 unsigned 8-bit type(8U) 的函数积累!
  4. 【Linux 内核】调度器 ③ ( sched_class 调度类结构体分析 | next 字段 | enqueue_task 函数 | dequeue_task 函数 )
  5. kafka 可视化工具_两小时带你轻松实战SpringBoot+kafka+ELK分布式日志收集
  6. 一、使用两台Centos7系统搭建Hadoop-3.1.4完全分布式集群
  7. 捷波朗STORM耳机设置中文_2020年 除了Airpods pro以外无线降噪蓝牙耳机如何选?五款热门入耳式蓝牙降噪耳机推荐...
  8. appium-andriod自动化实现注意项
  9. Servlet 介绍
  10. kafka python client:PyKafka vs kafka-python
  11. Less 颜色操作函数Mix的计算方法
  12. CSPNet: A New Backbone that can Enhance Learning Capability of CNN
  13. 交叉报表制作--Smartbi报表工具一步完成
  14. 使用pandoc 生成带中文的pdf
  15. pr导入预设发现带入原片,选择合适序列预设即可
  16. 我的HTML学习------表格的基本使用
  17. MATLAB数据转化num,str,cell,char
  18. 上海一级计算机试卷,上海计算机一级考试试题及答案
  19. Codeforces 892A. Greed
  20. OC10_代理反向传值

热门文章

  1. 华为交换机不同网段互访_华为S5700系列交换机使用高级ACL限制不同网段的用户互访...
  2. python浪漫代码_五行Python代码实现批量抠图
  3. html2canvas改成同步,html2canvas转为图片异步转同步问题(记录)
  4. linux 7.0查看防火墙状态,centos7查看防火墙状态
  5. linux perl模块检测,Linux有问必答:如何用Perl检测Linux的发行版本
  6. mysql 用户概念_传输概念 – db对象的用户/组/权限从mysql到postgresql
  7. spring boot 缓存_Spring Boot 集成 Redis 实现数据缓存
  8. powercfg -h off_驭鲛记的主演会是谁?肖战关系特别好的艺人朋友呢?白敬亭和吴映洁有没有故事啊?高伟光是不是隐婚生子了?讲讲管h和马司令呗?...
  9. iphone4 base64 mp3 无法解析 html5,javascript - 如何使用HTML5在firefox上播放base64音频数据? - 堆栈内存溢出...
  10. 数据结构——最小生成树之克鲁斯卡尔算法(Kruskal)