题目

你是学生会体育部长,负责组织一年一度的校篮球比赛。马上就要决赛了,你希望吸引更多的 人来看比赛,因此打算更新一下设备,用一个超大的
LED屏幕来显示比分。当然,电也不是 不要钱的,所以你决定先分析一下往年的比赛,估计一下大概要耗多少电。
如上图,每个数字由
7条线段组成,每条亮着的线段每秒钟耗电量为 1个单位。线段不亮的时 候不耗电。为了省电,比分不显示前导 0(不过 0分的时候要显示数字
0)。 你的 LED显示屏共包含 6个数字,即双方的比分各有 3 位数。

输入

输入包含不超过 100组数据。每组数据第一行为"START hh:mm:ss",表示比赛开始时刻为 hh:mm:ss。最后一行为"END
hh:mm:ss",即比赛结束时刻。二者之间至少会有一个 SCORE信 息,格式为"SCORE hh:mm:ss team
score",其中 team要么是"home"(主场)要么是"guest"(客 场), score表示得分,为 1,2或者
3。这些信息保证按照时间从早到晚的顺序排列,且任意两 条 SCORE信息的时刻均不相同。比赛开始时间不会早于
9:00,结束时间不会晚于同一天的 21:00。注意,如果比赛开始时间为 09:00:00,结束时间为 09:00:01,比赛长度为
1秒钟,而不 是 2秒钟。

输出

对于每组数据,输出测试点编号和总耗电量。

样例输入

START 09:00:00
SCORE 09:01:05 home 2
SCORE 09:10:07 guest 3
END 09:15:00
START 09:00:00
SCORE 10:00:00 home 1
SCORE 11:00:00 home 1
SCORE 12:00:00 home 1
SCORE 13:00:00 home 1
SCORE 14:00:00 home 1
SCORE 15:00:00 home 1
SCORE 16:00:00 home 1
SCORE 17:00:00 home 1
SCORE 18:00:00 home 1
SCORE 19:00:00 home 1
SCORE 20:00:00 home 1
END 21:00:00

样例输出

Case 1: 9672
Case 2: 478800

