[HDOJ6152] Friend-Graph(拉姆齊定理)
阿新 • • 發佈:2017-08-19
clas lag spa const 暴力枚舉 eof () graph for
題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=6152
拉姆齊定理,R(3,3)=6,說明6個人以上的時候,一定會存在規模為3的團或者3個團。
所以暴力枚舉6點以下的結果,其余bad就好。不小心mle了幾發。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int maxn = 11; 5 int n; 6 int G[maxn][maxn]; 7 8 int main() { 9 // freopen("in", "r", stdin); 10int T; 11 scanf("%d", &T); 12 while(T--) { 13 scanf("%d", &n); 14 memset(G, 0, sizeof(G)); 15 if(n > 6) { 16 for(int i = 1; i <= n; i++) { 17 for(int j = i+1; j <= n; j++) { 18 scanf("%d", &G[1][1]); 19 } 20 } 21 printf("Bad Team!\n"); 22 continue; 23 } 24 for(int i = 1; i <= n; i++) { 25 for(int j = i+1; j <= n; j++) { 26 scanf("%d", &G[i][j]); 27 G[j][i] = G[i][j]; 28 }29 } 30 bool exflag = 0; 31 for(int i = 1; i <= n; i++) { 32 for(int j = i + 1; j <= n; j++) { 33 for(int k = j + 1; k <= n; k++) { 34 if(G[i][j] && G[j][k] && G[k][i]) exflag = 1; 35 } 36 } 37 } 38 if(exflag) printf("Bad Team!\n"); 39 else { 40 for(int i = 1; i <= n; i++) { 41 for(int j = i + 1; j <= n; j++) { 42 for(int k = j + 1; k <= n; k++) { 43 if(!G[i][j] && !G[j][k] && !G[k][i]) exflag = 1; 44 } 45 } 46 } 47 if(exflag) printf("Bad Team!\n"); 48 else printf("Great Team!\n"); 49 } 50 } 51 return 0; 52 }
[HDOJ6152] Friend-Graph(拉姆齊定理)