关注
#include<iostream>
#include<vector>
using namespace std;
//string s;
void f(int x,int y,int k,vector<vector<int>> a,string s);
int main()
{
int x=10;
int y=12;
vector<vector<int>> a(y+1,vector<int>(x+1,0));
for(int i=0;i<=y;i++)
a[i][0]=1;
for(int i=0;i<=x;i++)
a[0][i]=1;
for(int i=1;i<=y;i++)
for(int j=1;j<=x;j++)
a[i][j]=a[i-1][j]+a[i][j-1];
for(int i=0;i<=y;i++)
{
cout<<i<<"行: ";
for(int j=0;j<=x;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
string s="";
f(x,y,111,a,s);
return 0;
}
void f(int x,int y,int k,vector<vector<int>> a,string s)
{
if(k>a[y][x]) {cout<<"too big K"<<endl;return;}
if(x==0||y==0)
{for(int i=0;i<x;i++)
s.push_back('a');
for(int i=0;i<y;i++)
s.push_back('z');
cout<<s<<endl;
return;
}
int nu=0;
for(int i=0;i<=x;i++)
if(nu+a[y-1][i]>=k)
{for(int j=0;j<x-i;j++)
s.push_back('a');
s.push_back('z');
f(i,y-1,k-nu,a,s);break;
}
else nu+=a[y-1][i];
}
跟楼主思路差不多,C++的,X Y分别代表a和z的个数,k是第几个。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 学历VS实习,哪个更重要? #
7159次浏览 115人参与
# 发工资后,你做的第一件事是什么 #
100196次浏览 332人参与
# 厦门银行科技岗值不值得投 #
16442次浏览 404人参与
# 牛油的搬砖plog #
189092次浏览 1267人参与
# AI替代不了什么? #
967次浏览 34人参与
# 工作上你捅过哪些篓子? #
69153次浏览 333人参与
# 烂工作和没工作哪个更痛苦? #
935次浏览 33人参与
# 产品人求职现状 #
361134次浏览 2601人参与
# 一人分享一道面试手撕题 #
113102次浏览 2768人参与
# 春招至今,你收到几个面试了? #
3612次浏览 23人参与
# uu们,春招你还来吗? #
68869次浏览 906人参与
# 面试中,你被问过哪些奇葩问题? #
99145次浏览 1413人参与
# 面试紧张时你会有什么表现? #
35566次浏览 241人参与
# 实习生应该准时下班吗 #
349179次浏览 1752人参与
# 你的实习什么时候入职 #
368109次浏览 2367人参与
# 牛友的志愿填报指南 #
63835次浏览 491人参与
# 关于春招你都做了哪些准备? #
145833次浏览 769人参与
# 机械校招之路总结 #
120248次浏览 2083人参与
# 90后北漂现状 #
36304次浏览 215人参与
# 网申一定要掌握的小技巧 #
20696次浏览 87人参与
# 机械人,签完三方你在忙什么? #
84286次浏览 267人参与