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

poj3414

Pots

Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 6116 Accepted: 2582 Special Judge

Description

You are given two pots, having the volume of A and B liters respectively. The following operations can be performed:

  1. FILL(i)        fill the pot i (1 ≤ i ≤ 2) from the tap;
  2. DROP(i)      empty the pot i to the drain;
  3. POUR(i,j)    pour from pot i to pot j; after this operation either the pot j is full (and there may be some water left in the pot i), or the pot i is empty (and all its contents have been moved to the pot j).

Write a program to find the shortest possible sequence of these operations that will yield exactly C liters of water in one of the pots.

Input

On the first and only line are the numbers A, B, and C. These are all integers in the range from 1 to 100 and C≤max(A,B).

Output

The first line of the output must contain the length of the sequence of operations K. The following K lines must each describe one operation. If there are several sequences of minimal length, output any one of them. If the desired result can’t be achieved, the first and only line of the file must contain the word ‘impossible’.

Sample Input

3 5 4

Sample Output

6
FILL(2)
POUR(2,1)
DROP(1)
POUR(2,1)
FILL(2)
POUR(2,1)
挺簡單的題目
沒看完題目,不知道還有impossible的情況,wa了一次,然后第二遍忘了輸出impossible之后要return,re一次
呃,蛋疼
  1#include<stdio.h>
  2#include<string.h>
  3#include<math.h>
  4int a,b,c;
  5struct node
  6{
  7    int a,b,d,d1;
  8}
;
  9struct node q[100050];
 10int wh[10005];
 11int num0[10005],num;
 12short flag[105][105];
 13int head,tail,k;
 14int bfs()
 15{
 16    int nowa,nowb,aa,bb;
 17    head=0;
 18    tail=1;
 19    q[tail].a=0;
 20    q[tail].b=0;
 21    flag[0][0]=1;
 22    wh[tail]=0;
 23    while (head<tail)
 24    {
 25        head++;
 26        nowa=q[head].a;
 27        nowb=q[head].b;
 28        if ((q[head].a==c)||(q[head].b==c))
 29        {
 30            return head;
 31        }

 32        if (nowa!=a)
 33        {
 34            if (!flag[a][nowb])
 35            {
 36                tail++;
 37                q[tail].a=a;
 38                q[tail].b=nowb;
 39                q[tail].d=1;
 40                q[tail].d1=1;
 41                wh[tail]=head;
 42                flag[a][nowb]=1;
 43            }

 44        }

 45        if (nowb!=b)
 46        {
 47            if (!flag[nowa][b])
 48            {
 49                tail++;
 50                q[tail].a=nowa;
 51                q[tail].b=b;
 52                q[tail].d=1;
 53                q[tail].d1=2;
 54                wh[tail]=head;
 55                flag[nowa][b]=1;
 56            }

 57        }

 58        if (nowa!=0)
 59        {
 60            if (!flag[0][nowb])
 61            {
 62                tail++;
 63                q[tail].a=0;
 64                q[tail].b=nowb;
 65                q[tail].d=2;
 66                q[tail].d1=1;
 67                wh[tail]=head;
 68                flag[0][nowb]=1;
 69            }

 70        }

 71        if (nowb!=0)
 72        {
 73            if (!flag[nowa][0])
 74            {
 75                tail++;
 76                q[tail].a=nowa;
 77                q[tail].b=0;
 78                q[tail].d=2;
 79                q[tail].d1=2;
 80                wh[tail]=head;
 81                flag[nowa][0]=1;
 82            }

 83        }

 84        if (nowa!=0)
 85        {
 86            if (nowa>=b-nowb)
 87            {
 88                aa=nowa+nowb-b;
 89                //printf("aa=%d\n",aa);
 90                bb=b;
 91                if (!flag[aa][bb])
 92                {
 93                    tail++;
 94                    q[tail].a=aa;
 95                    q[tail].b=bb;
 96                    q[tail].d=3;
 97                    q[tail].d1=1;
 98                    wh[tail]=head;
 99                    flag[aa][bb]=1;
100                }

101            }

102            else if(nowa<b-nowb)
103            {
104                aa=0;
105                bb=nowb+nowa;
106                if (!flag[aa][bb])
107                {
108                    tail++;
109                    q[tail].a=aa;
110                    q[tail].b=bb;
111                    q[tail].d=3;
112                    q[tail].d1=1;
113                    wh[tail]=head;
114                    flag[aa][bb]=1;
115                }

116            }

117        }

118        if (nowb!=0)
119        {
120            if (nowb>=a-nowa)
121            {
122                aa=a;
123                bb=nowb+nowa-a;
124                if (!flag[aa][bb])
125                {
126                    tail++;
127                    q[tail].a=aa;
128                    q[tail].b=bb;
129                    q[tail].d=3;
130                    q[tail].d1=2;
131                    wh[tail]=head;
132                    flag[aa][bb]=1;
133                }

134            }

135            else if (nowb<a-nowa)
136            {
137                bb=0;
138                aa=nowa+nowb;
139                if (!flag[aa][bb])
140                {
141                    tail++;
142                    q[tail].a=aa;
143                    q[tail].b=bb;
144                    q[tail].d=3;
145                    q[tail].d1=2;
146                    wh[tail]=head;
147                    flag[aa][bb]=1;
148                }

149            }

150        }

151    }

152    return -1;
153}

