<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      zoj - 1008 Gnome Tetravex

      http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1008

      題目很長,讀完后很容易理解錯。題目中要求的不是移動三角形而是對整個矩形進(jìn)行移動來達(dá)到目的!!!

      題目讀懂后就容易寫了,很明顯是dfs+回溯的題,注意相同的矩形可以存儲在一塊,可以方便dfs。

      ac后發(fā)現(xiàn)運行時間竟達(dá)到5000+ms,還沒超時,看到有0s過的,無奈,只能仰視~~Orz。。。

      代碼如下:

      #include<iostream>
      #include<cstdio>
      #include<cstring>
      using namespace std;
      /*
      注意不是選擇方塊或拼接三角形,是移動整個方塊!!!
      */
      int n, cur;
      int map[30][4];
      int count[30];
      int result[30];

      int dfs(int num, int n)
      {
      int i;
      if(num == n*n) //放置完成
      return 1;
      for(i = 0; i < cur; i++) //從左向右,從上向下依次放方塊
      {
      if(!count[i])
      continue;
      if(num % n != 0) //不是第一列的位置
      {
      if(map[i][3] != map[result[num-1]][1]) //放置第i個方塊與左邊放置的方塊不匹配
      continue;
      }
      if(num / n != 0) //不是第一行的位置
      {
      if(map[i][0] != map[result[num-n]][2]) //放置第i個方塊與上邊放置的方塊不匹配
      continue;
      }
      result[num] = i; //第i個方塊可以放到num的位置
      count[i]--;
      if(dfs(num+1, n))
      return 1;
      else
      count[i]++;
      }
      return 0;
      }

      int main()
      {
      int i, j, a, b, c, d, numofcases = 0, ok = 0;
      while(scanf("%d", &n) && n)
      {
      cur = 0;
      memset(count, 0, sizeof(count));
      for(i = 0; i < n*n; i++)
      {
      scanf("%d%d%d%d", &a, &b, &c, &d);
      for(j = 0; j < cur; j++) //相同的方塊存在一塊
      {
      if(map[j][0] == a && map[j][1] == b && map[j][2] == c && map[j][3] == d)
      {
      count[j]++;
      break;
      }
      }
      if(j == cur)
      {
      map[cur][0] = a;
      map[cur][1] = b;
      map[cur][2] = c;
      map[cur][3] = d;
      cur ++;
      count[j]++;
      }
      }
      if(!ok)
      ok = 1;
      else printf("\n");
      if(dfs(0, n))
      printf("Game %d: Possible\n", ++numofcases);
      else printf("Game %d: Impossible\n", ++numofcases);
      }
      return 0;
      }

       

      posted @ 2012-03-04 18:31  楓蕭蕭  閱讀(877)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 熟女人妻视频| 亚洲精品成人无限看| 92国产精品午夜福利免费| 亚洲最大成人网色| 国产精品人妻中文字幕| 国产麻豆精品一区一区三区| 无码天堂亚洲国产AV| 97成人碰碰久久人人超级碰oo| 欧美激烈精交gif动态图| 99久久久无码国产精品免费| 国产精品熟女亚洲av麻豆| 国产性色的免费视频网站| 国产亚洲国产精品二区| 亚洲精品一区二区三区片| 人体内射精一区二区三区| 中国女人内谢69xxxx| 肥大bbwbbw高潮抽搐| 亚洲欧美电影在线一区二区| 国产不卡在线一区二区| 日本成本人片免费网站| 国产精品久久久久aaaa| 午夜福利在线观看成人| 内射干少妇亚洲69XXX| 福利一区二区视频在线| japan黑人极大黑炮| 日韩高清不卡免费一区二区| 国产va免费精品观看| 国产精品国产亚洲区久久| 精品一区二区中文字幕| 达州市| 成人午夜在线观看日韩| 2021国产在线视频| 中文字幕 制服 亚洲 另类| 国产一区日韩二区欧美三区| 屯留县| 欧美熟妇xxxxx欧美老妇不卡| 久热中文字幕在线| 日韩中文字幕人妻精品| 国产麻豆放荡av激情演绎| 亚洲国产午夜精品理论片| av无码小缝喷白浆在线观看|