24h購物| | PChome| 登入
2009-05-23 19:18:16| 人氣681| 回應0 | 上一篇 | 下一篇

95高市資訊學科能力競賽 矩形旋轉

推薦 0 收藏 0 轉貼0 訂閱站台

作法:(1)DFS(測資小可以使用)(2)DP(LIS最長遞增子序列)
在此提供DFS

類似題:ACM 437 The Tower of Babylon (這題我採用DP 測資太大...)

/************************************************************/

#include<stdio.h>
#include<stdlib.h>
int n;
char map[50][50]={0};
int data[50][2]={0},flag[101]={0},max=0;
void DFS(int now,int many)
{
  if(many>max) max=many;
  int a;
  for(a=1;a<=n;a++)
   if(map[now][a]==1&&flag[a]==0)
    {
      flag[a]=1;
      DFS(a,many+1);
      flag[a]=0;
    }
}
main()
{
 int a,b,time=0;
 for(a=1;a<50;a++)
  map[0][a]=1;
 while(scanf("%d",&n)==1)
   {
     for(a=1;a<50;a++)
      for(b=1;b<50;b++)
        map[a][b]=0;
     for(a=1;a<=n;a++)   scanf("%d %d",&data[a][0],&data[a][1]);
     for(a=1;a<=n;a++)
       for(b=1;b<=n;b++)
           if((data[a][0]<=data[b][0]&&data[a][1]<=data[b][1])||(data[a][0]<=data[b][1]&&data[a][1]<=data[b][0]))
            { map[a][b]=1;}
      max=0;
      DFS(0,0);
      printf("%d\n",max);
   }
 return 0;
}
/*
4
2 6
3 2
5 1
4 7
*/

台長: 來源不明
人氣(681) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: 資訊競賽 |
此分類下一篇:95高市資訊學科能力競賽 布林矩陣的等價短陣
此分類上一篇:97高市資訊學科能力競賽 2. 網路設計

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文