关注
#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是第几个。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 有深度的简历长什么样? #
5794次浏览 114人参与
# 你都用AI做什么 #
2345次浏览 61人参与
# 去年的flag与今年的小目标 #
2171次浏览 68人参与
# 实习,不懂就问 #
146545次浏览 1302人参与
# 26年哪些行业会变好/更差 #
3036次浏览 51人参与
# 卷__卷不过你们,只能卷__了 #
1484次浏览 30人参与
# 入职第一天 #
4366次浏览 51人参与
# 写论文的崩溃时刻 #
1490次浏览 35人参与
# 哪些公司在招寒假实习? #
1602次浏览 28人参与
# 一人分享一道面试手撕题 #
8558次浏览 445人参与
# 你不能接受的企业文化有哪些 #
2795次浏览 59人参与
# 听到哪句话就代表面试稳了or挂了? #
240611次浏览 1681人参与
# 应届生应该先就业还是先择业 #
161004次浏览 810人参与
# 你的国庆怎么过 #
109445次浏览 764人参与
# 应届生第一份工作最好去大厂吗? #
124105次浏览 1102人参与
# 你收到了团子的OC了吗 #
1493859次浏览 11814人参与
# 实习在多还是在精 #
78428次浏览 495人参与
# 秋招你被哪家公司挂了? #
999738次浏览 7678人参与
# 薪资要看总包还是月薪? #
38042次浏览 296人参与
# 双非本科的出路是什么? #
193839次浏览 1520人参与
查看3道真题和解析
三奇智元机器人科技有限公司公司福利 74人发布