hdu1716 排列2
12 21
123 132 213 231 321 312
....
每次都将后面n-1位进行全排列。递归的出口当起始坐标等于终止坐标时。需要还原。
设计标记数组。因为需要从小到大输出。
#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int visited[];
int a[];
void swap(int a[], int i, int j)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
} void perm(int a[], int k, int m, int pk, int pm)
{
if (k == m)
{
int sum = ;
for (int i = pk; i <= pm; i++)
{
sum = sum * + a[i];
}
visited[sum] = ;
}
else
{
for (int i = k; i <= m; i++)
{
swap(a, k, i);
perm(a, k + , m, pk, pm);
swap(a, k, i);
}
}
} int main()
{
int t = ;
while (scanf("%d", &a[]) != EOF)
{
scanf("%d%d%d", &a[], &a[], &a[]);
if (a[] == && a[] == && a[] == && a[] == )
break;
if (t != )
printf("\n");
t = ;
sort(a, a + );
memset(visited, , sizeof(visited));
perm(a, , , , );
int k;
int sign = ;
for (int i = ; i < ; i++)
{
if (visited[i]==)
{
sign++;
if (sign== )
{
k = i / ;
printf("%d", i);
}
else
{
if (i / != k)
{
printf("\n");
k = i / ;
}
else
printf(" ");
printf("%d", i);
}
}
}
printf("\n");
}
return ;
}
hdu1716 排列2的更多相关文章
- HDU-1716 排列2 (DFS)
排列2 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissio ...
- hdu1716排列2(stl:next_permutation+优先队列)
排列2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- ACM学习历程—HDU1716 排列2(dfs && set容器)
Description Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input 每组数据占一行,代表四张卡片上的数字( ...
- ACM~排列组合&&hdu例子
排列组合是数学中的一个分支.在计算机编程方面也有非常多的应用,主要有排列公式和组合公式.错排公式.母函数.Catalan Number(卡特兰数)等. 一.有关组合数学的公式 1.排列公式 P(n ...
- 学习sql中的排列组合,在园子里搜着看于是。。。
学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来: --需求----B, C, F, M and S住在一座房子的不同楼层.--B 不住顶层.C 不住底 ...
- [LeetCode] Arranging Coins 排列硬币
You have a total of n coins that you want to form in a staircase shape, where every k-th row must ha ...
- [LeetCode] Next Permutation 下一个排列
Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...
- js学习篇--数组按升序降序排列
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- SDOI 2016 排列计数
题目大意:一个数列A,n个元素,其中m个元素不动,其他元素均不在相应位置,问有多少种排列 保证m个元素不动,组合数学直接计算,剩余元素错位排列一下即可 #include<bits/stdc++. ...
随机推荐
- tensor维度变换
维度变换是tensorflow中的重要模块之一,前面mnist实战模块我们使用了图片数据的压平操作,它就是维度变换的应用之一. 在详解维度变换的方法之前,这里先介绍一下View(视图)的概念.所谓Vi ...
- sklearn.metrics中的评估方法
https://www.cnblogs.com/mindy-snail/p/12445973.html 1.confusion_matrix 利用混淆矩阵进行评估 混淆矩阵说白了就是一张表格- 所有正 ...
- 咸鱼的ACM之路:动态规划(DP)学习记录
按挑战程序设计竞赛介绍的顺序记录一遍学习DP的过程. 1. 01背包问题 问题如下: 有N个物品,每个物品(N[i])都有一定的体积(W[i]),和一定的价值(V[i]) 现在给定一个背包,背包的容量 ...
- web做题记录
2020.1.19 南邮ctf 签到题 题目:key在哪里? 在火狐浏览器中右键选择打开查看源代码,在源代码可以看到如下 因为是第一次做这个题,不知道提交啥,我先提交了“admiaanaaaaaaaa ...
- H5_0011:JS动态创建html并设置CSS属性
1,创建html文本,并设置指定css样式 r = function(e) { var t = document.createElement("div"); t.innerHTML ...
- TCP常用拆包处理
1.演示环境为windows 10 1903 2.演示代码 #include "pch.h" #include <iostream> #include <WinS ...
- SpringBoot之spring.factories
组件提供者如何编写出仅需系统开发者进行包引入就可以对spring进行bean注入等操作? 其实在spring库中有提供自动化配置的库spring-boot-autoconfigure,我们只需要引 ...
- 2019-08-18 纪中NOIP模拟A组
T1 [JZOJ6309] 完全背包 题目描述
- CR(Code Review)代码评审如何发挥作用
在CODE中经常会发起代码评审和进行评审任务,可是根据目前的做法流程,我认为它就是走走形式,为了应付检查,根本没有达到预期的效果,即审查代码质量.学习他人写的代码和提高自身写代码的能力.对此,将从两方 ...
- 设置display:inline-block 元素间隙
上代码: <div class="page"> <a href="" class="num">共1231条</ ...