题: https://nanti.jisuanke.com/t/41414

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef __int128 ll;
  4. const int M=;
  5. const int mod=1e9+;
  6. ll dp[M][M];
  7. int a[M];
  8. int n;
  9.  
  10. inline ll read() {
  11. ll x = , f = ;
  12. char c = getchar();
  13. for (; !isdigit(c);c = getchar()) if (c == '-') f = -;
  14. for (; isdigit(c); c = getchar()) x = x * + c - '';
  15. return x * f;
  16. }
  17. ll dfs1(int pos,int up){
  18. if(pos==n+)
  19. return ;
  20. if(~dp[pos][up])
  21. return dp[pos][up];
  22. ll sum=;
  23. for(int i=;i<=up;i++){
  24. sum+=dfs1(pos+,max(up,i+));
  25. }
  26. dp[pos][up]=sum;
  27. return sum;
  28. }
  29. void dfs2(int pos,int up,ll r){
  30. if(pos==n+){
  31. for(int i=;i<=n;i++)
  32. putchar(a[i]+'A');
  33. puts("");
  34. return ;
  35. }
  36. for(int i=;i<=up;i++){
  37. int nowup=max(i+,up);
  38. if(r<=dp[pos+][nowup]){
  39. a[pos]=i;
  40. dfs2(pos+,nowup,r);
  41. break;
  42. }
  43. else
  44. r-=dp[pos+][nowup];
  45. }
  46. }
  47. int main(){
  48. int t;
  49. scanf("%d",&t);
  50. for(int ca=;ca<=t;ca++){
  51. scanf("%d",&n);
  52. ll k=read();
  53. for(int i=;i<M;i++)
  54. for(int j=;j<M;j++)
  55. dp[i][j]=-;
  56. for(int i=;i<M;i++)
  57. dp[n+][i]=;
  58. // cout<<"!!"<<endl;
  59. dfs1(,);
  60. printf("Case #%d: ",ca);
  61. dfs2(,,k);
  62. }
  63. return ;
  64. }

F. Rhyme scheme的更多相关文章

  1. 2019上海网络赛 F. Rhyme scheme 普通dp

    Rhyme scheme Problem Describe A rhyme scheme is the pattern of rhymes at the end of each line of a p ...

  2. The Preliminary Contest for ICPC Asia Shanghai 2019 F. Rhyme scheme(dp)

     题意:给你一个n和k 要你找到长度为n 字典序第k小的字符串 定义一个字符串合法:第i的字符的范围只能是前i-1个字符中的最大值+1 思路:我们dp[n][i][j]表示长度为n 在第i位 最大值为 ...

  3. 2019 上海网络赛 F Rhyme scheme (字典树DP)

    题目:https://nanti.jisuanke.com/t/41414 题意:求长度为n的第k个bell number  ,  就是第i位的选取范围在 1-(i-1)位的最大值 +1,第一位固定为 ...

  4. [2019上海网络赛F题]Rhyme scheme

    题目链接 题意,求出合法的长度为n的字典序第k小字符串,合法的定义为除了最后一位,每一位的取值范围为'A'到'A'+pos-1,而最后一位的取值范围'A'到当前字符串最大值+1. 队友tql,Orz ...

  5. The Preliminary Contest for ICPC Asia Shanghai 2019

    传送门 B. Light bulbs 题意: 起初\(n\)个位置状态为\(0\),\(m\)次操作,每次操作更换区间状态:\(0\)到\(1\),\(1\)到\(0\). 共有\(T,T\leq 1 ...

  6. POJ1671 Rhyme Schemes

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1776   Accepted: 984   Special Judge De ...

  7. scheme一页纸教程

    这是一个大学教授写的,非常好,原文:http://classes.soe.ucsc.edu/cmps112/Spring03/languages/scheme/SchemeTutorialA.html ...

  8. 算法语言Scheme修订6报告 R6RS简体中文翻译

    算法语言Scheme修订6报告 R6RS简体中文翻译 来源 https://r6rs.mrliu.org/   MICHAEL SPERBERR. KENT DYBVIG, MATTHEW FLATT ...

  9. Oracle导出excel

    oracle导出excel(非csv)的方法有两种,1.使用sqlplus  spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件: ...

随机推荐

  1. 2019.1的IDEA的Pulgins无法使用解决

    第一步 第二步

  2. shell计数

    cat 20171015_datarecord.txt| awk -F '_' '{a[$1]++} END {for (i in a) {print i,a[i]|"sort -k 2&q ...

  3. Thread--synchronized不能被继承?!?!!!

    参考:http://bbs.csdn.net/topics/380248188 其实真相是这样的,“synchronized不能被继承”,这句话有2种不同意思,一种是比较正常的.很容易让人想到的意思: ...

  4. Luogu P3031 高于中位数

    定义序列\(x_i = f([H_i >=x])\;\;\;\;其中f(0) = -1,f(1) = 1\),那么区间[i,j]满足条件当且仅当sum_j-sum_{i-1} > 0,即s ...

  5. MQTT--Paho C Client 的实现和详解

    概述  在文章Paho - MQTT C Cient的实现中,我介绍了如何使用Paho开源项目创建MQTTClient_pulish客户端.但只是简单的介绍了使用方法,而且客户端的结果与之前介绍的并不 ...

  6. h5-localStorage储存的使用

    <!-- localStorage的使用: 1.存储的内容大概20mb 2.不同浏览器不能共享数据,但是在同意浏览器的不同窗口中可以共享数据 3.永久生效,他的数据是储存在硬盘上,并不会随着页面 ...

  7. 调用支付宝接口的简单demo

    依赖: <!-- alipay-sdk-java 注意一下版本--> <dependency> <groupId>com.alipay.sdk</groupI ...

  8. Jupyer Notebook, Jupyter Lab 虚拟环境配置

    虚拟环境 conda create -n python36 python=3.6 使用以下命令激活: activate python36 Notebook 安装插件 conda install nb_ ...

  9. Python列出文件夹中的文件

    几乎所有的关于操作系统的内容可以在python 官方文档中找到:https://docs.python.org/3/library/os.html#module-os 其中os.path被单独列出:h ...

  10. 第一章 mysql 的架构与历史

    一.mysql 的逻辑架构 1.连接管理与安全性 2.优化与执行 二.并发控制 1.读写锁 2.锁粒度 三.事物 1.隔离级别 2.死锁 3.事物日志 四.多版本并发控制 五.Mysql 的存储引擎