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

Counterfeit Dollar

該題ZOJ題號為1184 POJ題號為1013.

題目描述如下:

Sally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are true silver dollars; one coin is counterfeit even though its color and size make it indistinguishable from the real silver dollars. The counterfeit coin has a different weight from the other coins but Sally does not know if it is heavier or lighter than the real coins.

Happily, Sally has a friend who loans her a very accurate balance scale. The friend will permit Sally three weighings to find the counterfeit coin. For instance, if Sally weighs two coins against each other and the scales balance then she knows these two coins are true. Now if Sally weighs one of the true coins against a third coin and the scales do not balance then Sally knows the third coin is counterfeit and she can tell whether it is light or heavy depending on whether the balance on which it is placed goes up or down, respectively.

By choosing her weighings carefully, Sally is able to ensure that she will find the counterfeit coin with exactly three weighings.


Input
The first line of input is an integer n (n > 0) specifying the number of cases to follow. Each case consists of three lines of input, one for each weighing. Sally has identified each of the coins with the letters A-L. Information on a weighing will be given by two strings of letters and then one of the words ``up'', ``down'', or ``even''. The first string of letters will represent the coins on the left balance; the second string, the coins on the right balance. (Sally will always place the same number of coins on the right balance as on the left balance.) The word in the third position will tell whether the right side of the balance goes up, down, or remains even.


Output
For each case, the output will identify the counterfeit coin by its letter and tell whether it is heavy or light. The solution will always be uniquely determined.


Sample Input

1
ABCD EFGH even
ABCI EFJK up
ABIJ EFGH even


Sample Output
K is the counterfeit coin and it is light.

【分析】該題屬于枚舉范疇。沒有比較巧妙的可以一步到位求出結(jié)果的方法,可以一次枚舉這12枚錢幣,假設(shè)其為假,然后代入到3次稱量判斷中,如果使三次判斷都成立且判斷結(jié)果相同,那么毫無疑問這枚錢幣是假的。首先可以進(jìn)行預(yù)處理,比較結(jié)果為EVEN的可以判定兩邊的錢幣都是真的,不必參與到枚舉中來。對于上面的輸入用例,假設(shè)K是假的,代入判斷1k不出現(xiàn),那么兩邊重量應(yīng)相等,成立。繼續(xù)稱量2k出現(xiàn)在右邊,結(jié)果是UP,亦成立,且據(jù)此知道k是較輕的,因此k在右邊,而天平右邊翹起。下面進(jìn)行判斷3

k沒有出現(xiàn)在天平兩邊,而且結(jié)果為even成立。通過三次稱量判斷,且結(jié)果一致,可以肯定k就是假幣,且較輕。為了說明為題,對于上例假設(shè)L是假幣。代入稱量1L不出現(xiàn),結(jié)果even成立,稱量2L不出現(xiàn),結(jié)果為up不成立,因為只有一枚假幣,現(xiàn)假設(shè)L為假幣,而在L不出現(xiàn)的情況下天平不平衡,故L不是假幣。按照上述算法進(jìn)行枚舉,遇到可以肯定是假幣的貨幣時算法終止。

       需要注意的是當(dāng)假設(shè)一枚硬幣為假且通過三次稱量時,需要判斷三次稱量k的輕重情況是否一致,如果一次推得該硬幣較輕,而另一次卻判斷該硬幣較重,那么該硬幣肯定不是假幣。在判斷是需要注意當(dāng)左右兩邊都不出現(xiàn)假設(shè)為假的硬幣時,需要特殊處理,不能簡單的比較3次硬幣輕重是否相同,在左右兩邊都不出現(xiàn)該硬幣的情況下,不應(yīng)該把這次測量納入比較的范疇。除此之外需要的就是細(xì)心了,本人因為打印的時候多打印了個theWA6次,檢查了半個多小時,有種欲哭無淚的感覺。

