简单。

手动的实现全排列

 #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 ;
}

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

最新文章

  1. 对于 Web 开发很有用的 jQuery 效果制作教程
  2. MySQL性能优化的21条最佳经验【转】
  3. AOP动态代理解析3-增强方法的获取
  4. Python变量作用域(一)
  5. emulator: ERROR: x86 emulation currently requires hardware acceleration!
  6. jquery是如何清除ajax缓存的
  7. 基于http协议的api接口对于客户端的身份认证方式以及安全措施
  8. 安装.Net framework 3.5 sp1报错的解决方法
  9. hdu2444The Accomodation of Students
  10. JS入门(五)
  11. 485. Max Consecutive Ones
  12. 在linux下通过hexdump生成一个十六进制的文本保存文件,解析此文件转变成正常源代码文件。
  13. Redis中的关系查询
  14. HTTP协议GET HEAD简单介绍
  15. HttpSession的API
  16. 6. spring启动类配置问题
  17. SDOI2014 R1做题笔记
  18. 在 Linux/windows下 命令行中使用和执行 PHP 代码[交互式php]
  19. django model 条件过滤 queryset.filter(**condtions) 用法
  20. android category

热门文章

  1. oracle的sid
  2. SonarQube(5.0.1) 环境的安装配置
  3. 【JQuery基础教程(第三版)图灵】笔记
  4. ASP生成静态文件编码为UTF-8格式的HTML文件
  5. php 文件缓存
  6. Extjs4使用iframe注意事项
  7. HTML招聘简历解析
  8. [转]从一行代码里面学点JavaScript
  9. intellij idea社区版 &amp; maven &amp; git &amp; tomcat/jetty 的struts2项目的搭建
  10. 二叉搜索的各种bugs——重复递增序列