夯实基础——P1615 西游记公司

题目链接:https://www.luogu.org/problem/P1615

P1615 西游记公司

题目背景

一道极其无厘头的题目

题目描述

事情是这样的:西游记中的孙沙猪(孙杀猪)三徒弟在西天取经之后开始进入厦门大学经贸系学习经济,在1个小时的学习后,他们用暴力手段毕业了。然后,他们创办了三个公司——“花果山生态旅游山庄集团公司”“高老庄猪肉美食城有限公司”“流沙河轮渡有限公司”。虽然这三家公司出自“经卷出版社”社长唐三藏的徒弟们,但是仍然保持着0元以下的财政收入。于是,他们想到了一个无聊的方法——向别人偷!是这样的:如果猪八戒知道孙悟空要偷猪八戒的平底锅,猪八戒就不能去抢沙和尚的保时捷。现在,作为猪八戒手下首席智士(智障人士)的你,要帮助既聪明又愚蠢的猪八戒用那种不正当的手段挽救这个公司!你可以这样做:你已经知道孙悟空什么时候要来偷猪八戒的东西,而猪八戒又要在什么时间去抢沙和尚的东西,又知道猪八戒每秒钟可以偷沙和尚1台笔记本电脑,帮猪八戒算一算,自己在有限的时间内能偷到沙和尚多少台电脑,使得他有足够的时间来防御大师兄。

输入格式

第一行:时:分:秒(表示猪八戒打算去偷沙和尚笔记本电脑的时间)

第二行:时:分:秒(表示孙悟空打算去偷猪八戒平底锅的时间)

注:时间可能有前导0,也有可能没有。

第三行:猪八戒每秒可以偷沙和尚几台笔记本电脑

确保第一行的时间要比第二行的时间来得早。

输出格式

一个整数,有可能大于int(2^31-2),表示猪八戒能偷沙和尚笔记本的个数

输入输出样例

输入 #1复制

00:0:00
0:00:10
10

输出 #1复制

100

说明/提示

数据范围:

00:00:00到23:59:59

数量<=32767

这道题还是比较基础的一道题,主要考的是你的编程思想,和一些简单的模拟。题目不难,重点在输入的时候如何忽视前导0!!!

但是在这里我好想又想复杂了,写了一个函数来处理前导0,但我看题解中的大佬们用的做法是在输入的时候就直接处理前导0,比我用的做法简便多了,所以我又用大佬的做法又写了一篇代码(*^▽^*)

话不多说,上代码:

函数处理前导0:

 1 #include<iostream>
 2 #include<cstring>
 3
 4 using namespace std;
 5
 6 string a,b//a代表猪八戒打算去偷沙和尚笔记本电脑的时间,b代表孙悟空打算去偷猪八戒平底锅的时间
 7
 8 long long n;//n是猪八戒每秒能偷沙和尚的电脑的个数
 9
10 int aa,bb;//转换成秒
11
12 void t(string x,int &y)//处理前导0
13 {
14     int len=x.size(),v=0;
15     for(int i=0;i<len;i++)
16     {
17         if(x[i]==‘:‘)
18         {
19             v++;
20             int m=0,k=1;
21             for(int j=i-1;j>=0;j--)
22             {
23                 if(x[j]==‘:‘) break;
24                 m+=(x[j]-‘0‘)*k;
25                 k*=10;
26             }
27             if(v==1) y+=m*3600;
28             else if(v==2) y+=m*60;
29         }
30     }
31     int m=0; v=1;
32     for(int i=len-1;i>=0;i--)
33     {
34         if(x[i]==‘:‘) break;
35         m+=(x[i]-‘0‘)*v;
36         v*=10;
37     }
38     y+=m;
39 }
40
41 int main()
42 {
43     cin>>a>>b>>n;
44     t(a,aa);
45     t(b,bb);
46     cout<<(bb-aa)*n<<endl;
47     return 0;
48 }

大佬们的做法:

 1 #include<iostream>
 2 #include<cstdio>
 3
 4 using namespace std;
 5
 6 long long a,b,c,d,e,f,g,n;
 7
 8 int main()
 9 {
10     scanf("%d:%d:%d",&a,&b,&c);
11     scanf("%d:%d:%d",&e,&f,&g);
12     scanf("%d",&n);
13     cout<<((e-a)*3600+(f-b)*60+g-c)*n<<endl;
14     return 0;
15 }

***郑重提示:

· scnaf可以自动忽略前导0!!!!(本题考点)

