zoukankan      html  css  js  c++  java
  • xth的第 12 枚硬币(codevs 1366)

    题目描述 Description

    传说 xth 曾经拥有11枚完全相同硬币(你懂得),不过今年呢,rabbit又送了他一
    枚硬币。这枚硬币和其他硬币外观相同,只有重量不同,或轻或重。Xth 一不小心,
    将这枚特殊的硬币和其他硬币混在了一起。Rabbit 知道后很生气,要他立刻把那枚
    硬币找出来,并且还要说出这枚硬币是轻还是重。可怜的 Xth 只有一架普通托盘天
    平,并且只能称量三次(每次称量,两边各四枚)。现在全部 12枚硬币编号为
    A~L,现给出你三次称量的结果,请你帮 xth 找出那枚不一样的硬币。他一定会感
    谢你们滴~~~

    输入描述 Input Description

    共三行,每行是由空格隔开的两个字符串,分别代表左右两盘的四个硬币,以及一
    个单词。’even’表示两侧重量相等,’up’表示右侧轻,’down’表示右侧重。

    输出描述 Output Description

    一行,一个英文句子,指出那枚不一样的硬币以及它的轻重情况。
    X is the counterfeit coin and it is light/heavy. (X表示硬币)

    样例输入 Sample Input

    ABCD EFGH even 
    ABCI EFJK up 
    ABIJ EFGH even

    样例输出 Sample Output

    K is the counterfeit coin and it is light.

    数据范围及提示 Data Size & Hint

     

    数据保证有且仅有一枚特殊的硬币,无矛盾情况出现。

    /*
      找不对等次数最多的硬币 
    */
    #include<cstdio>
    #include<iostream>
    #define M 14
    using namespace std;
    int f[M],vis[M];
    char s1[5],s2[5],s3[5];
    int main()
    {
        for(int T=1;T<=3;T++)
        {
            cin>>s1>>s2>>s3;
            if(s3[0]=='e')
            {
                for(int i=0;i<=3;i++)
                {
                    f[s1[i]-'A'+1]=f[s2[i]-'A'+1]=1;
                    vis[s1[i]-'A'+1]=vis[s2[i]-'A'+1]=0;
                }
            }
            else if(s3[0]=='u')
            {
                for(int i=0;i<=3;i++)
                {
                    if(f[s1[i]-'A'+1]==3)vis[s1[i]-'A'+1]++;
                    if(!f[s1[i]-'A'+1])f[s1[i]-'A'+1]=3,vis[s1[i]-'A'+1]++;
                    if(f[s1[i]-'A'+1]==2)f[s1[i]-'A'+1]=1;
                    if(f[s2[i]-'A'+1]==2)vis[s2[i]-'A'+1]++;
                    if(!f[s2[i]-'A'+1])f[s2[i]-'A'+1]=2,vis[s2[i]-'A'+1]++;
                    if(f[s2[i]-'A'+1]==3)f[s2[i]-'A'+1]=1;
                }
            }
            else
            {
                for(int i=0;i<=3;i++)
                {
                    if(f[s1[i]-'A'+1]==2)vis[s1[i]-'A'+1]++;
                    if(!f[s1[i]-'A'+1])f[s1[i]-'A'+1]=2,vis[s1[i]-'A'+1]++;
                    if(f[s1[i]-'A'+1]==3)f[s1[i]-'A'+1]=1;
                    if(f[s2[i]-'A'+1]==3)vis[s2[i]-'A'+1]++;
                    if(!f[s2[i]-'A'+1])f[s2[i]-'A'+1]=3,vis[s2[i]-'A'+1]++;
                    if(f[s2[i]-'A'+1]==2)f[s2[i]-'A'+1]=1;
                }
            }
        }
        int tot=0,ans=0;
        for(int i=1;i<=12;i++)
          if(vis[i]>tot)
          {
              tot=vis[i];
              ans=i;
          }
        if(f[ans]==2)printf("%c is the counterfeit coin and it is light.",ans+'A'-1);
        else printf("%c is the counterfeit coin and it is heavy.",ans+'A'-1);
        return 0;
    }
    View Code
  • 相关阅读:
    SoapUI 使用笔记
    git 使用笔记(二)
    git 使用笔记(一)
    jquery 拓展
    hdu 1024 Max Sum Plus Plus (DP)
    hdu 2602 Bone Collector (01背包)
    hdu 1688 Sightseeing (最短路径)
    hdu 3191 How Many Paths Are There (次短路径数)
    hdu 2722 Here We Go(relians) Again (最短路径)
    hdu 1596 find the safest road (最短路径)
  • 原文地址:https://www.cnblogs.com/harden/p/5924866.html
Copyright © 2011-2022 走看看