154void print(int k1)
155{
156    int i;
157    i=k1;
158    if (k1==-1)
159    {
160        printf("impossible\n");
161        return;
162    }

163    num=0;
164    while(i!=1)
165    {
166        num++;
167        num0[num]=i;
168        i=wh[i];
169    }

170    printf("%d\n",num);
171    for(i=num; i>=1; i--)
172        if (q[num0[i]].d==1)
173        {
174            printf("FILL(%d)\n",q[num0[i]].d1);
175        }

176        else if(q[num0[i]].d==2)
177        {
178            printf("DROP(%d)\n",q[num0[i]].d1);
179        }

180        else if(q[num0[i]].d==3)
181        {
182            if (q[num0[i]].d1==1)
183            {
184                printf("POUR(1,2)\n");
185            }

186            else if(q[num0[i]].d1==2)
187            {
188                printf("POUR(2,1)\n");
189            }

190        }

191}

192int main()
193{
194    scanf("%d%d%d",&a,&b,&c);
195    memset(flag,0,sizeof(flag));
196    if ((c>a)&&(c>b))
197    {
198        k=-1;
199        print(k);
200    }

201    else
202    {
203        k=bfs();
204        print(k);
205    }

206    return 0;
207}

208

posted on 2012-03-20 19:47 jh818012 閱讀(1183) 評論(2)  編輯 收藏 引用

評論

# re: poj3414 2012-04-02 17:48 王私江

200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。  回復(fù)  更多評論   

# re: poj3414[未登錄] 2012-04-02 19:59 jh818012

@王私江
0ms  回復(fù)  更多評論   


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導(dǎo)航

統(tǒng)計

常用鏈接

留言簿

文章檔案(85)

搜索

