题目链接:

https://www.codechef.com/problems/LEMOVIE

对于这种类似排列,并且有大小关系的贡献,一般要按从大到小或从小到大插入进行讨论

一组数有贡献当且仅当至少一个数被插到了最前面,那么就分情况进行讨论即可

就是插板法,把y个数插到x个数当中,把x个数之间的空隙看成盒子

因为是排列,所以插完以后还要乘一下阶乘

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<cmath>
using namespace std;
typedef long long ll;const int maxn = 210;
const int mod = 1e9+7;int T,n,m,q;
int a[maxn],b[maxn],c[maxn];
int f[maxn][maxn];
int C[1010][1010],jc[1010];bool cmp(int a,int b){return a>b;
}ll read(){ ll s=0,f=1; char ch=getchar(); while(ch<'0' || ch>'9'){ if(ch=='-') f=-1; ch=getchar(); } while(ch>='0' && ch<='9'){ s=s*10+ch-'0'; ch=getchar(); } return s*f;}int main(){T=read();jc[0]=1;for(int i=1;i<=1000;i++) jc[i]=1ll*jc[i-1]*i%mod;C[0][0]=1;for(int i=1;i<=1000;i++){C[i][0]=C[i][i]=1;for(int j=1;j<i;j++){C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;}}    while(T--){q=0;memset(f,0,sizeof(f)); n=read(),m=read();for(int i=1;i<=n;i++) a[i]=read();sort(a+1,a+1+n,cmp);for(int i=1;i<=n;i++){if(a[i]!=a[i-1]){b[++q]=a[i];c[q]=1;}else{++c[q];}}f[0][0]=1; int cnt=0;for(int i=1;i<=q;i++){for(int j=1;j<=m;j++){f[i][j]=(1ll*f[i-1][j]*jc[c[i]]%mod*C[c[i]+cnt-1][cnt-1]%mod+1ll*f[i-1][j-1]*jc[c[i]]%mod*C[c[i]+cnt-1][cnt]%mod)%mod;}cnt+=c[i];}int ans=0;for(int i=1;i<=m;i++) ans=(ans+f[q][i])%mod;printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/tuchen/p/10439705.html

codechef LEMOVIE dp相关推荐

  1. Codechef REBXOR[dp+字典树]

    解题思路:1.区间异或和可以搞前缀[or后缀]异或,xori=lra=pre[l]⊕pre[r]xor_{i=l}^{r}a=pre[l]\oplus pre[r]xori=lr​a=pre[l]⊕p ...

  2. CodeChef Cards, bags and coins [DP 泛型背包]

    https://www.codechef.com/problems/ANUCBC n个数字,选出其一个子集. 求有多少子集满足其中数字之和是m的倍数.n $\le$ 100000,m $\le$ 10 ...

  3. 【CodeChef】【DP】Count Subsequences

    CodeChef CSUBSQ Count Subsequences 题目大意 ◇题目传送门◆ 如果一个整数序列的各元素之和可以被给定整数 KKK 整数,则称这个序列是好的.给定整数序列 A1,A2, ...

  4. Team Task:DP

    我分到的任务是看ppt--so这篇blog大概就是我的任务进度了?好像还混杂了一些奇怪的求助-- 提纲篇 又名如何高效看PPT? 动态规划优化.pdf  By ExfJoe 2018/4/11 14: ...

  5. CodeChef 补题

    CodeChef 做题记录 The XOR-OR Dilemma Chef has an array AA of length NN such that Ai=iAi=i. In one operat ...

  6. dp,sp,px相互转化

    方法一: public int sp2px(float sp) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, ...

  7. [JS][dp]题解 | #打家劫舍(一)#

    题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...

  8. HDU 2084 数塔(DP)(JAVA版)

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  9. dp cf 20190615

    A. Timofey and a tree 这个不算是dp,就是一个思维题,好难想的思维题,看了题解才写出来的, 把点和边分开,如果一条边的两个点颜色不同就是特殊边,特殊边两边连的点就叫特殊点, 如果 ...

最新文章

  1. Jquery通过ajax请求NodeJS返回json数据
  2. java任务_Java 任务处理
  3. Mybatis学习总结二
  4. php中文网面试题_2020年PHP面试题大汇总(收藏)
  5. 自定义权限 android,如何在Android中使用自定义权限?
  6. 我们终于可以把 bug 留给子孙后代了
  7. WiFi的STA和AP模式指什么?
  8. JVM内存分配策略原
  9. 一:ActiveMQ知识整理
  10. kubernetes资源类型和kubectl命令总结
  11. 503.下一个更大元素II(力扣leetcode) 博主可答疑该问题
  12. android使用Charles抓包https请求
  13. Unity制作游戏自定义按键
  14. Xposed 企业微信 Hook 微信
  15. android高帧率模式,《和平精英》等五款游戏已经适配小米10系列高帧率模式
  16. NX的尺寸控制与半径补偿(重要)
  17. 绿色软件在Windows10中设置开机自启方法
  18. 微软希望使用以太坊区块链来打击盗版;腾讯再投 500 亿元资金助力共同富裕;IT 从业者被纳入新生代农民工 | EA周报...
  19. 浪潮优派jsp_j2ee课程设计心得.docx
  20. 解决flash后台运行缓慢的问题(帧频低的问题)

热门文章

  1. SAP SuccessFactor学习中心的通知机制
  2. ibatis的isequal_isequal ibatis
  3. 统考计算机2010年版,2010年计算机专业统考试题数据结构
  4. HA高可用完全分布式集群 HDFS搭建
  5. android 圆环温度控件,android 圆环倒计时控件
  6. php100 代码,php_100 PHP源代码 - 下载 - 搜珍网
  7. 清空缓存的命令_最实用的6个网络命令,网络故障不求人
  8. 疾风之刃的最新服务器,疾风之刃6月16日数据互通公告 数据互通服务器查询介绍...
  9. linux tcp参数调优,Linux TCP 性能调优笔记
  10. 是不是一个东西_迷你世界:一个金币就能买到稀有武器?这么良心的售货机在哪领...