hdu 1716(dfs)
题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1716
排列2
现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。
每组输出数据间空一行,最后一组数据后面没有空行。
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std; int a[],vis[],s[];
int t,c; void dfs(int num)
{
if (num == )
{
if (c>=)
s[t++] = c;
return ;
}
for (int i=; i<; i++)
{
if (!vis[i]) //标记访问
{
vis[i] = ;
c = c * + a[i];
dfs(num + );
vis[i] = ;
c = (c - a[i]) / ;
}
}
} int main ()
{
int flag = ;
while (scanf ("%d%d%d%d",&a[],&a[],&a[],&a[]))
{
sort(a, a+);
if (a[] == )
break;
if (flag)
{
printf ("\n");
}
flag = ;
memset(vis, , sizeof(vis));
t = c = ;
dfs();
sort(s, s+t);
int temp;
printf ("%d",s[]);
temp = s[] / ; //记住千位数
for (int i=; i<t; i++)
{
if (s[i] == s[i-]) //因为排序过了,所以相同的四位数都在一起
continue ;
if (s[i] / != temp) //千位数不同,换行
{
printf ("\n%d",s[i]);
temp = s[i] / ; //同时记录新的千位数
}
else
{
printf (" %d",s[i]);
}
}
printf ("\n");
}
return ;
}
今天意外看到一位大神博客,用了一个next_permutation(a.begin(), a.end())函数,轻轻松松实现全排列。
附上大神博客链接和他的代码 : http://www.cnblogs.com/jackge/archive/2013/05/22/3093089.html
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm> using namespace std; int main(){ //freopen("input.txt","r",stdin); int a[],tag=;
while(scanf("%d%d%d%d",&a[],&a[],&a[],&a[])){
if(a[]== && a[]== && a[]== && a[]==)
break;
if(tag)
printf("\n");
tag=;
int flag=,tmp;
do{
if(a[]==)
continue;
if(flag){
printf("%d%d%d%d",a[],a[],a[],a[]);
flag=;
}else if(tmp==a[])
printf(" %d%d%d%d",a[],a[],a[],a[]);
else
printf("\n%d%d%d%d",a[],a[],a[],a[]);
tmp=a[];
}while(next_permutation(a,a+));
printf("\n");
}
return ;
}
hdu 1716(dfs)的更多相关文章
- HDU 5143 DFS
分别给出1,2,3,4 a, b, c,d个 问能否组成数个长度不小于3的等差数列. 首先数量存在大于3的可以直接拿掉,那么可以先判是否都是0或大于3的 然后直接DFS就行了,但是还是要注意先判合 ...
- Snacks HDU 5692 dfs序列+线段树
Snacks HDU 5692 dfs序列+线段树 题意 百度科技园内有n个零食机,零食机之间通过n−1条路相互连通.每个零食机都有一个值v,表示为小度熊提供零食的价值. 由于零食被频繁的消耗和补充, ...
- STL训练 HDU - 1716 Ray又对数字的列产生了兴趣:
HDU - 1716 Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input 每组数据占一行,代表四张卡片上的数字(0&l ...
- hdu 1716 排列2(DFS搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1716 排列2 Time Limit: 1000/1000 MS (Java/Others) Me ...
- hdu 1716 深搜dfs
#include<stdio.h> #include<stdlib.h> #include<string.h> #define N 5 int f[N]; int ...
- hdu 1716 排序2(dfs)
排列2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU 5877 dfs+ 线段树(或+树状树组)
1.HDU 5877 Weak Pair 2.总结:有多种做法,这里写了dfs+线段树(或+树状树组),还可用主席树或平衡树,但还不会这两个 3.思路:利用dfs遍历子节点,同时对于每个子节点au, ...
- hdu 4751(dfs染色)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4751 思路:构建新图,对于那些两点连双向边的,忽略,然后其余的都连双向边,于是在新图中,连边的点是能不 ...
- HDU 1045 (DFS搜索)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1045 题目大意:在不是X的地方放O,所有O在没有隔板情况下不能对视(横行和数列),问最多可以放多少个 ...
随机推荐
- TP常用函数
英文字符可用形如 {$vo.title|substr=0,5} 如果是中文字符thinkphp提供了msubstr如下 function msubstr($str, $start=0, $length ...
- Vs2008几个快捷键
CTRL+M 收缩 格式化cs代码:Ctrl+k+f 格式化aspx代码:Ctrl+k+d 5. 怎样快速切换不同的窗口? Ctrl+Tab 7. 怎样快速添加代码段? 输入prop然后按两 ...
- /bin/bash: line 0: fg: no job control一般解决方法
測试版本号:CDH5.0,(Hadoop2.3) 在使用windows调用Hadoop yarn平台的时候,一般都会遇到例如以下的错误: 2014-05-28 17:32:19,761 WARN or ...
- 0c-42-ARC模式下如何兼容非ARC的类
1.ARC模式下如何兼容非ARC的类 让程序兼容ARC和非ARC部分.转变为非ARC -fno-objc-arc 2.将MRC转换为ARC ARC也需要考虑循环引用问题:一端用strong,一端用we ...
- 关于javascript中的 执行上下文和对象变量
什么是执行上下文 当浏览器的解释器开始执行我们的js代码的时候,js代码运行所处的环境可以被认为是代码的执行上下文,执行上下文(简称-EC)是ECMA-262标准里的一个抽象概念,用于同可执行代码(e ...
- IOS UIView子类UIScrollView
转自:http://www.cnblogs.com/nightwolf/p/3222597.html 虽然apple在IOS框架中提供了很多可以直接使用的UI控件,但是在实际开发当中我们通常都是要自己 ...
- (转)ASP.NET Identity登录原理 - Claims-based认证和OWIN
在Membership系列的最后一篇引入了ASP.NET Identity,看到大家对它还是挺感兴趣的,于是来一篇详解登录原理的文章.本文会涉及到Claims-based(基于声明)的认证,我们会详 ...
- Maven项目报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
刚刚新建完Maven项目,一般都会报这个错误,原因是没有默认添加需要的javax.servelet的jar包,所以打开pom.xml文件添加如下dependency即可: <dependency ...
- LeetCode49 Group Anagrams
Given an array of strings, group anagrams together. For example, given: ["eat", "tea& ...
- Data Struture 之 指针
指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构: 能很方便地使用数组和字符串: 并能象汇编语言一样处理内存地址,从而编出精练而高效的程 ...