1187: 零起点学算法94——今年暑假不AC(Java)
1187:零起点学算法94——今年暑假不AC
Time Limit: 1 Sec Memory Limit: 32 MB 64bit IO Format: %lld
Description
“今年暑假不AC?”
“是的。”
“那你干什么呢?”
“看世界杯呀,笨蛋!”
“@#$%^&*%…”
确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。
作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目)
Input
输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。
提示:Ti_s<=Ti_e
Output
对于每个测试实例,输出能完整看到的电视节目的个数,每个测试实例的输出占一行。
Sample Input
12
1 3
3 4
0 7
3 8
15 19
15 20
10 15
8 18
6 12
5 10
4 14
2 9
0
Sample Output
5
代码如下
import java.util.Scanner;
public class Main {
Scanner sc;
int n, i;
// 存储节目开始时间和结束时间
short[][] time;
// 最终可以看的节目数量
int number;
public Main() {
sc = new Scanner(System.in);
n = sc.nextInt();
while(n > 0) {
// 输入时间
input();
// 排序
sort();
// 统计可以看的节目数量
number = statistics();
System.out.println(number);
n = sc.nextInt();
}
sc.close();
}
/**
* 输入节目的开始时间和结束时间
*/
private void input() {
time = new short[n][2];
for(i = 0; i < n; i++) {
time[i][0] = sc.nextShort();
time[i][1] = sc.nextShort();
}
}
/**
* 节目排序。规则如下:
* 1、结束时间早的放在前面
* 2、结束时间相同,则开始时间早的放在前面
* 算法:选择排序
*/
private void sort() {
int j, min;
for(i = 0; i < n; i++) {
min = i;
for(j = i; j < n; j++) {
if(time[min][1] > time[j][1]) {
min = j;
} else if(time[min][1] == time[j][1]){
if(time[min][0] > time[j][0]) {
min = j;
}
}
}
if(min != i) {
swap(min, i);
}
}
}
/**
* 交换节目位置,即交换时间
* @param a 需要交换的第一组数据的下标
* @param b 需要交换的第二组数据的下标
*/
private void swap(int a, int b) {
short temp;
temp = time[a][0];
time[a][0] = time[b][0];
time[b][0] = temp;
temp = time[a][1];
time[a][1] = time[b][1];
time[b][1] = temp;
}
/**
* @return 返回统计的可以看的节目数量
*/
private int statistics() {
int number = 1;
int previous = 0;
for(i = 1; i < n; i++) {
if(time[i][0] >= time[previous][1]) {
number = number + 1;
previous = i;
}
}
return number;
}
public static void main(String[] args) {
new Main();
}
}
1187: 零起点学算法94——今年暑假不AC(Java)的更多相关文章
- Problem D: 零起点学算法94——输出矩阵
#include<stdio.h> int main() { ][]; while(scanf("%d %d",&n,&m)!=EOF) { ; ;i& ...
- 1164: 零起点学算法71——C语言合法标识符(存在问题)
1164: 零起点学算法71——C语言合法标识符 Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 10 ...
- 1163: 零起点学算法70——Yes,I can!
1163: 零起点学算法70--Yes,I can! Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: ...
- 1147: 零起点学算法54——Fibonacc
1147: 零起点学算法54--Fibonacc Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 20 ...
- 1145: 零起点学算法52——数组中删数II
1145: 零起点学算法52--数组中删数II Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 293 ...
- 1137: 零起点学算法44——多组测试数据输出II
1137: 零起点学算法44--多组测试数据输出II Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: ...
- 1136: 零起点学算法43——多组测试数据输出I
1136: 零起点学算法43--多组测试数据输出I Time Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lldSubmitted: ...
- 1135: 零起点学算法42——多组测试数据(求和)IV
1135: 零起点学算法42--多组测试数据(求和)IV Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted ...
- 1134: 零起点学算法41——多组测试数据(a+b)III
1134: 零起点学算法41--多组测试数据(a+b)III Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitt ...
随机推荐
- Hadoop 安装(本地、伪分布、分布式模式)
本地模式 环境介绍 一共三台测试机 master 192.168.4.91 slave1 192.168.4.45 slave2 192.168.4.96 操作系统配置 1.Centos7 ...
- sql server 发布订阅
[配置] 一. 发布方 复制 >> 如果有问题 C:\Windows\System32\drivers\etc hosts: 127.0.0.1 ?? 二. 订阅方 订阅方设置结束 三. ...
- [mcI18N]mcI18N项目简介
mcI18N项目全称为我的世界模组本地化工具链项目(Minecraft Mod Localization Toolchain Project),是一个为我的世界模组本地化过程提供工具/平台支持的项目. ...
- C++ STL介绍——简介
目录 1.什么是STL 2.STL中六大组件 2.1 容器(Container) 2.2 迭代器(Iterator) 2.3 算法(Algorithm) 2.4 仿函数(Functor) 2.5 适配 ...
- 【Java】浅谈Java内部类(转载)
说得挺细的,不是泛泛而谈.https://blog.csdn.net/weixin_42762133/article/details/82890555
- redis配置文件讲解
#redis.conf # Redis configuration file example. # ./redis-server /path/to/redis.conf ############### ...
- 问题:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile)
一:问题 今天编译maven 项目构建失败,提示内容如下: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler ...
- JS时间转换,url编码,jquery返回类型等问题
1.当时间被转换为json格式后会被转换成 /Date(...)/ 这种格式,其中...为时间转换成妙后的一串整数 function changeDateFormat(cellval) { )); v ...
- 第三方框架MBProgressHUD-----实现各种提示框
程序运行显示如下 : 点击按钮实现对应的提示框: 这里只截取了其中一张图,有兴趣的可以自己运行程序,查看其他的几种提示框哟!!! 第三方框架MBProgressHUD的下载地址:https://git ...
- ORM学习笔记
19周 11章 django ORM基本创建类型以及生成数据库结构 类型: dbfirst :通过数据库创建类 codefirst:先创建类 再创建数据库 --最常用 ORM的意思: 通过类创建数据库 ...