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

pku 3687 Labeling Balls 逆向拓撲!注意

英文太短,直接貼

Description

Windy has N balls of distinct weights from 1 unit to N units. Now he tries to label them with 1 to N in such a way that:

  1. No two balls share the same label.
  2. The labeling satisfies several constrains like "The ball labeled with a is lighter than the one labeled with b".

Can you help windy to find a solution?


Input

The first line of input is the number of test case. The first line of each test case contains two integers, N (1 ≤ N ≤ 200) and M (0 ≤ M ≤ 40,000). The next M line each contain two integers a and b indicating the ball labeled with a must be lighter than the one labeled with b. (1 ≤ a, bN) There is a blank line before each test case.

Output

For each test case output on a single line the balls' weights from label 1 to label N. If several solutions exist, you should output the one with the smallest weight for label 1, then with the smallest weight for label 2, then with the smallest weight for label 3 and so on... If no solution exists, output -1 instead.

然后這題是一個裸的拓撲排序,但是輸出有點忽悠人,要求輸出標簽代表的球的重量,按照標簽號排序,而且對于重復情況需要標簽ID小的球的質量盡量小。
這里有一個錯誤折騰死人,如果按照正向拓撲,給標簽號小的標簽分配給質量小的球是不對的,應為對于拓撲序來說,很多鏈是平行的,給鏈頭元素最小值的貪心策略并不能保證全局最小,如下圖兩條平行鏈,如果給3分配了較小質量的球,1就得不到最小質量的球,導致結果不滿組最優,但是如果逆向拓撲,給鏈頭標簽最大的分配最重的物體一定能保證正向拓撲序最小
4 2 5
3 1
 1 # include <cstdio>
 2 # include <queue>
 3 # include <vector>
 4 # include <cstring>
 5 using namespace std;
 6 priority_queue<int,vector<int>,less<int> >q;
 7 int g[205],degree[205];
 8 int nxt[50000],v[50000],c,n,m;
 9 int ans[205],num;
10 int main()
11 {
12     int testcase;
13     scanf("%d",&testcase);
14     while(testcase--)
15     {
16         memset(g,-1,sizeof(g));
17         memset(degree,0,sizeof(degree));
18         c=num=0;
19     while(!q.empty()) q.pop();
20         scanf("%d%d",&n,&m);
21         while(m--)
22         {
23             int a,b;
24             scanf("%d%d",&a,&b);
25             v[c]=a;
26             nxt[c]=g[b];
27             g[b]=c++;
28         degree[a]++;
29         }
30         for(int i=1;i<=n;i++)
31             if(!degree[i])
32                 q.push(i);
33     num=n;
34         while(!q.empty())
35         {
36             int top=q.top();
37             q.pop();
38             ans[top]=num--;
39             for(int p=g[top];p!=-1;p=nxt[p])
40             {
41                 degree[v[p]]--;
42                 if(!degree[v[p]])
43                     q.push(v[p]);
44             }
45         }
46         if(num>0)
47             printf("-1\n");
48         else
49         {
50             printf("%d",ans[1]);
51             for(int i=2;i<=n;i++)
52           printf(" %d",ans[i]);
53             printf("\n");
54         }
55     }
56     return 0;
57 }

posted on 2010-10-22 02:24 yzhw 閱讀(163) 評論(0)  編輯 收藏 引用 所屬分類: graph

<2010年10月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

導航

統計

公告

統計系統

留言簿(1)

隨筆分類(227)

文章分類(2)

OJ

