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

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+行哦,你菜啦,哈哈。  回復  更多評論   

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

@王私江
0ms  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


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

導航

統計

常用鏈接

留言簿

文章檔案(85)

搜索

最新評論

  • 1.?re: poj1426
  • 我嚓,,輝哥,,居然搜到你的題解了
  • --season
  • 2.?re: poj3083
  • @王私江
    (8+i)&3 相當于是 取余3的意思 因為 3 的 二進制是 000011 和(8+i)
  • --游客
  • 3.?re: poj3414[未登錄]
  • @王私江
    0ms
  • --jh818012
  • 4.?re: poj3414
  • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
  • --王私江
  • 5.?re: poj1426
  • 評論內容較長,點擊標題查看
  • --王私江
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久精品女人| 在线亚洲自拍| 久久精品官网| 老妇喷水一区二区三区| 99ri日韩精品视频| 亚洲免费视频成人| 亚洲黄色精品| 午夜一区二区三区不卡视频| 亚洲激情图片小说视频| 亚洲一区二区三区四区视频| 最新国产成人在线观看| 午夜伦欧美伦电影理论片| 99天天综合性| 麻豆精品国产91久久久久久| 亚洲欧美日韩国产一区| 美女精品在线观看| 久久精品导航| 国产精品久久久久久久久久免费 | 久久电影一区| 中文欧美字幕免费| 麻豆精品国产91久久久久久| 久久成人人人人精品欧| 欧美日韩在线观看视频| 欧美激情在线有限公司| 国产亚洲综合精品| 亚洲性视频网址| 亚洲免费观看高清完整版在线观看| 性欧美18~19sex高清播放| 中文国产一区| 欧美激情欧美狂野欧美精品| 美玉足脚交一区二区三区图片| 国产精品专区第二| 一区二区av在线| 一区二区三区精品视频在线观看| 免费观看日韩av| 另类综合日韩欧美亚洲| 亚洲一线二线三线久久久| 亚洲精品影视在线观看| 老司机凹凸av亚洲导航| 欧美在线视频二区| 国产精品免费视频xxxx| 99国产精品久久久久久久久久 | 欧美一区二区精品| 香蕉久久国产| 国产精品日韩一区二区三区| 一区二区欧美在线| 亚洲手机成人高清视频| 欧美四级在线| 国产精品99久久久久久久女警 | 欧美成人精品高清在线播放| 欧美国产免费| 亚洲美女中出| 欧美三区在线观看| 在线亚洲+欧美+日本专区| 亚洲午夜一区二区三区| 国产精品久久波多野结衣| 亚洲一区视频在线| 久久九九电影| 亚洲电影免费观看高清完整版在线 | 国产农村妇女精品一二区| 亚洲宅男天堂在线观看无病毒| 欧美一区二区福利在线| 韩日精品在线| 看片网站欧美日韩| 91久久香蕉国产日韩欧美9色 | 久久影院午夜论| 亚洲国产二区| 一区二区三区视频在线播放| 国产精品色午夜在线观看| 欧美一区1区三区3区公司| 美国十次了思思久久精品导航| 亚洲国产精品悠悠久久琪琪| 欧美精彩视频一区二区三区| 中文日韩在线| 开心色5月久久精品| 亚洲免费观看高清完整版在线观看熊 | 99精品免费网| 国产精品美女久久久久av超清 | 先锋影院在线亚洲| 精久久久久久| 欧美日韩成人综合| 欧美一区二区三区在线| 亚洲高清在线视频| 午夜精品网站| 亚洲国产一区视频| 国产精品久久久久久妇女6080 | 亚洲日本无吗高清不卡| 欧美日韩免费一区二区三区视频| 亚洲免费在线视频| 亚洲大片在线观看| 亚洲网友自拍| 国产精品自拍一区| 国产精品一区二区久久国产| 国产精品国产三级国产专区53| 欧美连裤袜在线视频| 欧美激情第3页| 欧美激情一区二区久久久| 欧美freesex8一10精品| 麻豆成人精品| 欧美激情一区二区三区在线 | 久久精品系列| 久久精品99久久香蕉国产色戒| 欧美一区二区日韩| 欧美一区二区三区在线免费观看| 性做久久久久久久久| 欧美一二三视频| 欧美中文字幕在线播放| 久久久国产一区二区| 久久永久免费| 欧美成人激情视频免费观看| 欧美大片第1页| 欧美日韩在线直播| 国产精品久久久久久久久免费樱桃| 国产精品看片你懂得| 国产日产欧美a一级在线| 红桃视频亚洲| 亚洲日韩中文字幕在线播放| 日韩一级黄色av| 亚洲女人天堂成人av在线| 欧美一区国产一区| 久久午夜av| 亚洲国产三级在线| 99一区二区| 欧美一区二区三区成人| 久久一区二区三区国产精品| 欧美激情在线播放| 国产精品色网| 在线成人亚洲| 一区二区三区欧美日韩| 欧美一级二区| 免费av成人在线| 亚洲精品在线免费观看视频| 亚洲欧美欧美一区二区三区| 久久伊人免费视频| 国产精品99一区二区| 精品成人在线观看| 亚洲香蕉成视频在线观看| 久久视频在线视频| 亚洲精品免费看| 欧美一区二区免费观在线| 欧美成人综合一区| 国产欧美日本| 亚洲乱亚洲高清| 欧美在线精品一区| 亚洲国产一区二区视频| 欧美亚洲一区| 欧美日韩日韩| 亚洲高清色综合| 午夜视频一区二区| 亚洲大胆人体视频| 亚洲欧美日韩第一区| 欧美成人久久| 国产综合自拍| 亚洲女与黑人做爰| 欧美激情精品久久久久久| 亚洲制服丝袜在线| 欧美精品入口| 在线成人av| 久久精品国产亚洲一区二区| 亚洲精品欧美一区二区三区| 久久国产主播精品| 国产精品免费aⅴ片在线观看| 亚洲精品美女91| 免费看的黄色欧美网站| 亚洲欧洲av一区二区| 欧美日韩视频| 亚洲精品乱码久久久久| 亚洲毛片在线| 久久亚洲欧美| 亚洲永久免费精品| 欧美日韩国产色综合一二三四| 伊人久久av导航| 久久精品论坛| 亚洲在线播放| 欧美三级视频在线播放| 亚洲精品偷拍| 欧美黄免费看| 久久久亚洲高清| 国产一区二区三区久久| 欧美一区在线直播| 在线天堂一区av电影| 欧美日韩成人网| 99国产精品视频免费观看| 欧美黄色一级视频| 开心色5月久久精品| 依依成人综合视频| 久久夜色精品国产欧美乱极品| 欧美亚洲免费电影| 国产欧美在线看| 性欧美激情精品| 亚洲一区二区在线看| 国产精品视屏| 西西裸体人体做爰大胆久久久 | 麻豆久久久9性大片| 久久国产高清| 国模一区二区三区| 另类天堂av| 免费在线一区二区| 亚洲精品免费在线观看| 亚洲人成网站色ww在线|