青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

A Za, A Za, Fighting...

堅信:勤能補拙

PKU 1128 Frame Stacking

問題:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1128

思路:
想法是有:先找出沒有被任何其他frame覆蓋的frame,然后將該frame進行標記,使之匹配任何字母,然后重復以上過程
不過,程序不知道該如何寫

參考discuss以及其他人思路,發現可以用拓撲排序來做(拓撲排序,參考算法導論)
如何根據輸入來建立鄰接矩陣比較有意思,另外根據各個頂點的入度DFS實現拓撲排序

代碼:
  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 #include<string.h>
  4 #define MAX_LEN 31
  5 #define MAX_NUM 27
  6 char map[MAX_LEN][MAX_LEN];
  7 int n, m;
  8 int adj[MAX_NUM][MAX_NUM], num, in[MAX_NUM], visited[MAX_NUM];
  9 int x1, y1, x2, y2;
 10 
 11 void
 12 search(char ch)
 13 {
 14     int i, j;
 15     x1 = y1 = MAX_LEN;
 16     x2 = y2 = -1;
 17     for(i=0; i<n; i++)
 18         for(j=0; j<m; j++)
 19             if(map[i][j] == ch) {
 20                 if(i<x1) x1 = i;
 21                 if(i>x2) x2 = i;
 22                 if(j<y1) y1 = j;
 23                 if(j>y2) y2 = j;
 24             }
 25 }
 26 
 27 void
 28 build_graph()
 29 {
 30     int i, j, k;
 31     char ch;
 32     num = 0;
 33     memset(adj, 0sizeof(adj));
 34     memset(in-1sizeof(in));
 35     for(i=0; i<n; i++) {
 36         for(j=0; j<m; j++) {
 37             if(map[i][j]=='.' || in[map[i][j]-'A']>-1)
 38                 continue;
 39             in[map[i][j]-'A'= 0;
 40             ++num;
 41             search(map[i][j]);
 42             for(k=x1; k<=x2; k++) {
 43                 ch = map[k][y1];
 44                 if(ch != map[i][j])
 45                     adj[map[i][j]-'A'][ch-'A'= 1;
 46             }
 47             for(k=x1; k<=x2; k++) {
 48                 ch = map[k][y2];
 49                 if(ch != map[i][j])
 50                     adj[map[i][j]-'A'][ch-'A'= 1;
 51             }
 52             for(k=y1; k<=y2; k++) {
 53                 ch = map[x1][k];
 54                 if(ch != map[i][j])
 55                     adj[map[i][j]-'A'][ch-'A'= 1;
 56             }
 57             for(k=y1; k<=y2; k++) {
 58                 ch = map[x2][k];
 59                 if(ch != map[i][j])
 60                     adj[map[i][j]-'A'][ch-'A'= 1;
 61             }
 62         }
 63     }
 64     for(i=0; i<MAX_NUM; i++)
 65         for(j=0; j<MAX_NUM; j++)
 66             if(adj[i][j])
 67                 ++in[j]; /* in-degree */
 68 }
 69 
 70 void
 71 topological_sort(char *str, int level)
 72 {
 73     int i, j;
 74     if(level == num) {
 75         printf("%s\n", str);
 76         return;
 77     }
 78     for(i=0; i<MAX_NUM; i++) {
 79         if(in[i]==0 && !visited[i]) {
 80             str[level] = 'A'+i;
 81             visited[i] = 1;
 82             for(j=0; j<MAX_NUM; j++)
 83                 if(adj[i][j])
 84                     --in[j];
 85             topological_sort(str, level+1);
 86             visited[i] = 0;
 87             for(j=0; j<MAX_NUM; j++)
 88                 if(adj[i][j])
 89                     ++in[j];
 90         }
 91     }
 92 }
 93 
 94 int
 95 main(int argc, char **argv)
 96 {
 97     int i;
 98     char str[MAX_NUM];
 99     while(scanf("%d %d"&n, &m)!=EOF) {
100         for(i=0; i<n; i++)
101             scanf("%s", map[i]);
102         build_graph();
103         memset(str, 0sizeof(str));
104         memset(visited, 0sizeof(visited));
105         topological_sort(str, 0);
106     }
107 }

posted on 2010-09-03 16:42 simplyzhao 閱讀(289) 評論(0)  編輯 收藏 引用 所屬分類: F_圖算法

導航

<2010年7月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美综合v| 亚洲经典三级| 国产一区二区久久| 亚洲国产精品va在线观看黑人 | 99国内精品| 久久影院亚洲| 亚洲欧美网站| 国产欧美日韩一区二区三区在线 | 亚洲一区999| 亚洲激情一区二区三区| 制服诱惑一区二区| 欧美日韩国产成人精品| 亚洲九九九在线观看| 亚洲国产导航| 欧美成人精品一区| 亚洲三级免费| 日韩午夜av在线| 农夫在线精品视频免费观看| 影音先锋亚洲精品| 欧美激情一区二区久久久| 免费观看在线综合| 99视频有精品| 亚洲影视在线| 韩国一区电影| 亚洲高清自拍| 欧美日韩国产片| 亚洲欧美激情诱惑| 香蕉久久夜色精品国产使用方法| 久久久久久久成人| 亚洲精品一区二区在线观看| 欧美极品aⅴ影院| 亚洲已满18点击进入久久| 亚洲视频福利| 亚洲三级视频| 久久久综合激的五月天| 麻豆freexxxx性91精品| 国产视频一区三区| 久久婷婷国产麻豆91天堂| 久久一二三国产| 国产精品99久久久久久久vr | 久久久久网址| 美女尤物久久精品| 亚洲一区3d动漫同人无遮挡| 性色一区二区三区| 亚洲久久成人| 午夜伦欧美伦电影理论片| 亚洲黄色毛片| 亚洲一区二区欧美日韩| 影视先锋久久| 99天天综合性| 亚洲成色www久久网站| 99精品视频一区| 经典三级久久| 亚洲调教视频在线观看| 亚洲电影专区| 亚洲欧美经典视频| 日韩网站在线| 久久国产免费| 亚洲综合精品自拍| 欧美福利电影在线观看| 久久精品国产v日韩v亚洲| 蜜桃视频一区| 久久蜜臀精品av| 国产精品乱码久久久久久| 91久久国产综合久久91精品网站| 国产精品推荐精品| 亚洲高清视频的网址| 国产欧美一区二区三区在线老狼| 日韩视频一区二区三区在线播放| 狠狠色狠色综合曰曰| 亚洲自拍偷拍网址| 亚洲少妇一区| 欧美精品一区二区三区很污很色的| 久久亚洲一区二区| 国产精品综合| 一区二区三区四区五区精品| 亚洲美女诱惑| 久久综合久久88| 久久久久国产精品一区三寸 | 香蕉乱码成人久久天堂爱免费 | 99热这里只有成人精品国产| 亚洲精选视频免费看| 国产精品高清网站| 久久免费视频在线| 亚洲自拍偷拍一区| 亚洲精品欧洲精品| 一区二区三区波多野结衣在线观看| 国产精品久久久久久久久久免费| 欧美一区二区三区免费在线看 | 国产性色一区二区| 99国产精品久久久久久久| 亚洲精品永久免费| 开心色5月久久精品| 蜜臀久久99精品久久久久久9 | 欧美不卡一卡二卡免费版| 国产精品亚洲аv天堂网| 亚洲美女淫视频| 亚洲精选中文字幕| 欧美国产精品中文字幕| 亚洲欧洲精品一区二区三区| 亚洲日本久久| 欧美日韩的一区二区| 亚洲欧洲日产国产网站| 一卡二卡3卡四卡高清精品视频| 欧美日韩dvd在线观看| 日韩午夜在线播放| 这里只有精品电影| 欧美色另类天堂2015| 中文欧美在线视频| 亚洲视频网在线直播| 国产精品一卡二卡| 久久av最新网址| 久久综合给合久久狠狠狠97色69| 一区二区三区在线视频播放| 久久另类ts人妖一区二区| 欧美成人综合| 国产精品毛片一区二区三区| 欧美怡红院视频| 美女视频一区免费观看| 亚洲免费高清| 国产精品久久亚洲7777| 久久精品国产一区二区电影| 欧美电影打屁股sp| 中文av一区特黄| 国产欧美激情| 欧美大香线蕉线伊人久久国产精品| 亚洲大胆女人| 久久综合九色欧美综合狠狠| 亚洲香蕉网站| 欧美激情bt| 欧美日韩一区免费| 欧美不卡在线| 亚洲国产成人高清精品| 亚洲视频在线一区| 国产一区二区三区久久| 欧美xx69| 欧美午夜免费电影| 亚洲一区二区精品在线| 久久精品视频网| 亚洲综合另类| 亚洲男人第一av网站| 红桃视频国产精品| 欧美精品在线免费观看| 欧美一区二区日韩| 亚洲麻豆视频| 快播亚洲色图| 香蕉久久一区二区不卡无毒影院| 亚洲精品国产欧美| 国产午夜精品久久久| 欧美片网站免费| 久久久精品一品道一区| 亚洲特黄一级片| 亚洲精品美女在线观看| 久久只精品国产| 欧美在线观看视频一区二区三区 | 亚洲视频免费| 亚洲第一视频| 国产精品视频网址| 欧美日韩国产高清| 嫩草影视亚洲| 久久国产精品色婷婷| 亚洲综合日韩中文字幕v在线| 亚洲国产精品一区| 亚洲人成网站在线播| 中文网丁香综合网| 亚洲精品视频免费观看| 欧美伦理91i| 久久亚洲欧美| 性欧美大战久久久久久久免费观看| 亚洲精品一区在线| 亚洲国产成人精品视频| 老司机久久99久久精品播放免费| 性一交一乱一区二区洋洋av| 日韩亚洲视频在线| 亚洲黄色精品| 亚洲缚视频在线观看| 国内精品视频一区| 国产日韩视频| 国产精品家教| 国产精品永久免费视频| 国产欧美一区二区三区另类精品| 国产精品久久久久毛片软件 | 亚洲电影激情视频网站| 在线播放国产一区中文字幕剧情欧美| 国产亚洲欧美日韩一区二区| 国产精品一区在线观看你懂的| 国产精品色网| 国产日韩欧美一区二区三区在线观看 | 中文av字幕一区| 亚洲精品欧美一区二区三区| 亚洲国产精品久久久久秋霞影院| 男女av一区三区二区色多| 在线视频精品一| 国产精品久久久久久户外露出| 亚洲免费成人av电影| 一区二区三区精品视频| 久久综合伊人77777尤物| 牛夜精品久久久久久久99黑人| 国产欧美一区二区三区视频| 亚洲乱码国产乱码精品精98午夜|