具體代碼如下:

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <string.h>
  4 
  5 char left[3][7], right[3][7];
  6 char result[3][6];
  7 int a[15];
  8 int w;
  9 
 10 int judge(char ch)
 11 {
 12     int r1, r2;
 13     int i;
 14     int a[3];
        /*對當(dāng)前假設(shè)的硬幣進(jìn)行判斷*/
 15     for (i = 0; i < 3++i)
 16     {
 17         r1 = strcmp(result[i], "even");
 18         r2 = strcmp(result[i], "up");
 19         if (strchr(left[i], ch) != NULL)
 20         {
 21             if (r1 == 0)
 22                 return 0;
 23             else if (r2  == 0)
 24                 a[i] = 1;
 25             else 
 26                 a[i] = -1;
 27         }
 28         else if (strchr(right[i], ch) != NULL)
 29         {
 30             if (r1 == 0)
 31                 return 0;
 32             else if (r2 == 0)
 33                 a[i] = -1;
 34             else 
 35                 a[i] = 1;
 36         }
 37         else
 38         {
 39             if (r1 != 0)
 40                 return 0;
 41             a[i] = 3;
 42         } 
 43     }
        /*判斷結(jié)果是否一致*/
 44     if (a[0!= 3)
 45         w = a[0];
 46     else if (a[1!= 3)
 47         w = a[1];
 48     else if (a[2!= 3)
 49         w = a[2];
 50     for (i = 0; i < 3++i)
 51     {
 52         if (a[i] != 3 && a[i] != w)
 53         {
 54                 return 0;
 55         }
 56     }
 57     return 1;
 58 }
 59 int main(void)
 60 {
 61     int n;
 62     int i;
 63     char *p;
 64     char ch;
 65     int r;
 66     scanf("%d%*c"&n);    
 67     while (n--)
 68     {
 69         memset(a, 0sizeof(a));
 70         for (i = 0; i < 3++i)
 71         {
 72             scanf("%s%s%s", left[i], right[i], result[i]);
 73             if (strcmp (result[i], "even"== 0)
 74             {
 75                 p = left[i];
 76                 while (*!= '\0')
 77                 {
 78                     a[*p-'A'= 1;
 79                     ++p;
 80                 }
 81                 p = right[i];
 82                 while (*!= '\0')
 83                 {
 84                     a[*p-'A'= 1;
 85                     ++p;
 86                 }
 87             }
 88         }
 89         for (ch = 'A'; ch <= 'L'++ch)
 90         {
 91             if (a[ch-'A']  == 1)
 92                 continue;
 93             r = judge(ch);
 94             if (r == 1)
 95             {
 96                 if (w > 0)
 97                 {
 98                     printf("%c is the counterfeit coin and it is heavy.\n", ch);
 99                 }
100                 else
101                 {
102                     printf("%c is the counterfeit coin and it is light.\n", ch);
103                 }
104                 break;
105             }
106         }
107     }
108     return 0;
109 }


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


posts - 12, comments - 1, trackbacks - 0, articles - 1

Copyright © 李東亮

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            麻豆精品在线播放| 一区福利视频| 亚洲制服欧美中文字幕中文字幕| 久久久久久久久一区二区| 欧美日韩三级电影在线| 国产视频不卡| 久久久国产一区二区三区| 免费久久精品视频| 亚洲视频观看| 中文av一区特黄| 午夜老司机精品| 欧美专区在线播放| 久久久另类综合| 欧美一级艳片视频免费观看| 午夜精品久久久久久久99水蜜桃| 一本色道久久88综合日韩精品 | 欧美成人免费一级人片100| 久久久91精品国产一区二区三区 | 欧美激情视频给我| 中日韩高清电影网| 蜜臀久久99精品久久久久久9| 亚洲福利国产| 久久精品一本| 久久久www| 午夜久久久久| 香蕉成人久久| 亚洲一区二区综合| 亚洲一区二区三区欧美| 亚洲一级网站| 亚洲欧美日韩第一区| 妖精视频成人观看www| 欧美肉体xxxx裸体137大胆| 久久精品一区中文字幕| 久久综合九九| 欧美绝品在线观看成人午夜影视| 久久婷婷蜜乳一本欲蜜臀| 猫咪成人在线观看| 欧美理论在线播放| 国产精品美腿一区在线看| 国产精品久久久久久久久久免费看 | 国产一区二区三区在线观看精品| 国产自产精品| 国产视频观看一区| 亚洲福利视频在线| 野花国产精品入口| 欧美一区二区日韩| 欧美激情视频给我| 亚洲最新在线| 欧美一区二区三区视频在线观看| 久久久精品一区| 欧美日韩中文字幕在线视频| 国产日韩欧美高清免费| 亚洲人成亚洲人成在线观看| 亚洲综合日韩在线| 欧美亚洲视频| 欧美激情在线免费观看| 亚洲国产高潮在线观看| 久久久一区二区| 奶水喷射视频一区| 亚洲精品欧美一区二区三区| 亚洲视频中文字幕| 国产精品成人一区二区三区吃奶| 亚洲黑丝在线| 亚洲国产一区二区精品专区| 欧美激情麻豆| 午夜精品久久久久影视 | 美脚丝袜一区二区三区在线观看 | 国产精品成av人在线视午夜片| 国产一区二区三区久久 | 国产日本精品| 99精品国产一区二区青青牛奶| 亚洲专区免费| 亚洲国产成人久久综合一区| 久久国产精品99国产精| 国产精品免费小视频| 亚洲日本中文字幕区| 久久久久国产精品人| 日韩视频永久免费| 欧美高清视频在线| 亚洲高清在线视频| 久久在线播放| 欧美伊人久久久久久久久影院| 欧美亚洲成人网| 一区二区三区四区国产| 亚洲欧洲另类| 亚洲欧美国产精品桃花| 久久久精品免费视频| 欧美日韩xxxxx| 国产精品自拍小视频| 影音先锋一区| 久久尤物电影视频在线观看| 美女露胸一区二区三区| 国内久久视频| 欧美国产日韩a欧美在线观看| 久久久久在线| 一区二区三区在线观看国产| 亚洲精品一区在线观看| 欧美黄色成人网| 久久最新视频| 亚洲狠狠丁香婷婷综合久久久| 男女精品网站| 久久久精品国产一区二区三区| 国产一区二区久久久| 亚洲欧美不卡| 亚洲你懂的在线视频| 欧美三级资源在线| 亚洲欧洲av一区二区| 99香蕉国产精品偷在线观看| 欧美日韩不卡一区| 亚洲一区二区三区激情| 一区二区三区国产精品| 国产伦精品一区二区三区免费| 欧美一区二区三区在线| 久久久久免费视频| 99热免费精品| 午夜精品亚洲| 亚洲精品综合精品自拍| 亚洲视频精选| 加勒比av一区二区| 91久久精品一区| 国产精品视频你懂的| 久热re这里精品视频在线6| 老司机67194精品线观看| 亚洲视频1区| 久久激情视频久久| 日韩一区二区免费看| 亚洲在线一区| 亚洲黄色天堂| 亚洲免费在线| 日韩视频在线观看免费| 午夜激情一区| 亚洲国产日韩一区| 亚洲欧美国产日韩天堂区| 亚洲日韩视频| 久久国产一区二区三区| 中日韩美女免费视频网址在线观看| 欧美在线亚洲| 午夜精品一区二区三区在线| 免费在线成人av| 久久精品国产欧美激情| 嫩草成人www欧美| 久久精品免费播放| 欧美午夜大胆人体| 欧美激情第二页| 国内激情久久| 午夜久久tv| 欧美亚洲视频在线观看| 欧美日韩久久精品| 性欧美大战久久久久久久免费观看| 男人插女人欧美| 久久久久久**毛片大全| 欧美日韩1区2区| 免费不卡在线观看| 国产一区二区三区黄| 亚洲视屏在线播放| av不卡在线| 欧美激情综合色| 免费在线观看日韩欧美| 国内精品久久久| 欧美一级电影久久| 欧美专区在线观看| 国产精品综合色区在线观看| 亚洲最新中文字幕| 狠狠色狠狠色综合日日五| 久久综合一区| 国产精品成人免费视频| 欧美大片第1页| 在线看片日韩| 美女精品在线观看| 欧美大片免费久久精品三p | 久久av红桃一区二区小说| 国产精品视频大全| 艳妇臀荡乳欲伦亚洲一区| 一区二区高清视频| 欧美日韩一区二区在线播放| 99精品欧美一区二区三区| av成人国产| 欧美日韩精品一区二区三区四区 | 性欧美超级视频| 欧美在线观看你懂的| 国产一本一道久久香蕉| 欧美一区二区三区男人的天堂| 久久精品91| 伊人夜夜躁av伊人久久| 久久综合伊人77777蜜臀| 亚洲国产精品美女| 亚洲午夜黄色| 国产精品高潮呻吟| 性娇小13――14欧美| 欧美/亚洲一区| 亚洲日本激情| 欧美午夜不卡视频| 欧美一区二区久久久| 麻豆精品一区二区综合av| 亚洲国产成人久久综合一区| 久久本道综合色狠狠五月| 亚洲在线中文字幕| 欧美经典一区二区| 亚洲精品久久久久久久久久久久久 | 欧美日韩日本视频|