关注
#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是第几个。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
10-04 11:53
商洛学院 后端工程师 
点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你的mentor是什么样的人? #
10388次浏览 84人参与
# 毕业租房也有小确幸 #
140084次浏览 4490人参与
# 未岚大陆求职进展汇总 #
38876次浏览 122人参与
# 帮我看看,领导说这话什么意思? #
13068次浏览 76人参与
# 牛友的志愿填报指南 #
33192次浏览 174人参与
# 怎么给家人解释你的工作? #
6120次浏览 48人参与
# 平安产险科技校招 #
2576次浏览 0人参与
# 得物app工作体验 #
26757次浏览 58人参与
# 租房前辈的忠告 #
258838次浏览 7112人参与
# 26届秋招公司红黑榜 #
22132次浏览 79人参与
# 求职低谷期你是怎么度过的 #
9215次浏览 175人参与
# 国企还是互联网,你怎么选? #
166751次浏览 1157人参与
# 校招泡的最久的公司是哪家? #
9231次浏览 58人参与
# 求职中的尴尬瞬间 #
1049次浏览 17人参与
# 你觉得mentor喜欢什么样的实习生 #
14358次浏览 379人参与
# 从哪些方向判断这个offer值不值得去? #
10734次浏览 125人参与
# 度小满求职进展汇总 #
11611次浏览 61人参与
# 牛客树洞,我想对你说 #
3569次浏览 59人参与
# 小红书求职进展汇总 #
114168次浏览 928人参与
# 没有家庭托举的我是怎么找工作的 #
16817次浏览 201人参与
# 实习必须要去大厂吗? #
148960次浏览 1551人参与
# 毕业后不工作的日子里我在做什么 #
208285次浏览 1654人参与