(贪心) nyoj1036-非洲小孩
题目描述:
第一,他们地处热带,太阳辐射严重。
第二,他们不经常洗澡。(常年缺水,怎么洗澡。)
现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!)
每个小孩有一个时间段能够洗澡。并且,他们是可以一起洗的(不管你是男孩是女孩)。
那么,什么时间洗澡,谁应该来洗,由谁决定的呢?那必然是他们伟大的“澡”神啊。“澡”神有一个时间表,记录着该部落的小孩,什么时候段可以洗澡。现在,“澡”神要问你,一天内,他需要最少开启和关闭多少次洗澡的水龙头呢?因为,开启和关闭一次水龙头是非常的费力气的,即便,这也是瞬间完成的。
输入描述:
多组数据
第一行一个0<n<=100。
接下来n行,每行一个时间段。H1H1:M1M1-H2H2:M2M2,24小时制。
保证该时间段是在一天之内的。但是,不保证,H1H1:M1M1先于H2H2:M2M2。
输出描述:
题目描述,“澡”神最少需要开启和关闭多少次水龙头呢?
样例输入:
1
00:12-12:12
3
00:12-13:14
13:13-18:00
17:00-19:14
样例输出:
1
2
提示:
----------------------------------------------------------------------------------------------------------------------------------------
贪心,类似区间不相交问题吧。就是关于题中的“不保证,H1H1:M1M1先于H2H2:M2M2。”指的是时间的开始和结束时间反了。。。。并不是23:00-1:00。。。
还有,关于输入时间,我的思路是用字符串,然后对字符串一次遍历,分别取相应的时,分,然后进行转换,得到一个分钟的数。不过很麻烦。。。。
我看了其他人的博客,才知道有scanf("%d:%d-%d:%d", &a, &b, &c, & d);这个用法。。。。。
C++代码:
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string.h>
#include<string>
using namespace std;
const int maxn = ;
struct segment {
int start;
int end;
}s[maxn];
bool cmp(segment a, segment b) {
if (a.end == b.end) {
return a.start < b.start;
}
return a.end < b.end;
}
int main() {
int n;
while (cin >> n) {
string str;
for(int j = ; j < n; j++) {
cin >> str;
int hour1 = ;
int hour2 = ;
int minute1 = ;
int minute2 = ;
string hour_str1, hour_str2, minute_str1, minute_str2;
hour_str1 = hour_str2 = minute_str1 = minute_str2 = "";
for (int i = ; i < ; i++) {
hour_str1 += str[i];
}
hour1 = stoi(hour_str1);
for (int i = ; i < ; i++) {
minute_str1 += str[i];
}
minute1 = stoi(minute_str1);
for (int i = ; i < ; i++) {
hour_str2 += str[i];
}
hour2 = stoi(hour_str2);
for (int i = ; i < ; i++) {
minute_str2 += str[i];
}
minute2 = stoi(minute_str2);
s[j].start = hour1 * + minute1;
s[j].end = hour2 * + minute2;
if (s[j].start > s[j].end) {
//s[j].start = (hour1 - 24) * 60 + minute1;
swap(s[j].start, s[j].end);
}
}
sort(s, s + n, cmp);
int sum = ;
int ans = s[].end;
for (int i = ; i < n; i++) {
if (ans < s[i].start) {
sum++;
ans = s[i].end;
}
}
cout << sum << endl;
}
//system("pause");
return ;
}
其他大佬的代码:
链接:https://blog.csdn.net/a2459956664/article/details/51555148
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = + ; struct P
{
int s, e;
}p[maxn];
int n;
int a, b, c, d; int cmp(P x, P y)
{
if (x.e != y.e)
return x.e < y.e;
else
return x.s < y.s;
} int main()
{
while (scanf("%d", &n) != EOF){
for (int i = ; i < n; i++){
scanf("%d:%d-%d:%d", &a, &b, &c, & d);
p[i].s = a * + b;
p[i].e = c * + d;
if (p[i].s > p[i].e)
swap(p[i].s, p[i].e);
}
sort(p, p + n, cmp);
int ans = ;
int temp = p[].e;
for(int i = ; i < n; i++){
if (p[i].s > temp){
ans++;
temp = p[i].e;
}
}
printf("%d\n", ans);
}
return ;
}
(贪心) nyoj1036-非洲小孩的更多相关文章
- NYOJ-1036 非洲小孩(贪心)
非洲小孩 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 家住非洲的小孩,都很黑.为什么呢?第一,他们地处热带,太阳辐射严重.第二,他们不经常洗澡.(常年缺水,怎么洗 ...
- NYOJ-1036 非洲小孩
非洲小孩 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 家住非洲的小孩,都非常黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不常常洗澡.(常年缺水, ...
- nyoj 1036 非洲小孩【贪心区间选点】
非洲小孩 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 家住非洲的小孩,都很黑.为什么呢?第一,他们地处热带,太阳辐射严重.第二,他们不经常洗澡.(常年缺水,怎么洗 ...
- nyoj 非洲小孩
非洲小孩 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 家住非洲的小孩,都很黑.为什么呢?第一,他们地处热带,太阳辐射严重.第二,他们不经常洗澡.(常年缺水,怎么洗 ...
- 问题 N: 非洲小孩
题目描述 家住非洲的小孩,都很黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不经常洗澡.(常年缺水,怎么洗澡.) 现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间 ...
- 非洲儿童(南阳oj1036)(馋)
非洲小孩 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 家住非洲的小孩,都非常黑.为什么呢? 第一.他们地处热带,太阳辐射严重. 第二,他们不常常洗澡.(常年缺水, ...
- nyoj--1036--非洲小孩(区间相交问题)
非洲小孩 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 家住非洲的小孩,都很黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不经常洗澡.(常年缺水,怎么洗 ...
- [NOI2003]逃学的小孩 (贪心+树的直径+暴力枚举)
Input 第一行是两个整数N(3 <= N <= 200000)和M,分别表示居住点总数和街道总数.以下M行,每行给出一条街道的信息.第i+1行包含整数Ui.Vi.Ti(1<=Ui ...
- candy(贪心)
[题目] There are N children standing in a line. Each child is assigned a rating value. You are giving ...
随机推荐
- 文件上传.ashx
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Runtime ...
- Express学习 ------模版引擎(handlebars)
Handlebars一款js模版引擎,我们在做客户端开发的时候,也可能已经使用过.它语法比较简单,和我们平常写的html 一样,只不过html 中可以加入handlebars 表达式. handleb ...
- bzoj2762-[JLOI2011]不等式组
求 \(x=k\) 时满足一元一次不等式 \(ax+b<c\) 的个数. 解出 \(\frac{c-b}{a}\) 之后取整,得到合法区间,用树状数组维护. 注意 \(a\) 的值域是 \([- ...
- PC平台的SIMD支持检测
如果我们希望在用SIMD来提升程序处理的性能,首先需要做的就是检测程序所运行的平台是否支持相应的SIMD扩展.平台对SIMD扩展分为两部分的支持: CPU对SIMD扩展的支持.SIMD扩展是随着CPU ...
- Linux系统下手把手完成无人值守安装服务
刚入职的运维新手经常会被要求去做一些安装操作系统的工作,如果按照用镜像光盘安装操作系统,效率会相当低下.那么如何提升效率,搭建出一套可以批量安装Linux系统的无人值守的安装系统? PXE+TFTP+ ...
- 67 个JavaScript和CSS实用工具、库与资源
在这篇文章中,我不会与大家谈论大型的前端框架,如 React.Angular.Vue 等,也没有涉及那些流行的代码编辑器,如 Atom.VS Code.Sublime,我只想与大家分享一个有助于提升开 ...
- python第三方库 - dateutil
简介 扩展并增强 datetime 模块的功能.支持 Python 2.3+. 官方文档 : http://labix.org/python-dateutil 安装 两种方法: easy_instal ...
- visual studio 显示引用关系 作者更改项
visual studio 2017中,每个类或者方法顶部会显示此方法的引用关系或者作者更改项:这个功能极大了提高了我们代码的定位效率:不过有时候却发现每一行代码都有,会增加我们屏幕显示内容,有时候看 ...
- Codeforces997C Sky Full of Stars 【FMT】【组合数】
题目大意: 一个$n*n$的格子,每个格子由你填色,有三种允许填色的方法,问有一行或者一列相同的方案数. 题目分析: 标题的FMT是我吓人用的. 一行或一列的问题不好解决,转成它的反面,没有一行和一列 ...
- Appium+python+html生成饼图测试报告
历时三周这个小框架终于正式运行了,git源码地址;https://github.com/jiyanjiao/AutoTEST/tree/master/qingqi_driver_app 报告如图: