简单。

手动的实现全排列

 #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
const int maxn = ; struct node{
char a,b,aa;
int c,d,val;
}p[ ],temp; struct node2{
node tt[];
int most;
}ans[ ]; int cmp( node a,node b ){
return a.val<b.val;
} int cmp2( node2 a,node2 b ){
return a.most<b.most;
} int cnt; int value( char ch ){
if( ch=='C' ) return ;
else if( ch=='D' ) return ;
else if( ch=='H' ) return ;
else if( ch=='S' ) return ;
if( ch=='A' ) return ;
else if( ch>=''&&ch<='' ) return (ch-'');
else if( ch=='J' ) return ;
else if( ch=='Q' ) return ;
else if( ch=='K' ) return ;
} bool judge(){
if( p[].b!=p[].b ) return false; if( p[].val<=p[].val&&p[].val<=p[].val ){
if( p[].val>=p[].val ) {//pos = 4
if( p[].aa!='#' ){//
if(p[].a=='A' ) return true;
else return false;
}
else if( p[].a=='A' ) {//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='J' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='Q' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='K' ) return true;
else return false;
}
else if( p[].a=='J' ){//J
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='Q' ){//Q
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='K' ){//K
if( p[].a=='' ) return true;
else return false;
}
}
else {//pos = 1
if( p[].aa!='#' ){//
if(p[].a=='J' ) return true;
else return false;
}
else if( p[].a=='A' ) {//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='J' ){//J
if( p[].a=='Q' ) return true;
else return false;
}
else if( p[].a=='Q' ){//Q
if( p[].a=='K' ) return true;
else return false;
}
else if( p[].a=='K' ){//K
if( p[].a=='A' ) return true;
else return false;
}
}
} if( p[].val<=p[].val&&p[].val<=p[].val ){
if( p[].val>=p[].val ) {//pos = 6
if( p[].aa!='#' ){//
if(p[].a=='' ) return true;
else return false;
}
else if( p[].a=='A' ) {//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='J' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='Q' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='K' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='A' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='J' ){//J
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='Q' ){//Q
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='K' ){//K
if( p[].a=='' ) return true;
else return false;
}
}
else {//pos = 3
if( p[].aa!='#' ){//
if(p[].a=='K' ) return true;
else return false;
}
else if( p[].a=='A' ) {//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='J' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='Q' ) return true;
else return false;
}
else if( p[].a=='J' ){//J
if( p[].a=='A' ) return true;
else return false;
}
else if( p[].a=='Q' ){//Q
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='K' ){//K
if( p[].a=='' ) return true;
else return false;
}
}
} if( p[].val<=p[].val&&p[].val<=p[].val ){
if( p[].val>=p[].val ) {//pos = 5
if( p[].aa!='#' ){//
if(p[].a=='' ) return true;
else return false;
}
else if( p[].a=='A' ) {//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='J' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='Q' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='K' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='A' ) return true;
else return false;
}
else if( p[].a=='J' ){//J
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='Q' ){//Q
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='K' ){//K
if( p[].a=='' ) return true;
else return false;
}
}
else {//pos = 2
if( p[].aa!='#' ){//
if(p[].a=='Q' ) return true;
else return false;
}
else if( p[].a=='A' ) {//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='' ) return true;
else return false;
}
else if( p[].a=='' ){//
if( p[].a=='J' ) return true;
else return false;
}
else if( p[].a=='J' ){//J
if( p[].a=='K' ) return true;
else return false;
}
else if( p[].a=='Q' ){//Q
if( p[].a=='A' ) return true;
else return false;
}
else if( p[].a=='K' ){//K
if( p[].a=='' ) return true;
else return false;
}
}
}
} void solve( int l,int r ){
if( l>r&&cnt== ){
if( judge()==true ) {
ans[ cnt ].tt[] = p[];
ans[ cnt ].tt[] = p[];
ans[ cnt ].tt[] = p[];
ans[ cnt ].tt[] = p[];
ans[ cnt ].tt[] = p[];
ans[ cnt ].most = p[].val+*p[].val+*p[].val+*p[].val+*p[].val;
cnt++;
}
return ;
}
for( int i=l;i<=r&&cnt==;i++ ){
temp = p[i];
p[i] = p[l];
p[l] = temp;
solve( l+,r );
if( cnt> ) return ;
temp = p[i];
p[i] = p[l];
p[l] = temp;
}
} int main(){
int ca = ;
int T;
scanf("%d",&T);
while( T-- ){
printf("Problem %d: ",ca++);
char s[ ];
cnt = ;
for( int i=;i<;i++ ){
scanf("%s",s);
if( strlen(s)== ) {
p[i].a = '';
p[i].aa = '';
p[i].b = s[];
p[i].c = ;
p[i].d = value( s[] );
p[i].val = *p[i].c+p[i].d;
}
else {
p[i].a = s[];
p[i].b = s[];
p[i].aa = '#';
p[i].c = value(s[]);
p[i].d = value(s[]);
p[i].val = *p[i].c+p[i].d;
}
}
sort( p,p+,cmp );
solve( , );
/*
sort( ans,ans+cnt,cmp2 );
p[0] = ans[0].tt[0];
p[1] = ans[0].tt[1];
p[2] = ans[0].tt[2];
p[3] = ans[0].tt[3];
p[4] = ans[0].tt[4];
*/
//printf("\ncnt=%d\n",cnt);
for( int i=;i<;i++ ){
if(i==) {
if( p[i].aa=='#' ) printf("%c%c",p[i].a,p[i].b);
else printf("10%c",p[i].b);
}
else{
if( p[i].aa=='#' ) printf(" %c%c",p[i].a,p[i].b);
else printf(" 10%c",p[i].b);
}
}
printf("\n");
}
return ;
}

