排序训练5 D-4

“今年暑假不AC?” 
“是的。” 
“那你干什么呢?” 
“看世界杯呀,笨蛋!” 
“@#$%^&*%...”

确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。 
作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目)

Input

输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。

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

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
struct time
{
int s,e;
}t[10000];
bool cmp1(time a,time b)
{
if(a.s==b.s)
return a.e<b.e;
return a.s<b.s;
}
int main()
{
int n,i;
while(~scanf("%d",&n))
{
if(n==0)continue;
for(i=0;i<n;i++)
scanf("%d%d",&t[i].s,&t[i].e);
sort(t,t+n,cmp1);
int sum[1000],i1;
for(i1=0;i1<n;i1++)
{
sum[i1]=1;
int k,j=i1;
for(k=0;k<n;k++)
{
if(t[k].s>=t[j].e)
{
int i2;
j=k;
for(i2=k+1;i2<n-1;i2++)
{
if(t[i2].e<t[j].e)j=i2;
}
sum[i1]++;
continue;
}
}

}
sort(sum,sum+n);
printf("%d\n",sum[n-1]);
}
return 0;
}

心得:一定要细心。。。。

时间: 2025-01-06 23:43:33

排序训练5 D-4的相关文章

排序训练5, B-2

Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. Input 测试输入包含若干测试用例.每个测试用例的第1行包含两个整数 N (<=100000) 和 C,其中 N 是纪录的条数,C 是指定排序的列号.以下有 N 行,每行包含一条学生纪录.每条学生纪录由学号(6位数字,同组测试中没有重复的学号).姓名(不超过8位且不包含空格的字符串).成绩(闭区间[0, 100]内的整数)组成,每个项目间用1个空格隔开.当读到 N=0 时,全部输入结束,相应的结果不要输出. Output

国美深度学习初体验,开启社交电商的智能时代!

本周五(2017 年 7 月 21 日),由 51CTO 主办的 WOTI2017  全球创新技术峰会将于北京富力万丽酒店举行,此次峰会设有全天的巅峰论坛,及深度学习.人机交互和智+应用等分论坛. 国美大数据中心副总监杨骥,将出席深度学习分论坛,做主题为"深度学习开启社交电商智能时代"的演讲.在会前交流中,杨骥介绍了此次演讲的部分技术干货,让我们抢先看. 人工智能.机器学习与深度学习的关系 从冯诺依曼体系结构的提出开始,人类使用计算机就有了智能化的诉求.也就是使用计算机或机器人能够帮助

蓝桥杯 算法训练 最小乘积(基本型) (水题,排序)

算法训练 最小乘积(基本型) 时间限制:1.0s   内存限制:512.0MB 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25 输入格式 第一个行一个数T表示数据组数.后面每组数据,先读入一个n,接下来两行每行n个数,每个数的绝对值小于等于1000. n<=8,T<=

acm集训训练赛B题【排序+模拟】

一.原题 Description Being a programmer, you like arrays a lot. For your birthday, your friends have given you an array a consisting of ndistinct integers. Unfortunately, the size of a is too small. You want a bigger array! Your friends agree to give you

20151230训练题解(最短路+拓扑排序)

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=103223#problem/B 这道题用经典的dijsktra算法,大概思路就是用dist[x]存储x到已经确定集合的最短路,n次循环到这个这个最小值,然后更新其他点到新集合的最短路即对应的dist[] 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <al

【极角排序+双指针线性扫】2017多校训练七 HDU 6127 Hard challenge

acm.hdu.edu.cn/showproblem.php?pid=6127 [题意] 给定平面直角坐标系中的n个点,这n个点每个点都有一个点权 这n个点两两可以连乘一条线段,定义每条线段的权值为线段两端点点权的乘积 现在要过原点作一条直线,要求这条直线不经过任意一个给定的点 在所有n个点两两连成的线段中,计算与这条直线有交点的线段的权值和 最大化这个权值和并输出 题目保证,给定的n个点不重合且任意两个点的连线不经过原点 [思路] 一条经过原点的直线把n个点分成两个半平面A,B 假设A中的点权

算法训练 排序

时间限制:1.0s   内存限制:512.0MB 问题描述 编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列. 输入格式:输入只有一行,即三个整数,中间用空格隔开. 输出格式:输出只有一行,即排序后的结果. 输入输出样例 样例输入 9 2 30 样例输出 30 9 2 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String []

华为训练题:中级——字符串排序(查找)

编写一个程序,将输入字符串中的字符按如下规则排序. 规则1:英文字母从A到Z排列,不区分大小写. 如,输入:Type 输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列. 如,输入:BabA 输出:aABb 规则3:非英文字母的其它字符保持原来的位置. 如,输入:By?e 输出:Be?y 样例: 输入: A Famous Saying: Much Ado About Nothing(2012/8). 输出: A aaAAbc dFgghh: iimM nNn oooos 

入门训练 数列排序

-------------------------------------------------------------------------------------------------------- 这道题是对排序的考察 -------------------------------------------------------------------------------------------------------- 算法一(冒泡排序) 相邻两个比较,把较大的往上替换循环往复