夯实基础,认真做好每一道题!!!

作者:Gmax

本文版权归作者和博客园共有,转载请用链接,请勿原文转载,Thanks?(?ω?)?

2019-08-08

原文地址:https://www.cnblogs.com/Gmax/p/11319114.html

时间: 2024-10-31 14:31:54

夯实基础——P1615 西游记公司的相关文章

洛谷P1615 西游记公司 题解

题目传送门 这道题题面写得非常好. 但好像并没有什么ruan用. 这道题貌似就是把时间差求出来,乘上猪八戒能偷的电脑数就好了.(注意long long) #include<bits/stdc++.h> #define ll long long using namespace std; ll x,y,z,a,b,c; int main(){ scanf("%lld:%lld:%lld",&x,&y,&z); a=x*3600+y*60+z; scanf

luogu西游记公司

P1615西游记公司 这道题一开始我只得了80分,因为没开long long,后来开了long long又没有lld... #include<iostream> #include<cstdio> using namespace std; int main() { long long x,y,z,xx,yy,zz,m,n; scanf("%lld:%lld:%lld",&x,&y,&z); scanf("%lld:%lld:%ll

夯实基础

基础还不够牢靠,需要夯实基础: ------------------------------------------------------------------------------------------------------------------------------ 矩阵代数:@@@@@@ 数理统计:@@@@@@ 随机过程:@@@@ { 大数定理@@@ 中心极限定理@@@ 抽样分布@@@ 条件概率@@ 多元正态分布@@@@ 矩母函数@ 特征函数@ 独立增量过程@@@ 平稳过程@

夯实基础——快速排序

逻辑结构:递归栈 物理结构:数组 快速排序分析: 最优时间复杂度:O(nlog2n)在乱序情况下 最坏时间复杂度:O(n^2) 在顺序情况下 平均时间复杂度:O(nlog2n) 空间复杂度:O(n) 稳定性:不稳定 快速排序主要有两个函数: 1 一次划归 int partition(int a[],int low,int high); 2 递归快速排序 void QuickSort(int a[],int low,int high); 3 非递归快速排序 void NonQuickSort(in

夯实基础——堆排序

堆结构:任意的一个父节点大于其子节点. 逻辑结构:二叉树 物理结构:数组 如果从角标0开始 父节点左孩子节点:2*i+1 父节点右孩子节点:2*i+2 最后一个非叶节点:(n-1)/2 如果从角标1开始 父节点左孩子节点:2*i 父节点右孩子节点:2*i+1 最后一个非叶节点:n/2 堆排序分析: 最优时间复杂度:O(nlog2n) 最坏时间复杂度:O(nlog2n) 平均时间复杂度:O(nlog2n) 空间复杂度:O(1) 稳定性:不稳定 堆排序主要分三个函数: 1 调整成堆结构 void H

【夯实基础】Spring在ssh中的作用

尊重版权:http://blog.csdn.net/qjlsharp/archive/2009/03/21/4013255.aspx 写的真不错. 在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句.Struts是用来做应用层的,他它负责调用业务逻辑serivce层.所以SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)

夯实基础——插入排序

物理结构:数组 插入排序分析: 最优时间复杂度:O(n) 顺序的情况下 最坏时间复杂度:O(n^2) 平均时间复杂度:O(n^2) 最坏空间复杂度:O(n) 辅助空间O(1) 稳定性:稳定 快速排序法函数: int InsertSort(int a[],int length); //插入排序 int InsertSort(int a[],int length) { int tmp,i,j; for(i=1;i<length;i++) { tmp=a[i]; j=i; while(j>0&

【夯实基础】java关键字synchronized 详解

尊重版权:http://www.cnblogs.com/GnagWang/archive/2011/02/27/1966606.html Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行.另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块. 二.然而,当一个线程访问object的一个sy

JavaScript夯实基础--关于分号

和其他许多编程语言一样,JavaScript使用分号(;)将语句分隔开,这对增强代码的可读性一整洁性是非常重要的,缺少分隔符,一条语句的结束就成了下一条语句的开始,反之亦然.在JavaScript中,如果语句各自独占一行,通常可以省略语句之前的分号(程序结尾或右花括号之前的分号也可省略).不过关于JavaScript中可选的分号有几细节需要注意. JavaScript并不是在所有换行处都填补分号:只有在缺少分号就无法正确解析时,才会填补分号.换句话说,如果当前语句和随后的非空格字符不能当成一个整