关注
#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-31 10:39
哈尔滨工业大学(威海) Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
123920次浏览 2080人参与
# 实习简历求拷打 #
16715次浏览 194人参与
# 作业帮求职进展汇总 #
84000次浏览 554人参与
# 秋招被挂春招仍然能投的公司 #
7815次浏览 108人参与
# 实习要如何选择和准备? #
128554次浏览 1486人参与
# 外包能不能当跳板? #
54291次浏览 256人参与
# 诺瓦星云求职进展汇总 #
233527次浏览 1736人参与
# mt对你说过最有启发的一句话 #
39072次浏览 454人参与
# 公司情报交流地 #
126698次浏览 1227人参与
# 为了找工作你花了哪些钱? #
74890次浏览 361人参与
# 你觉得机械有必要实习吗 #
69861次浏览 485人参与
# 投格力的你,拿到offer了吗? #
153446次浏览 822人参与
# 一起聊美团 #
307681次浏览 1767人参与
# 什么是优秀的实习经历 #
9417次浏览 226人参与
# 摸鱼被leader发现了怎么办 #
103911次浏览 659人参与
# 京东开奖 #
632094次浏览 3180人参与
# 秋招特别不鸣谢 #
16640次浏览 186人参与
# 考研失败就一定是坏事吗? #
202654次浏览 1389人参与
# 选实习,你更看重哪方面? #
15338次浏览 230人参与
# 安克创新求职进展汇总 #
62485次浏览 541人参与
美的集团公司福利 798人发布