最新隨筆

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩精品欧美日韩精品| 欧美激情视频一区二区三区不卡| 欧美在线看片a免费观看| 久久激情五月激情| 激情小说另类小说亚洲欧美| 亚洲免费不卡| 亚洲欧美亚洲| 欧美成人免费在线| 在线一区二区日韩| 久久蜜桃香蕉精品一区二区三区| 亚洲欧洲日韩综合二区| 欧美三级电影精品| 久久久99国产精品免费| 亚洲裸体在线观看| 久久亚洲精品网站| 亚洲性夜色噜噜噜7777| 黄色av成人| 欧美日韩视频在线一区二区 | 久久女同精品一区二区| 日韩视频中午一区| 久热精品在线| 午夜精彩国产免费不卡不顿大片| 亚洲第一在线综合在线| 国产精品大全| 欧美91大片| 欧美亚洲一区| 一本色道久久精品| 欧美激情亚洲激情| 在线观看一区二区视频| 欧美风情在线观看| 欧美视频一区二区在线观看| 欧美一级日韩一级| 亚洲精品免费看| 亚洲一区二区毛片| 亚洲经典三级| 红桃视频国产精品| 国产日韩欧美麻豆| 欧美特黄一区| 欧美久久视频| 久久综合伊人77777蜜臀| 午夜精品久久久久| 在线国产欧美| 国产日韩欧美日韩| 黄色日韩在线| 国产精品综合| 欧美成人一区二区三区| 亚洲美女淫视频| 免费美女久久99| 欧美一级在线亚洲天堂| 亚洲综合精品四区| 亚洲欧美成人综合| 欧美亚洲视频一区二区| 久久精品一区二区三区不卡| 久久一区二区精品| 欧美成人黄色小视频| 91久久黄色| 亚洲精品国久久99热| 中文精品视频| 久久成人精品一区二区三区| 久久亚洲综合| 欧美日韩国产区| 国产欧美va欧美va香蕉在| 影音先锋久久| 一区二区三区你懂的| 欧美在线视频观看免费网站| 久久综合免费视频影院| 亚洲高清三级视频| 一本大道久久a久久精二百| 午夜精品视频在线| 久久在线免费| 欧美亚州韩日在线看免费版国语版| 国产视频一区二区三区在线观看| 在线观看欧美日韩国产| 夜夜嗨av一区二区三区| 欧美中文字幕久久| 亚洲国产精品成人久久综合一区| 中国成人亚色综合网站| 久久精品视频在线播放| 欧美精品一区二区三区蜜臀| 国产精品日本精品| 亚洲国产精品综合| 午夜精品短视频| 欧美mv日韩mv亚洲| 亚洲一区二区视频| 欧美高清视频在线播放| 国产精品一区二区三区乱码| 久久爱www.| 欧美一区二区三区免费视频| 一区二区三区在线看| 韩国精品在线观看| 一区二区三区产品免费精品久久75| 欧美一区二区三区免费大片| 欧美va天堂va视频va在线| 亚洲精品久久| 久久久久亚洲综合| 国产精品视频在线观看| 亚洲激情电影中文字幕| 欧美亚洲综合在线| 亚洲精品美女在线观看| 美女黄毛**国产精品啪啪| 国产精品婷婷| 一区二区三区四区国产| 欧美不卡高清| 午夜精品一区二区三区在线| 蜜臀91精品一区二区三区| 国产麻豆精品视频| 亚洲视频在线免费观看| 欧美激情精品久久久六区热门| 亚洲免费在线视频| 欧美人妖在线观看| 亚洲激情视频在线| 欧美专区中文字幕| 一区二区三区四区在线| 欧美国产专区| 亚洲国产精品欧美一二99| 欧美一区成人| 亚洲视频999| 99视频在线观看一区三区| 欧美国产三级| 麻豆91精品91久久久的内涵| 亚洲视频在线免费观看| 久久av一区二区| 久久精视频免费在线久久完整在线看| 尹人成人综合网| 亚洲一区二区三区精品动漫| 日韩视频在线播放| 日韩午夜av在线| 日韩西西人体444www| 亚洲视频一区| 午夜影院日韩| 久久久亚洲欧洲日产国码αv | 欧美日韩在线免费观看| 亚洲国产成人在线视频| 老司机午夜免费精品视频| 亚洲欧美一区二区激情| 国产精品网站在线观看| 亚洲欧美日韩久久精品 | 久久精品五月婷婷| 国产三级精品在线不卡| 国产女优一区| 亚洲精品一级| 欧美成人午夜影院| 日韩视频一区二区三区在线播放| 一区二区三区四区精品| 欧美一区在线看| 国产精品成人免费视频| 亚洲大片在线观看| 国产一区再线| 这里只有精品在线播放| 国产欧美精品国产国产专区| 亚洲视频在线二区| 欧美aⅴ一区二区三区视频| 99精品视频免费在线观看| 欧美色视频日本高清在线观看| 久久狠狠婷婷| 性色av一区二区三区在线观看| 欧美日韩色综合| 日韩视频国产视频| 亚洲最新在线视频| 久久精品国产综合| 日韩一级欧洲| 久久亚洲精品欧美| 欧美激情综合在线| 国产精品久久久久毛片大屁完整版 | 欧美国产欧美亚洲国产日韩mv天天看完整 | 浪潮色综合久久天堂| 久久成人免费网| 欧美激情一区三区| 亚洲午夜久久久久久尤物| 欧美一区网站| 日韩一本二本av| 欧美亚洲第一页| 久久福利视频导航| 久久久7777| 亚洲人成免费| 亚洲一区尤物| 精品999在线播放| 亚洲高清一区二| 欧美新色视频| 久久久久国产一区二区三区| 狼人社综合社区| 午夜亚洲伦理| 欧美国产日韩精品| 久久精品99国产精品日本| 欧美色图一区二区三区| 久久成人羞羞网站| 欧美日本在线观看| 亚洲欧美国产77777| 亚洲欧美日韩区| 最新日韩中文字幕| 亚洲人成网站精品片在线观看| 欧美日韩一区二区在线观看视频 | 影音国产精品| 国产精品成人免费| 麻豆成人av| 欧美日韩综合| 久久不射中文字幕| 欧美不卡福利| 久久精品道一区二区三区| 欧美乱人伦中文字幕在线|