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++. ...
随机推荐
- JavaDay11
Java learning_Day11 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> ...
- 转载 selenium_对浏览器操作、鼠标操作等总结
https://www.jianshu.com/p/7a4414082ce2 查看环境conda info --env 激活环境conda activate machine 路径改成H:cd H:\p ...
- Tutorial: Publishing additional services for printing
Complexity:IntermediateData Requirement:Use your own data There may be occasions when you need to pu ...
- 转: Laravel的数据库迁移 介绍的比较清晰
原文: https://blog.sbot.io/articles/12/Laravel-数据库迁移(Database-Migrations)操作实例 很多人可能在学习Laravel框架的时候,对La ...
- 在Django中使用Sentry(Python 3.6.8 + Django 1.11.20 + sentry-sdk 0.13.5)
1. 安装Sentry pip install sentry-sdk==0.13.5 2.在settings.py中配置 sentry_sdk.init( dsn="https://**** ...
- 敏捷@Scrum基础知识
敏捷,用以概括一套全新的软件开发价值观:敏捷宣言由价值观和原则组成. (一)敏捷核心价值观 敏捷宣言 个体和交互 胜过 过程和工具 可以工作的软件 胜过 面面俱 ...
- win10中Pycharm连接mysql时区错误的解决
今天,突然想试下在win10中Django学习,好不容易把Mysql设置完毕,数据库也建好了,可连接测试通不过: Server returns invalid timezone. Go to 'Adv ...
- PAT (Basic Level) Practice (中文)1066 图像过滤 (15 分)
图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来.现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换. 输入格式: 输入在第一行给出一幅图像的分辨 ...
- 问题 E: Problem B
#include <cstdio> #include <cstring> #include <algorithm> #include <vector> ...
- 【Linux02】LInux初始入门
1.LInux操作系统发展与演变 ENIARC: CUP:运算器.控制器.寄存器.缓存 存储器:内存.RAM Input:指令+数据 Output:结果 程序:指令+数据 算法+数据结构 字节是 ...