代码

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner scan = new Scanner(System.in);HashMap<String,String> map = new HashMap<String,String>();String st="";List<Middle> list = new ArrayList<Middle>();List<Score> list1 = new ArrayList<Score>();while (scan.hasNextLine()) {String s = scan.nextLine();String[] ss = s.split(" ");if(ss[0].equals("START")){st = ss[1];}else if(ss[0].equals("SCORE") ){String t = ss[1];//时间String n = ss[2];//名字String c = ss[3];//分数Middle middle = new Middle(n,c,t);list.add(middle);//把中间状态加进去}else if(ss[0].equals("END")){String et = ss[1];Score score = new Score(st,list,et);list1.add(score);list = new ArrayList<Middle>();}}int count=0;for(Score c:list1){count++;int sum=0;int home=0;//主得分int guest = 0;//客得分int dianliang = num(home)+num(guest);int scond = 0;//差值秒for(Middle m:c.mid){scond = timeTotime(c.startTime,m.time);//上一个时间和自己时间的差值if(m.name.equals("home"))home += Integer.parseInt(m.code);else if(m.name.equals("guest"))guest += Integer.parseInt(m.code);c.startTime = m.time;sum+=dianliang*scond;dianliang = num(home)+num(guest);}scond = timeTotime(c.startTime,c.endTime);sum+=dianliang*scond;System.out.println("Case "+count+": "+sum);}}public static int timeTotime(String a,String b){String[] x = a.split(":");String[] y = b.split(":");int sum0 = 3600*Integer.parseInt(x[0])+60*Integer.parseInt(x[1])+Integer.parseInt(x[2]);int sum1 = 3600*Integer.parseInt(y[0])+60*Integer.parseInt(y[1])+Integer.parseInt(y[2]);return sum1-sum0;//a是开始时间 b是结束时间}public static int num(int n){int s =0;if(n==2||n==3||n==5)return 5;else if(n==0||n==6||n==9)return 6;else if(n==1)return 2;else if(n==4)return 4;else if(n==7)return 3;else if(n==8)return 7;else {String s1 = String.valueOf(n);for(int i=0;i<s1.length();i++)s+=num(Integer.parseInt(String.valueOf(s1.charAt(i))));return s;}}
static class Score {String startTime;List<Middle> mid;public Score(String startTime, List<Middle> mid, String endTime) {this.startTime = startTime;this.mid = mid;this.endTime = endTime;}public String getStartTime() {return startTime;}public void setStartTime(String startTime) {this.startTime = startTime;}public List<Middle> getMid() {return mid;}public void setMid(List<Middle> mid) {this.mid = mid;}public String getEndTime() {return endTime;}public void setEndTime(String endTime) {this.endTime = endTime;}String endTime;//成绩
}
static class Middle{String name;String code;String time;public Middle(String name, String code, String time) {this.name = name;this.code = code;this.time = time;}
}
}

JAVA实现 - 问题 G: 超大型 LED 显示屏相关推荐

  1. ZCMU 1635 超大型 LED 显示屏

    Problem A: 超大型 LED 显示屏 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 72  Solved: 41 [Submit][Statu ...

  2. 1635 超大型 LED 显示屏

    Problem A: 超大型 LED 显示屏 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 72  Solved: 41 [Submit][Statu ...

  3. ZCMU-1635:超大型 LED 显示屏(细节题)

    Problem A: 超大型 LED 显示屏 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 71  Solved: 40 [Submit][Statu ...

  4. 超大型 LED 显示屏(模拟)

    题目描述 你是学生会体育部长,负责组织一年一度的校篮球比赛.马上就要决赛了,你希望吸引更多的 人来看比赛,因此打算更新一下设备,用一个超大的 LED屏幕来显示比分.当然,电也不是 不要钱的,所以你决定 ...

  5. CSU 1507: 超大型LED显示屏(数学)

    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1507 Description Input 输入包含不超过100组数据.每组数据第一行为& ...

  6. 移植QTE时钟到UP-MobNet-II实验箱LED显示屏

    移植QTE动态时钟到UP-MobNet-II实验箱LED显示屏 文章目录 开发箱 实验目的 实验内容 实验环境 实验原理 1.Qt/Embedded 简介 2.QtE 的特征 3.Qt/E 与 Qt/ ...

  7. led显示屏p10参数设置_LED显示屏全彩P10的详细参数及说明

    像素点间距为10mm的LED显示屏称之为P10 LED显示屏, 由红.绿.蓝三基色组成的LED显示屏称之为全彩LED显示屏.LED显示屏全彩P10主要是用来组成户外大屏幕显示屏,以用来播放广告内容.各 ...

  8. Java控制树莓派8x8矩阵LED

    前几天刚在某宝上买了个树莓派4b 4G内存版,附带了外壳,读卡器,16G TF卡,风扇,散热片,3.5寸电阻屏,几个RGB LED和一个8x8矩阵.我对点亮8x8矩阵这块兴趣较高,所以先拿来研究,由于 ...

  9. led显示屏播控服务器,显示屏集中播控方案--NovaPluto.pdf

    显示屏集中播控方案‐‐NovaPluto 1 方案概述 NovaPluto 是一套LED 显示屏集中播控方案,可以远程发布播放方案.监控播放及屏体 状态.远程控制.该方案网络结构灵活,可以在局域网.广 ...

  10. 机电毕业设计----利用CC2530芯片开发的基于ZigBee技术的灌溉模拟系统----LED显示屏代码解释(源代码)

    源代码下载地址:https://download.csdn.net/download/mahoon411/12393401 1 终端节点的LED显示屏 2 具体代码及解释 在ZMain.c文件里,zm ...

最新文章

  1. 数据结构 — 双向链表
  2. xampp php源码的路径,php – XAMPP中的根路径
  3. BZOJ 2115 [Wc2011] Xor ——线性基
  4. 我所认识的SAP系统
  5. 8-1 数据库分库分表的几种方式
  6. python config模块_用Python内置模块处理ini配置文件
  7. python八段数码管显示小数点_小数点算法处理(数码管显示)
  8. mac 下安装Microsoft Remote Desktop远程桌面客户端
  9. 怎么把word压缩小一点?简单的方法是什么?
  10. 上传附件格式限制与内容校验
  11. Java并发之魂——synchronized深度解析
  12. QT+讯飞智能语音在线识别demo,录音识别
  13. Shiro权限管理实现(详解)
  14. 一文读懂身份证ocr识别
  15. Linux(CentOS7)搭建LAMP服务环境
  16. docker私服配置
  17. 《JAVA》课程设计报告--企业人力资源管理系统
  18. 进销存管理怎么做?推荐一款免费进销存管理系统!
  19. cf Educational Codeforces Round 77 E. Tournament
  20. Private关键字详解

热门文章

  1. 【Windows】安装win10虚拟机
  2. MySQL数据库主从同步,一致性解决方案
  3. paypal android sdk,Android Paypal SDK错误:商家不接受此类付款
  4. MarkDown下载和安装图文教程
  5. 软件开发的版本控制管理
  6. KEIL5芯片包器件库的下载
  7. LVDS,接口,时序讲解,非常好的文章
  8. 怎么使用计算机操作鼠标,鼠标操作怎么用?电脑鼠标操作图文教程
  9. 如何理解泊松分布(Poisson Distribution)
  10. 如何计算电机极数和无刷电机的Kv值?