当前位置: 首页 > news >正文

做盗版电影网站问题/网络营销论文5000字

做盗版电影网站问题,网络营销论文5000字,天津宝坻网站建设张磊,西安最新消息题目描述 设R{r1,r2,……,rn}是要进行排列的n个元素。其中元素r1,r2,……,rn可能相同。使设计一个算法,列出R的所有不同排列。 给定n以及待排列的n个元素。计算出这n个元素的所有不同排列。 输入…

题目描述
R={r1,r2,……,rn}是要进行排列的n个元素。其中元素r1,r2,……,rn可能相同。使设计一个算法,列出R的所有不同排列。
给定n以及待排列的n个元素。计算出这n个元素的所有不同排列。
输入
第1行:元素个数n1<=n<500
第2行:一行字符串,待排列的n个元素,都是小写字母
输出
计算出的n个元素的所有不同排列(按字典序),最后一行是排列总数。
样例输入

4
aacc

样例输出

aacc
acac
acca
caac
caca
ccaa
6

一、使用STL-set的暴力做法(TLE AC 45%

#include<bits/stdc++.h>
#define FOR(i,a,b) for(register int i=(a);i<=(b);i++)
#define mem(a) memset(a,0,sizeof(a))
using namespace std;int n;
string input;
int data[1000],vst[1000];
string ans;
set <string> s;
void dfs(int p,int step){ans[step]=input[p];if(step==n-1){s.insert(ans);return;}FOR(i,0,n-1){if(vst[i]<vst[p]){vst[i]++;dfs(i,step+1);vst[i]--;}}
}int main(){cin>>n>>input;ans=input;FOR(i,0,n-1){mem(vst);vst[i]=1;dfs(i,0);}set<string>::iterator it;string t;for(it=s.begin();it!=s.end();it++){printf("%s\n",(*it).c_str());}cout<<s.size()<<endl;return 0;
}

二、使用STL-vector的暴力做法(MLE AC 18%

#include<bits/stdc++.h>
#define FOR(i,a,b) for(register int i=(a);i<=(b);i++)
#define mem(a) memset(a,0,sizeof(a))
using namespace std;int n;
string input;
int data[1000],vst[1000];
string ans;
vector<string> v;
int pv=0;
void dfs(int p,int step){ans[step]=input[p];if(step==n-1){v.push_back(ans);return;}FOR(i,0,n-1){if(vst[i]<vst[p]){vst[i]++;dfs(i,step+1);vst[i]--;}}
}int main(){cin>>n>>input;ans=input;FOR(i,0,n-1){mem(vst);vst[i]=1;dfs(i,0);}sort(v.begin(),v.end());pv=unique(v.begin(),v.end())-v.begin();FOR(i,0,pv-1){printf("%s\n",v[i].c_str());}cout<<pv<<endl;return 0;
}

三、不使用STL容器的正确做法(AC 100%

#include<bits/stdc++.h>
#define FOR(i,a,b) for(register int i=(a);i<=(b);i++)
#define mem(a) memset(a,0,sizeof(a))
using namespace std;int n,sum,cnt[1000]={};
string data;
char ans[1000];void dfs(int step){FOR(i,0,25){if(cnt[i]>0){ans[step]=char(i+'a');if(step==n-1){sum++;printf("%s\n",ans);}else{cnt[i]--;dfs(step+1);cnt[i]++;}}}
}int main(){cin>>n>>data;FOR(i,0,n-1){cnt[data[i]-'a']++;}dfs(0);cout<<sum<<endl;return 0;
}
http://www.lbrq.cn/news/2341945.html

相关文章:

  • 在线做简单的网站/公司网站设计图
  • 网站工程前端/厦门网站seo哪家好
  • 沈阳营销型网站/滨州网站seo
  • 阳江网站制作公司/广西壮族自治区
  • 网站建设哪个软件好/优化推广网站怎么做
  • 做数学题好的网站/如何做好网络推广工作
  • 只做正品的网站/徐州seo顾问
  • 自己做商务网站有什么利弊/百度平台商户电话号码
  • 免费网站建设的/seo实战培训费用
  • 17素材网下载/宁波seo服务推广
  • 网站付费推广方式/经营管理培训课程
  • dw个人网站主页怎么做/海南seo排名优化公司
  • 做英语网站/网站域名查询官网
  • 网站开发 项目的招标文件/广东: 确保科学精准高效推进疫情
  • 前端做网站是什么流程/什么是全网营销推广
  • 北京海淀网站建设公司/今日头条新闻头条
  • 做英语趣味教具的网站/广东省疫情最新
  • 常德德山经开区建设局网站/aso优化前景
  • 网站 头尾调用/短视频优化
  • 云南网站建设公司排名/搜索软件使用排名
  • 增城企业网站建设/广州网站优化公司排名
  • 房卡app游戏开发/小红书关键词排名优化
  • 安居客做网站/免费的短视频app大全下载
  • 动态网站后台怎么做/创建站点的步骤
  • eclipse sdk做网站/磁力搜索器下载
  • h5响应式网站模板下载/怎么弄属于自己的网站
  • 专业的赣州网站建设/百度投放广告平台
  • 大连高端模板建站/优就业seo怎么样
  • 建网站手机版/百度云建站
  • 怎么才服务器上做网站/必应搜索引擎国际版
  • : $ operator is invalid for atomic vectors
  • Ext系列文件系统知识点
  • 【BUG处理】构建APK时遇到错误:‘flutter‘ 命令未被识别。这通常表示您的系统中未安装Flutter SDK或环境变量配置不正确。
  • win10安装Elasticsearch
  • Linux的相关学习
  • Java项目:基于SSM框架实现的高校毕业选题管理系统【ssm+B/S架构+源码+数据库+毕业论文】