csu 1395: Timebomb (模拟)

题意:给出若干数字 如果能被6整除 输出 BEER!!  否则输出 BOOM!!

思路:用三维数组存下0到9

暴力出每个数的值

求出结果

(这题有点坑在于 1 数字可能不存在 2 数字的数量不确定)

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
char num[10][10][10]=
{
  {"***","* *","* *","* *","***"},
  {"  *","  *","  *","  *","  *"},
  {"***","  *","***","*  ","***"},
  {"***","  *","***","  *","***"},
  {"* *","* *","***","  *","  *"},
  {"***","*  ","***","  *","***"},
  {"***","*  ","***","* *","***"},
  {"***","  *","  *","  *","  *"},
  {"***","* *","***","* *","***"},
  {"***","* *","***","  *","***"}
};
char mat[100][100];

int main()
{
  int i,j,k;
  int l,m,n;
  int sum,res;
  memset(mat,0,sizeof(mat));
  while(gets(mat[0]))
  {
    sum=0;res=1;

    for(i=1;i<=4;i++)
    {
      gets(mat[i]);
    }
    int len=strlen(mat[0]);
    for(i=0;i<len;i+=4)
    {
      for(j=0;j<10;j++)
      {
        /*if(j==6)
        {
          for(k=0;k<5;k++)
          {
          for(l=0;l<3;l++)
          {
            printf("%c",num[j][k][l]);
          }
          printf("\n");
          }
        }*/
        for(k=0;k<5;k++)
        {
          for(l=0;l<3;l++)
          {
            if(num[j][k][l]==‘*‘)
            {
              if(mat[k][l+i]!=num[j][k][l]) { break;}
            }
            else if(num[j][k][l]==‘ ‘)
            {
              if(mat[k][l+i]==‘*‘) break;
            }
          }
          if(l!=3) { break;}
        }
        //if(j==6) printf("%d....\n",k);
        if(k==5)
        {
          break;
        }
      }
      //printf("%d...\n",j);
      if(j<10)
      {
        sum=sum*10+j;
      }
      else
      {
        res=0;
        break;
      }
    }
    //printf("%d %d\n",res,sum);
    if(res==0||sum%6!=0)
      printf("BOOM!!\n");
    else
      printf("BEER!!\n");
      memset(mat,0,sizeof(mat));
  }
  return 0;
}

  

时间: 2024-08-04 10:19:16

csu 1395: Timebomb (模拟)的相关文章

csu - 1537: Miscalculation (模拟题)

http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1537 因为给出的式子是必定合法的,只要用两个栈分别保存符号和数字.算出答案后和从左至右算的答案比对即可. 1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <vector> 5 #include <cstring> 6 #include <algo

CSU 1112: 机器人的指令【模拟题】

1112: 机器人的指令 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 1858  Solved: 682 [Submit][Status][Web Board] Description 数轴原点有一个机器人.该机器人将执行一系列指令,你的任务是预测所有指令执行完毕之后它的位置. ·LEFT:往左移动一个单位 ·RIGHT: 往右移动一个单位 ·SAME AS i: 和第i 条执行相同的动作.输入保证i 是一个正整数,且不超过之前执行指令数 In

模拟 CSU 1562 Fun House

题目传送门 1 /* 2 题意:光线从 '*' 发射,遇到 '/' 或 '\' 进行反射,最后射到墙上,将 'x' 变成 '&' 3 模拟:仔细读题,搞清楚要做什么,就是i,j的移动,直到撞到墙,模拟一下一次AC,不要被题目吓怕了:) 4 */ 5 #include <cstdio> 6 #include <iostream> 7 #include <algorithm> 8 #include <stack> 9 #include <cmath

csu - 1536: Bit String Reordering (模拟)

http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1536 不知道为何怎么写都写不对. 这题可以模拟. 虽然题目保证一定可以从原串变成目标串,但是不一定可以变成两种目标串. 所以需要判断下.统计原串中0和1的个数,然后计算目标串中0可能的个数,1可能的个数. 计算交换次数就是从后面找一个跟当前不一样的数字交换到前面来即可. 1 #include<iostream> 2 #include<cstdio> 3 #include<cs

【模拟】【数学】CSU 1803 2016 (2016湖南省第十二届大学生计算机程序设计竞赛)

题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1803 题目大意: 给定n,m(n,m<=109)1<=i<=n,1<=j<=m,求i*j%2016=0的方案数. 题目思路: [模拟][数学] 按照%2016的余数分类.每增加一个2016就又多一种方案.统计是2016的几倍,根据余数分类.最后枚举i,j的余数即可求解. 1 // 2 //by coolxxx 3 //#include<bits/stdc++

【模拟】CSU 1807 最长上升子序列~ (2016湖南省第十二届大学生计算机程序设计竞赛)

题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1807 题目大意: 给你一个长度为N(N<=105)的数列,数列中的0可以被其他数字替换,最终形成一个1~N的排列,求这个排列的最长上升子序列长度为N-1的方案数. 题目思路: [模拟] 这道题需要分类讨论. 首先可以肯定,一个长度为n的序列最长上升子序列长度为n-1(最长下降子序列长度为2),那么这个序列的样子是1~n从小到大排列后其中一个数字挪到其余数字中间(错位) 一个长度为L的

CSU 1267: Operation(模拟啊 )

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1267 Description 现在有26个变量,分别用a~z表示,它们的初值均为0.接下来一共有N个操作,这些操作一共分为如下6类: (1) mov a,b : 将变量b的值赋给a,相当于a = b,其中a.b泛指两个变量. (2) mov a,10 : 将10赋给a,相当于a = 10,其中a泛指某个变量,10泛指某个不大于20的正整数. (3) add a,b : 计算a + b的

CSU 1269: Morse Code Wristwatch(模拟啊 )

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1269 Description Tokyoflash推出了一款摩斯电码手表,样图如下. 要读懂这款手表,首先要了解一些摩斯电码的知识. 在了解了这些摩斯电码符号之后,就不难看懂表盘中显示的信息是"02 17 PM"了,也就是指下午2点17分.在12小时计时法中小时的取值范围为01到12之间的整数,AM代表上午,PM代表下午. 接下来我们就详细介绍一下这款摩斯电码手表是如何显示时

CSU 1330: 字符识别?(字符串模拟啊 湖南省第九届大学生计算机程序设计竞赛)

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1330 Description 你的任务是写一个程序进行字符识别.别担心,你只需要识别1, 2, 3,如下: .*.  ***  *** .*.  ..*  ..* .*.  ***  *** .*.  *..  ..* .*.  ***  *** Input 输入仅包含一组数据,由6行组成.第一行为字符的个数n(1<=n<=10).以下5行每行包含4n个字符.每个字符恰好占5行3列,