代码有点长。。有点啰嗦。。

POJ2200+全排列模拟的更多相关文章

  1. UVa 10012 - How Big Is It? 堆球问题 全排列+坐标模拟 数据

    题意:给出几个圆的半径,贴着底下排放在一个长方形里面,求出如何摆放能使长方形底下长度最短. 由于球的个数不会超过8, 所以用全排列一个一个计算底下的长度,然后记录最短就行了. 全排列用next_per ...

  2. LeetCode Permutations II (全排列)

    题意: 给出n个元素(可能有重复的),请产生出所有的全排列. 思路: 同版本1的有点不同,这次有可能含有重复的元素,很容易就TLE,节省时间才是关键点. 如果将一个序列中两个相同的元素交换,这个序列是 ...

  3. 【20170521校内模拟赛】热爱生活的小Z

    学长FallDream所出的模拟赛,个人感觉题目难度还是比较适中的,难度在提高+左右,可能比较接近弱省省选,总体来讲试题考查范围较广,个人认为还是很不错的. 所有试题如无特殊声明,开启-O2优化,时限 ...

  4. 【洛谷P1706全排列问题】

    题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 代码如下: #include<iostream>#include<cstd ...

  5. 52-2018 蓝桥杯省赛 B 组模拟赛(一)java

    最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...

  6. DFS 之 全排列

    题目描述输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 我们可以模拟出n个盒子和n张卡片,我们需要将n张卡片分别放到n个盒子里,且每个盒子只能放1张卡 ...

  7. 2018 蓝桥杯省赛 B 组模拟赛(五)

    A模拟 代码1 #include<bits/stdc++.h> using namespace std; int n = 101; int a[120][120]; int ans = 0 ...

  8. Codeforces Round #398 (Div. 2) A B C D 模拟 细节 dfs 贪心

    A. Snacktower time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  9. 算法训练 Balloons in a Box (枚举,模拟)

    问题描述 你要写一个程序,使得能够模拟在长方体的盒子里放置球形的气球. 接下来是模拟的方案.假设你已知一个长方体的盒子和一个点集.每一个点代表一个可以放置气球的位置.在一个点上放置一个气球,就是以这个 ...

随机推荐

  1. HTML5 乱记

    HTML5 的文档类型声明可以触发所有具备标准模式的浏览器的标准模式,包括那些对 HTML5 一无所知的浏览器,也就是说,可以在任何网页中都使用 HTML5 文档类型声明 <!DOCTYPE h ...

  2. Each child in an array or iterator should have a unique "key" prop. Check the render method of `CreditCategoryModal`

    参考地址:http://f00sun.com/category/react

  3. Ajax的Get和Post的区别

    Ajax的Get和Post的区别Get方式:用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照U ...

  4. asp.net导入2013版本的excel问题解决

    net中导入2013excel的故障解决办法. 修改导入excel的连接字符串 string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data ...

  5. cisco通过控制口或者通过远程配置交换机

    学而不思则罔,思而不学则殆,每天坚持一小步,则成功一大步 下面我们通过Cisco Packet来模拟交换机和路由器的远程和控制台登录配置交换机. 交换机console口的连接与配置方法 (1),在Ci ...

  6. 对 ASP.NET 页面进行跟踪(Control Tree)

    在页面头部加入属性 : Trace="True" 参考MSDN: https://msdn.microsoft.com/zh-cn/library/94c55d08(v=vs.10 ...

  7. 从V$SQL_PLAN中FORMAT执行计划

    10G版本 select sql_id from v$sqlarea where sql_text like'%xxx%'; select  * from v$sql_plan where sql_i ...

  8. JAVA笛卡尔曲线

    效果图如下: import java.applet.*; import java.awt.*; public class Descartes extends Applet { int AppletWi ...

  9. HTML5之字体

    - 使用CSS样式来定义 context.font = [CSS font property] context.font = [font-style font-variant font-weight ...

  10. 链表C++模板实现

    #include <iostream.h> #include <stdlib.h> //结点模板类 template <typename t1, typename t2& ...