• 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
  • 相关阅读:
    Jenkins自定义变量共享
    HTML中调用JavaScript的几种情况和规范写法
    [Python] 建 Django 项目
    [Django] Window上通过IIS发布Django网站
    [Python] 怎么把HTML的报告转换为图片,利用无头浏览器
    VMware vSphere Client
    mysql优化
    LINUX 内核的优化
    sed强大的固定替换格式
    nfs以及优化
  • 原文地址:https://www.cnblogs.com/harden/p/5924866.html
Copyright © 2020-2023  润新知