题意:给出了三次天平的称重且一定能够从这三次称重中找出那个假的硬币,并且要求输出是比真的硬币轻了还是重了。

解题方法:由于最多只有13个银币所以采用了枚举。

代码(学习来源:《程序设计在线导引》):

//strchr()函数是只是否那个字符在字符串中出现,返回的值为出现的位置。可以百度百科去查看下

#include <stdio.h>
#include <string.h>
char l[3][7],r[3][7],p[3][5];
int light(char c)//比真银币轻的检测
{
 int i;
 for(i=0;i<3;i++)
 {
  switch(p[i][0])
  {
  case 'u':
   if(strchr(r[i],c)==NULL)
    return 0;
   break;
  case 'e':
   if(strchr(l[i],c)!=NULL || strchr(r[i],c)!=NULL)
    return 0;
   break;
  case 'd':
   if(strchr(l[i],c)==NULL)
    return 0;
   break;
  }
 }
 return 1;
}
int heavy(char c))//比真银币重的检测

{
 int i;
 for(i=0;i<3;i++)
 {
  switch(p[i][0])
  {
  case 'u':
   if(strchr(l[i],c)==NULL)
    return 0;
   break;
  case 'e':
   if(strchr(l[i],c)!=NULL || strchr(r[i],c)!=NULL)
    return 0;
   break;
  case 'd':
   if(strchr(r[i],c)==NULL)
    return 0;
   break;
  }
 }
 return 1;
}
int main()
{
 int x,i;

char c;
 scanf("%d",&x);
 while(x--)
 {
  for(i=0;i<3;i++)
   scanf("%s%s%s",l[i],r[i],p[i]);
  for(c='A';c<='L';c++)//枚举 所有的可能
  {
   if(light(c))
   {
    printf("%c is the counterfeit coin and it is light./n",c);
    break;
   }
   if(heavy(c))
   {
    printf("%c is the counterfeit coin and it is heavy./n",c);
    break;
   }
  } 
 }
 return 0;
}

AC TIME:0MS

pku 1013 解题报告相关推荐

  1. hdu 1102 pku 2421 解题报告

    这题很简单,我差不多15分钟就写好代码了,运行结果也是正确的.可提交就是RE,百思不得其解,调了两个小时的时候,我才忽然发现我存边的时候数组开小了,我当时也想到肯定是数组问题,但是我却忽律了图的边不等 ...

  2. 东南大学2004年程序设计第一届初赛解题报告

    东南大学2004年第一届逻辑算法大赛初赛解题报告 农夫三拳@seu                                                                    ...

  3. 解题报告 (十三) 尺取法

    文章目录 尺取法 解题报告 PKU 2100 Graveyard Design PKU 3061 Subsequence PKU 2739 Sum of Consecutive Prime Numbe ...

  4. 解题报告 (十) 单调栈

    文章目录 单调栈 解题报告 PKU 2082 Terrible Sets HDU 2430 Beans HDU 4252 A Famous City PKU 2796 Feel Good HDU 34 ...

  5. 解题报告 (十四) 数位DP

    文章目录 数位DP 解题报告 HDU 4722 Good Numbers HDU 2089 不要62 HDU 3555 Bomb HDU 3652 B-number PKU 3252 Round Nu ...

  6. 解题报告 (九) 二分图最大匹配

    文章目录 二分图最大匹配 解题报告 一.最大匹配模板题 HDU 1083 Courses HDU 2063 过山车 HDU 1528 Card Game Cheater HDU 1179 Olliva ...

  7. 解题报告 (五) Burnside引理和Polya定理

    Burnside引理 笔者第一次看到Burnside引理那个公式的时候一头雾水,找了本组合数学的书一看,全是概念.后来慢慢从Polya定理开始,做了一些题总算理解了.本文将从最简单的例子出发,解释Bu ...

  8. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)

    线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报  分类: ...

  9. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

最新文章

  1. 2022-2028年中国金融安防行业深度调研及投资前景预测报告
  2. 产品经理如何做好数据埋点
  3. 改善前端优化的有用技巧
  4. 请接受这份货真价“无”的PPT
  5. leetcode —— 1217. 玩筹码
  6. oracle批量插入并且返回自增主键_mybatis + (oracle)实现主键自增 + 插入数据并返回主键...
  7. 2022年Java项目课程目录
  8. 小鹏汽车第10000辆P7下线
  9. 支持向量机的基本思想_支持向量机理论详细推导
  10. leecode - 入门 -- 双指针秒杀数组/链表题目
  11. 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
  12. 使用java语言实现将10进制转化为2进制
  13. 【2013高考作文】重庆作文
  14. CPU占用率高的可能性与解决办法
  15. cscd论坛_高压电器第九届电工技术前沿问题学术论坛“先进电磁技术”分论坛及专题征稿...
  16. dexposed框架Android在线热修复
  17. 中山大学计算机学院离散数学,《离散数学》课程习题与解答(2011级使用)中山大学计算机科学系_推荐.pdf...
  18. 基于SpringBoot实现简易的单点登录系统(提供gitee源码)
  19. Java用POI导出Excel合并单元格、字体、居中样式
  20. 行业最常见的7种AGV导航系统方式

热门文章

  1. TCP/IP协议(二、初识tcp)
  2. 带有三角函数的计算机,三角函数计算器
  3. Android nfc模块读写MifareClassic卡50
  4. 硬件基础知识(电阻)
  5. c语言破解rar5文件,RAR5 文件格式解析
  6. String------字符串的字母大小写切换及获取
  7. 围绕边框宽度的html,设置围绕表格的边框宽度的HTML代码是?
  8. 187、商城业务-检索服务-页面排序功能
  9. 小米手表S1、华为的WATCH GT3、OPPOWatch2和魅族智能手表。
  10. 解决“无法获得下列许可 solidworks standard无法连接到服务器”的问题