首页 > 其他分享 >YC256B [ 20240312 CQYC省选模拟赛 T2 ] count

YC256B [ 20240312 CQYC省选模拟赛 T2 ] count

时间:2024-03-12 22:13:16浏览次数:20  
标签:count YC256B le 20240312 idx min sum 考虑 ldots

题意

对于一个长度为 \(n\) 的排列 \(P\)。

你需要求出所有满足条件的长度为 \(k\) 的数列 \(A\) 的个数。

  • \(A\) 单调不减且 \(1 \le A_i \le n\)
  • \(\min_{j = 1} ^ {A_1} P_j = \min_{j - 1} ^ {A_i} P_j\)

求出对于 \(P_1 = x\) 的所有排列的满足条件的 \(A\) 的个数。

Sol

设 \(m = \min_{i = 1} ^ {A_1} P_i\)。

不难发现 \(m\) 满足 \(m \le x\),对于所有的 \(A_i\) 满足 \(A_i \ge m\)。

考虑 \(1, 2, \ldots, m - 1\) 的位置,这些必须 \(\ge A_k\)。

集中注意力,对于一个排列,需要满足一系列位置关系。

考虑将这些限制用 差分 表示出来。

具体地,考虑 \(d_1 = idx_m - idx_x\)(\(idx\) 表示下标)。

\(d_2 = idx_{A_1} - idx_m\),\(d_3 = idx_{A_2} - idx_{A_1}\)。

\(\forall i, 3 \le i \le k + 1, d_i = idx_{A_{i - 1}} - idx_{A_{i - 2}}\)。

感觉这样的形式很优美,\(d\) 与 \(A\) 一一对应。

类似地,我们考虑使用 \(d_{k + 2} \to d_{k + m}\) 表示 \(1, 2, \ldots, m - 1\)。

不难发现,答案就是 \(d\) 的方案数。

考虑 \(d_i\) 需要满足哪些限制:\(\sum d_i \le n - 1, d_1, d_{k + 2}, \ldots d_{k + m} > 0\) 即可。

枚举 \(\sum d_i\) 太麻烦了!

直接把 \(n - \sum d_i\) 当成 \(d_{k + m + 1}\) 就行!

隔板法即可。

答案即为

\[\dbinom{n + k - 1}{i + k + 1} \times (i - 1)! \times (n - i - 1)! \]

复杂度:\(O(n)\)。

标签:count,YC256B,le,20240312,idx,min,sum,考虑,ldots
From: https://www.cnblogs.com/cxqghzj/p/18069452

相关文章

  • 20240312
    我的心理素质太差了!又破防了!晚自习看到yyn在写点什么,好奇地凑过去看,兔子也看到了,但是他不理解「fjb」这个名词,问我是什么。我不相信兔子这种接触成人内容这么多的人还不知道,我就说了一个「sextoy」(当然我不知道这么说对不对,没准又要被某位同学锐评了),兔子没理解到,我给他说自己......
  • 20240312打卡
    第三周第一天第二天第三天第四天第五天第六天第七天所花时间3h5h代码量(行)274256博客量(篇)11知识点了解完成AndroidStudio中原生数据库SQlite简单的CRUD本地数据库连接到远程数据库SQLite在Android应用中与远程MySQL数据......
  • Count Valid Paths in a Tree
    CountValidPathsinaTreeThereisanundirectedtreewith n nodeslabeledfrom 1 to n.Youaregiventheinteger n anda2Dintegerarray edges oflength n-1,where edges[i]=[ui,vi] indicatesthatthereisanedgebetweennodes ui and v......
  • ABC221H Count Multiset
    [ABC221H]CountMultiset以下内容多引用自[1]对应的文章分拆数表示将正整数\(N\)拆成若干正整数和的方案数\(P_N\),可以形式化的表示成以下方程的解的个数\[x_1+x_2+...+x_m=N,1\lex_1\lex_2\le...\lex_m\]其中我们通常将每个正整数\(x_i\)称......
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit
    1.问题描述实时验证和非实时验证的区别是什么?解决方案相同点:“手机号快速验证”和“实时验证”都是为了向用户发起获取手机号信息的请求。最终目的都是为了获取到手机号。这两种获取方式都需要完成“获取您的手机号”的Scope权限申请。区别:实时验证手机号:每次调用都会拉起授......
  • WordCount案例教学会遇到的bug
    《尚硅谷大数据Hadoop教程,hadoop3.x搭建到集群调优,百万播放》P74-78会遇到的bugWindows机上未配置Hadoop_HOME环境变量。解决方法:需要通过winutils来虚拟hadoop在windows的环境。Windows的IDEA中的所创建wc项目的jdk版本,与Linux虚拟机上的版本不一致,导致在虚拟机集群上,hado......
  • preempt_count
    preempt_count参考知乎staticinlinevoid__raw_spin_lock(raw_spinlock_t*lock){ preempt_disable(); spin_acquire(&lock->dep_map,0,0,_RET_IP_); LOCK_CONTENDED(lock,do_raw_spin_trylock,do_raw_spin_lock);}staticinlinevoid__raw_spin_unlock(ra......
  • JUC系列之(五)CountDownLatch闭锁
    CountDownLatch闭锁闭锁:延迟当前线程的进度,直到其他线程都执行完成当前线程才继续执行。示例:计算多线程操作耗费时间以下操作时无法正常计算多线程操作耗时的packagecom.atguigu.juc;publicclassTestCountDownLatch{publicstaticvoidmain(String[]args){......
  • 【Azure Logic App】添加 Storage Account 来提升 Logic App 的性能
    文章原文:https://techcommunity.microsoft.com/t5/azure-integration-services-blog/scaling-logic-app-standard-for-high-throughput-scenarios/ba-p/3866731ScalingLogicAppStandardforHighThroughputScenariosLogicApps提供了一个强大的平台,可以无缝集成各种服务,包......
  • C. Turtle Fingers: Count the Values of k
    原题链接题解暴力可不可以关键看时间复杂度x从1遍历到log2(1e6),y同理时间复杂度约为\(O(20·20)\)草code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;intmain(){llt;cin>>t;while(t--){lla,b,l;cin......