uva 10098 Generating Fast(全排列)
还是用的两种方法,递归和STL,递归那个是含有反复元素的全排列,这道题我 没有尝试没有反复元素的排列,由于从题目上并没有发现一定是有反复元素的()
贴代码:
<span style="font-family:Courier New;font-size:18px;">#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int cmp(const void *a,const void *b)
{return *(char *)a - *(char *)b;
}
int main()
{int T;char a[15];scanf("%d",&T);while(T--){scanf("%s",a);int len = strlen(a);qsort(a,len,sizeof(a[0]),cmp);puts(a);while(next_permutation(a,a+len)){puts(a);} puts("");} return 0;
} </span>
递归:
<span style="font-family:Courier New;font-size:18px;">#include<stdio.h>
#include<string.h>
#include<stdlib.h>int cmp(const void *a,const void *b)
{return *(char *)a - *(char *)b;
}
void solve(int len,char *a,char *b,int cur)
{int i,j;if(cur == len){puts(b);return ;}else{for(i=0; i<len; i++){if(!i||(a[i] != a[i-1])){int ans1 = 0, ans2 = 0;for(j=0; j<len; j++) if(a[i] == a[j]) ans1++;for(j=0; j<cur; j++) if(b[j]==a[i]) ans2++;if(ans2 < ans1){b[cur] = a[i];solve(len, a, b, cur+1);}}}}return ;
}
int main()
{int T;char a[15];char b[15];scanf("%d",&T);while(T--){memset(a,'\0',sizeof(a));memset(b,'\0',sizeof(b));scanf("%s",a);int len = strlen(a);qsort(a,len,sizeof(a[0]),cmp);solve(len,a,b,0); puts("");} return 0;
} </span>
转载于:https://www.cnblogs.com/liguangsunls/p/7029190.html
uva 10098 Generating Fast(全排列)相关推荐
- 【UVA】11992 - Fast Matrix Operations(段树模板)
主体段树,要注意,因为有set和add操作,当慵懒的标志下推.递归优先set,后复发add,每次运行set行动add马克清0 WA了好几次是由于计算那一段的时候出问题了,可笑的是我对着模板找了一个多小 ...
- uva 11925——Generating Permutations
题意:给定一个1-n的排列,用不超过2*n2的操作把他变成升序.每次操作只有两种,一种是交换前两个元素,另外一种是把最后一个元素放到最后一位. 思路:贪心.用双端队列来保存数据,每次当v[0]> ...
- Uva 524 相邻素数全排列
传送门:https://vjudge.net/problem/UVA-524 回溯法深搜,我的硬是不知道哪里错了,和别人AC的程序输出一模一样 #include <iostream> #i ...
- π-Algorithmist分类题目(1)
原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(1) Sorting UVAL ...
- 提取了下刘汝佳推荐的题号...
今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started 10055 - Hashmat the Brave Warrior ...
- ICPC训练联盟2021寒假冬令营(9)_2021.01.29_笔记
试题链接 点我进入代码提交OJ 学习笔记 - 数论与组合分析入门 数论的编程实验 • 3.1素数运算的实验范例 • 3.2求解不定方程和同余方程的实验范例 • 3.3 特殊的同余式 • 3.4 积性函 ...
- Competitive Programming 3题解
题目一览: Competitive Programming 3: The New Lower Bound of Programming Contests(1) Competitive Programm ...
- AOAPC I: Beginning Algorithm Contests 题解
AOAPC I: Beginning Algorithm Contests 题解 AOAPC I: Beginning Algorithm Contests (Rujia Liu) - Virtual ...
- ICPC程序设计题解书籍系列之六:吴永辉:《算法设计编程实验》
第1章 Ad Hoc问题 POJ2661 HDU1141 ZOJ2545 UVA10916 Factstone Benchmark[Ad Hoc] UVA10037 Bridge[贪心] POJ257 ...
最新文章
- k3s 进入 CNCF 沙箱,首个进入 CNCF 的 k8s 发行版
- lwip之数据收发流程_1
- vue项目打包到腾讯云服务器全过程
- 实现IFrame的自适应高度
- datajs.js response handling
- Eigen入门之密集矩阵 4 - 块操作
- 使用Arquillian测试Spring Data + Spring Boot应用程序(第1部分)
- http协议 web开发的应用 笔记
- android8.0电脑壁纸,Android用原生分享多张图片适配7.0、8.0
- JSK-19 加一【入门】
- 0603 学术诚信与职业道德
- 使用URLOS在linux系统中极速部署NFS共享存储服务
- 【论文学习】Abnormal behavior recognition for intelligent video surveillance systems: A review
- crond和crontab详解
- macOS Big Sur 11.2.3 (20D91) 虚拟机 ISO 镜像
- 一个大龄女程序员的悲哀....
- 常用的嵌入式数据库的比较
- 看雪cm大赛第17题视频教程分析
- 自制ip地址切换器ip.dat
- 2022兴福村镇银行人员招聘专项练习题及答案