最新評論

  • 1.?re: poj1426
  • 我嚓,,輝哥,,居然搜到你的題解了
  • --season
  • 2.?re: poj3083
  • @王私江
    (8+i)&3 相當(dāng)于是 取余3的意思 因為 3 的 二進制是 000011 和(8+i)
  • --游客
  • 3.?re: poj3414[未登錄]
  • @王私江
    0ms
  • --jh818012
  • 4.?re: poj3414
  • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
  • --王私江
  • 5.?re: poj1426
  • 評論內(nèi)容較長,點擊標(biāo)題查看
  • --王私江
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            麻豆乱码国产一区二区三区| 91久久在线观看| 欧美久久电影| 日韩视频在线你懂得| 亚洲欧美日韩精品综合在线观看| 国产精品中文字幕欧美| 久久久免费观看视频| 亚洲国产成人久久综合| 亚洲一区二区三区久久| 国产欧美日韩精品丝袜高跟鞋| 久久久av毛片精品| 亚洲精品在线免费观看视频| 欧美伊人久久大香线蕉综合69| 亚洲国产精品成人精品| 国产精品扒开腿做爽爽爽视频| 久久精品91| 亚洲美女免费视频| 另类天堂视频在线观看| 一区二区国产精品| 一区二区三区在线免费播放| 欧美日韩一区视频| 久久久久久亚洲精品杨幂换脸| 日韩亚洲一区二区| 欧美va日韩va| 欧美呦呦网站| 一区二区三区精品久久久| 好看的日韩视频| 欧美性猛交xxxx免费看久久久 | 国产日韩欧美在线一区| 久久一区欧美| 午夜久久黄色| 日韩视频在线观看国产| 欧美成人高清| 久久国产天堂福利天堂| 9色精品在线| 在线精品亚洲一区二区| 国产一区二区三区电影在线观看| 欧美精品一卡二卡| 久久久综合免费视频| 亚洲欧美成人在线| 一区二区高清视频在线观看| 欧美黑人国产人伦爽爽爽| 欧美一区二区三区免费看| 99精品视频免费全部在线| 一色屋精品视频在线看| 国产目拍亚洲精品99久久精品| 欧美日产在线观看| 美女精品视频一区| 久久精品中文字幕一区二区三区 | 欧美国产日韩亚洲一区| 久久国产精品久久国产精品| 亚洲性视频h| 一本色道久久综合| 亚洲精品美女91| 在线免费观看一区二区三区| 国产欧美一区二区精品性色| 国产精品超碰97尤物18| 欧美精品在线一区二区| 免费亚洲一区二区| 久久网站热最新地址| 久久久不卡网国产精品一区| 亚洲欧美一区二区视频| 亚洲一区精品在线| 亚洲视频图片小说| 一本久久综合亚洲鲁鲁| 一区二区三区欧美| 夜夜嗨av一区二区三区四季av| 亚洲精品久久嫩草网站秘色| 亚洲国产精品视频| 亚洲高清在线| 亚洲精品国产视频| 亚洲免费高清| 一区二区三区视频在线看| 在线一区日本视频| 亚洲一区免费| 欧美一区二区网站| 久久精品免费播放| 久久这里只有精品视频首页| 老牛国产精品一区的观看方式| 久久综合狠狠综合久久综青草| 久久三级视频| 欧美电影美腿模特1979在线看 | 老司机精品导航| 免费h精品视频在线播放| 欧美成人精品三级在线观看| 欧美激情综合在线| 国产精品久久精品日日| 国产精品亚洲一区二区三区在线| 国产美女一区二区| 在线播放中文字幕一区| 亚洲人成在线播放| 亚洲一区二区少妇| 久久国产精品一区二区三区| 美国十次成人| 91久久在线观看| 亚洲丝袜av一区| 欧美一区二区三区视频在线观看| 久久精品国产99精品国产亚洲性色 | 亚洲无线观看| 久久激五月天综合精品| 免费一区视频| 99亚洲一区二区| 香蕉久久一区二区不卡无毒影院| 久久九九电影| 欧美日韩成人在线| 国产欧美日韩一区二区三区在线| 有坂深雪在线一区| 亚洲视频视频在线| 久久在线免费| 日韩午夜高潮| 久久精品视频播放| 欧美日韩高清区| 国产亚洲精品一区二区| 亚洲精品欧美一区二区三区| 午夜精品久久久久久久白皮肤 | 欧美精品在线视频| 国产日韩精品久久| 亚洲精品视频一区| 欧美主播一区二区三区| 亚洲国产精品va在看黑人| 亚洲一区二区三区成人在线视频精品 | 性欧美大战久久久久久久免费观看 | 久久午夜电影| 国产精品国产三级国产普通话三级 | 久久久久久久久岛国免费| 亚洲破处大片| 久久精彩视频| 国产精品白丝jk黑袜喷水| 亚洲韩国青草视频| 欧美中文日韩| 99精品国产福利在线观看免费| 久久九九免费| 国产精品久久久久一区| 亚洲欧洲中文日韩久久av乱码| 久久aⅴ乱码一区二区三区| 最新日韩在线| 久久久中精品2020中文| 国产乱码精品一区二区三区忘忧草| 亚洲欧洲精品天堂一级| 久久婷婷一区| 午夜在线精品| 欧美天堂亚洲电影院在线播放| 亚洲国产导航| 久久久久久亚洲精品中文字幕| 一区二区三区黄色| 欧美成人精品在线视频| 国产亚洲欧洲997久久综合| 亚洲一区二区三区三| 亚洲精品小视频在线观看| 久热re这里精品视频在线6| 国产视频一区二区三区在线观看| 中文一区二区在线观看| 亚洲国产高清自拍| 久久免费国产| 国产一区二区欧美| 欧美在线3区| 亚洲综合精品四区| 国产精品色婷婷| 亚洲欧美区自拍先锋| 99视频国产精品免费观看| 欧美国产综合一区二区| 亚洲国产日韩在线一区模特| 久久综合激情| 久久精品国产亚洲精品| 国产香蕉久久精品综合网| 亚洲精品中文字幕在线| 99精品欧美一区| 亚洲小少妇裸体bbw| 欧美精品播放| 亚洲精品在线观看免费| 久久久久国产一区二区三区| 国产色视频一区| 亚洲欧美日韩国产| 亚洲视频第一页| 国产精品福利在线观看| 一区二区三区国产在线| 日韩一二三区视频| 麻豆成人在线| 久久成人羞羞网站| 欧美在线高清视频| 久久久精品网| 亚洲伊人伊色伊影伊综合网| 欧美国产一区二区在线观看| 尤妮丝一区二区裸体视频| 欧美一区二区在线看| 日韩亚洲国产精品| 欧美aaaaaaaa牛牛影院| 国内精品久久久久影院 日本资源| 亚洲一级黄色片| 亚洲精品视频免费| 欧美sm极限捆绑bd| 亚洲国产成人精品视频| 男男成人高潮片免费网站| 欧美在线免费| 国产一区二区三区观看| 久久国产精品久久精品国产| 小辣椒精品导航| 国产日韩欧美在线播放不卡| 久久成人精品| 欧美伊人久久大香线蕉综合69|