1 // 我真的好笨 只会枚举 话说那个ac的370b到底是怎么做的 /(ㄒoㄒ)/~~ 2 #include <iostream> 3 #include <algorithm> 4 using namespace std; 5 struct T{ 6 int type;// 核♥ 分类排序 7 int x; 8 friend bool operator < (const T& a,const T& b) { 9 if (a.type==b.type) return (a.x<b.x); 10 else return a.type>b.type; 11 } 12 }; 13 T t[1000]; 14 int main () 15 { 16 int n=0; 17 for (int i=1;i<=9;i++) 18 for (int j=i;j<=9;j++) 19 for (int k=j;k<=9;k++) { 20 t[++n].x=k*100+j*10+i; 21 if (i==j&&j==k) t[n].type=1; 22 else if (i+2==k&&i+1==j) t[n].type=2; 23 else if (i==j) { 24 t[n].type=3; 25 t[n].x=i*100+j*10+k;// 如果是对子 先比较对子 然后再比较单张 26 } 27 else if (j==k) t[n].type=3; 28 else t[n].type=4; 29 } 30 sort(t+1,t+1+n); 31 int T; cin>>T; 32 int a[5]; 33 while (T--) { 34 for (int i=1;i<=3;i++) cin>>a[i]; sort(a+1,a+4); 35 int x=a[3]*100+a[2]*10+a[1]; 36 if (a[1]==a[2]&&a[2]!=a[3]) x=a[1]*100+a[2]*10+a[3]; 37 int i; 38 for (i=1;i<=n;i++) {if (x==t[i].x) break;} 39 if (a[3]==a[2]&&a[2]==a[1]) cout<<n-i+1<<endl; 40 else if (x==532) cout<<n-i-9<<endl; 41 else if (a[3]==a[2]||a[2]==a[1]) cout<<n-i-1<<endl;// 因为牌最多有四张 对子的情况去掉豹子的那一种情况; 42 else cout<<n-i<<endl; 43 } 44 return 0; 45 }
抓住青春的尾巴。。。