关注
#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是第几个。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 从顶到拉给所有面过的公司评分 #
19310次浏览 176人参与
# 机械人春招想让哪家公司来捞你? #
357306次浏览 3109人参与
# 为了求职,我做过的疯狂伪装 #
12265次浏览 223人参与
# 晒晒你的中秋福利 #
15150次浏览 98人参与
# 职场破冰,你们都聊什么? #
7103次浏览 69人参与
# 大家实习每天都在干啥 #
89005次浏览 518人参与
# 机械笔面试考察这些知识点 #
10410次浏览 96人参与
# 你的公司给实习生发中秋礼物吗 #
1839次浏览 30人参与
# 工作压力大怎么缓解 #
105127次浏览 1052人参与
# bilibili求职进展汇总 #
88805次浏览 806人参与
# 广联达求职进展汇总 #
10984次浏览 50人参与
# 机械人怎么评价今年的华为 #
208901次浏览 1524人参与
# 宣讲会你有哪些意向不到的收获 #
1323次浏览 21人参与
# 秋招OC许愿 #
346597次浏览 2527人参与
# 你面试被问到过哪些不会的问题? #
21474次浏览 810人参与
# 聊聊这家公司值得去吗 #
558118次浏览 3711人参与
# 电网笔面经互助 #
46698次浏览 431人参与
# 秋招的嫡长offer #
29912次浏览 279人参与
# 除了主业以外,你还有哪些其他收入? #
29402次浏览 284人参与
# 百度秋招提前批进度 #
150179次浏览 1767人参与