题很简单,一开始写代码,是用整数的格式写的,怎么跑都不对,就以为算法错了,去看大佬们的算法STL全排列:next_permutation(); 又双叒叕写了好几遍,PE了将近次,直到跑了大佬代码发现,原来格式是这样的。



下面是实现全排列的两段代码,睡觉睡觉。

STL电动

#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<set>
#include<algorithm>
using namespace std;
int main()
{
char a[4]={0};
int x=0;
for(;;)
{
for(int i=0;i<4;i++)
{
cin>>a[i];
}
sort(a,a+4);
char w=a[0];
if(a[0]=='0'&&a[1]=='0'&&a[3]=='0'&&a[2]=='0') break;
if(x) cout<<endl;
x++;
int qt=0;
int lasta0=-1;
bool flag2=true;
do {
if(a[0]=='0')continue;
if(flag2)flag2 = false;
else if(a[0] == lasta0) cout<<' ';
else cout<<endl;
cout<<a[0]<<a[1]<<a[2]<<a[3];
lasta0 = a[0];
} while(next_permutation(a, a +4));
cout<<endl;
}
return 0;
}

纯手动

#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<set>
#include<algorithm>
using namespace std;
set<int> mx;
int main()
{
int a[5];
int sb=0;
for(;;)
{
mx.clear();
int multi;
for(int i=1;i<5;i++)
{
cin>>a[i];
}
if(a[1]==0&&a[2]==0&&a[3]==0&&a[4]==0) break;
if(sb)cout<<endl;
sb++;
for(int i=1;i<5;i++)
{
for(int j=1;j<5;j++)
{
if(i==j) continue;
for(int k=1;k<5;k++)
{
if(j==k||i==k) continue;
for(int l=1;l<5;l++)
{
if(k==l||l==j||l==i) continue;
multi=a[i]*1000+a[j]*100+a[k]*10+a[l];
if(multi>999) mx.insert(multi);
}
}
}
}
set<int>::iterator poi,p2;
p2=mx.begin();
int xa=0;
for(poi=mx.begin();poi!=mx.end();poi++)
{
p2++;
if(xa) cout<<' ';
xa++;
cout<<*poi;
if(*p2/1000!=*poi/1000)
{
cout<<endl;
xa=0;
}
}
}
return 0;
}

杭电的题,输出格式卡的很严。HDU 1716 排列2的更多相关文章

  1. 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”

    按 被中科大软件学院二年级研究生 HCOONa 骂为“误人子弟”之后(见:<中科大的那位,敢更不要脸点么?> ),继续“误人子弟”. 问题: 题目:(感谢 王爱学志 网友对题目给出的翻译) ...

  2. Help Johnny-(类似杭电acm3568题)

    Help Johnny(类似杭电3568题) Description Poor Johnny is so busy this term. His tutor threw lots of hard pr ...

  3. 杭电oj2093题,Java版

    杭电2093题,Java版 虽然不难但很麻烦. import java.util.ArrayList; import java.util.Collections; import java.util.L ...

  4. acm入门 杭电1001题 有关溢出的考虑

    最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...

  5. 杭电dp题集,附链接还有解题报告!!!!!

    Robberies 点击打开链接 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱  最脑残的是把总的概率以为是抢N家银行的概率之和- 把状态转移方程写成了f ...

  6. 杭电ACM题单

    杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最 ...

  7. 杭电60题--part 1 HDU1003 Max Sum(DP 动态规划)

    最近想学DP,锻炼思维,记录一下自己踩到的坑,来写一波详细的结题报告,持续更新. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Problem ...

  8. 杭电21题 Palindrome

    Problem Description A palindrome is a symmetrical string, that is, a string read identically from le ...

  9. 杭电20题 Human Gene Functions

    Problem Description It is well known that a human gene can be considered as a sequence, consisting o ...

随机推荐

  1. mpvue小程序开发

    查阅资料,看官方文档,知道mpvue是一个使用 Vue.js 开发小程序的前端框架(美团的开源项目).框架基于 Vue.js 核心,mpvue 修改了 Vue.js 的 runtime 和 compi ...

  2. 使用Cloudflare增强网站

    Cloudflare Cloudflare是美国的一家网络性能和安全公司,近期由于自己域名HTTP证书到期,了解到了Cloudflare,用到了它提供的CDN以及SSL 如何设置CDN 登入Cloud ...

  3. 2017蓝桥杯日期问题(C++B组)

    标题:日期问题小明正在整理一批历史文献.这些历史文献中出现了很多日期.小明知道这些日期都在1960年1月1日至2059年12月31日.令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的, ...

  4. 30 HashSet

    /* * 使用HashSet存储字符串并遍历 * * Set的特点: * 无序(存储和读取的顺序可能不一样) * 不允许重复 * 没有整数索引 于List正好相反 */ public class Ha ...

  5. python常用算数运算符、比较运算符、位运算符与逻辑运算符

    编辑时间: 2019-09-04,22:58:49 算数运算符 '+'.'-'.'*'.'/' :加.减.乘.除 '**':指数运算, ‘//’:整除, ‘%‘:求余数 num_1 = 15; num ...

  6. hive常用函数二

    逻辑运算: 1. 逻辑与操作: AND 语法: A AND B 操作类型:boolean 说明:如果A和B均为TRUE,则为TRUE:否则为FALSE.如果A为NULL或B为NULL,则为NULL 举 ...

  7. 常见的 PHP 面试题和答案分享

    如何直接将输出显示给浏览器? 将输出直接显示给浏览器,我们必须使用特殊标记 <?=and?>. PHP 是否支持多重继承? PHP 只支持单继承.PHP 的类使用关键字 extends 继 ...

  8. pytorch cheatsheet

  9. Sprint1规划暨first stand up meeting

    实际上,我们关于工程分配和接口实现的讨论已经好几周了,队(shen)长(xian)大人三令五申,先把接口确定下来,数据格式很重要云云~顺便accent一下,utf-8[虽然我并不太明白为什么要这么干但 ...

  10. 文本文件的合并操作方法 - Python

    我们有时候,看到几k的日志文件,一大堆,一个一个打开又很麻烦,少看几个,又担心遗漏,这个时候,如果有一个可以合并所有文本文件的工具就好了. 下面这个代码就可以实现,它不局限于.txt格式,基本上字符型 ...