文章标题

原创 2015年07月08日 11:13:59

贪心算法之今年暑假不AC

今年暑假不AC

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2864 Accepted Submission(s): 1535

Problem Description
“今年暑假不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

Author
lcy

Source
ACM程序设计期末考试(2006/06/07)

Recommend
lcy

用贪心算法求解:
1、首先输入节目时间(开始时间 结束时间),将节目的结束时间按升序排序。
2、排序,可用C++中的sort函数。
3、从第二组数据开始进行比较,若当前节目的开始时间小于被比较的节目的结束时间,则计数器加一,并将当前的节目作为被计较的节目组。
4、输出计数器,为可观看的节目总数。

代码如下所示:

#include <iostream>
#include <string>
#include <math.h>
#include <cstdlib>
#include <stdio.h>
#include <algorithm>

using namespace std;

struct JieMu
{
    int Ti_s,Ti_e;
}Totol[103];

bool cmp(JieMu X,JieMu Y)
{
    //return x.et<y.et||(x.et==y.et&&x.st<y.st);
    return X.Ti_e<Y.Ti_e || (X.Ti_e==Y.Ti_e && X.Ti_s<Y.Ti_s);
    //end time 升序 or if end time same then start time 升序
}
int main()
{
    int N;
    while (cin >> N && N!=0)
    {
        int i;
        for (i=0;i<N;i++)
        {
            cin >> Totol[i].Ti_s >> Totol[i].Ti_e;
        }
        //sort
        sort (Totol,Totol+N,cmp);
        int sum=1,point=0;
        for (i=1;i<N;i++)
        {
            if (Totol[i].Ti_s>=Totol[point].Ti_e)
            {
                sum++;
                point=i;
            }
        }
        cout << sum <<endl;
    }
    return 0;
}

PS:
一开始写的时候,我是将数组排好序,从最后的节目组开始向前比较,若当前的节目的结束时间小于被比较的节目的开始时间,则计数器加一,并更改当前的被比较的节目。但一直是WA。。。
后来参考了别人的代码,改变了思路,可以从一开始比较,若当前节目的开始时间小于被比较节目的结束时间,则也可以达到同样的效果。

http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=1&sectionid=3&problemid=3

用java提取不同类型的文章标题就要设计出不同的正则表达式

用java中提取不同类型的文本目录要设计出不同的正则表达式         最近,我从网上下载了一个用java编写的用正则表达式从文本文件中批量提取文本目录的程序。用该程序,我从《神墓》这本章回小说...
  • myhrrjava
  • myhrrjava
  • 2016年10月28日 10:29
  • 435

文章标题--再识HTML5

HTML5定稿一周年,你必须要重新认识HTML5了 2015-11-25 10:46 by 副主编 mengyidan1988 评论(8) 有6049人浏览 html5 facebook 声明:...
  • u014726937
  • u014726937
  • 2016年03月01日 13:11
  • 498

修改DEDECMS文章标题长度,解决DEDECMS文章标题显示不全

在用dede调用列表标题出来的时候,会发现标题文字字数显示不完全,那是因为dede默认标题出来长度是30个字符,为了让标题显示完整,要做以下修改!1、进入后台–系统–系统设置–系统基本参数–其他选项–...
  • yxwmzouzou
  • yxwmzouzou
  • 2015年04月29日 11:25
  • 10135

基于标题分类的文章主题句识别与提取方法

基于标题分类的主题句提取方法 基于标题分类的主题句提取方法可描述为: 给定一篇新闻报道, 计算标题与新闻主题词集的相似度, 判断标题是否具有提示性。对于提示性标题,抽取新闻报道中与其最相似的句子作为主...
  • lihaitao000
  • lihaitao000
  • 2016年06月24日 17:53
  • 3002

JavaScript点击标题折叠文章内容

还是在写长博客的时候想到的需求,在文章中点击等标签的时候自动折叠该标题下的所有子标题和正文。我想到了利用jQuery来实现,给所有标题写加上一个类“art-title”,再在js文件中添加点击事件。然...
  • AeroYoung
  • AeroYoung
  • 2015年09月01日 15:37
  • 717

scrapy抓取csdn中标题带有“语义”关键字的文章的标题和链接

scrapy抓取csdn中标题带有“语义”关键字的文章的标题和链接 实现步骤 中文字符比对 中文字符比对 首先了解一下ASCII,Unicode和UTF-8:  http://www.r...
  • searobbers_duck
  • searobbers_duck
  • 2016年07月14日 17:13
  • 39683

文章标题CSS常用选择器及与HTML结合方式

标签分类:块级标签:block ` div p ul li table 行内标签:in line span CSS与HTML结合方式 , css常用选择器...
  • u013033038
  • u013033038
  • 2015年03月21日 21:09
  • 631

让wordpress点击日志标题跳转到外部链接实现

Wordpress实现点击文章标题跳转到外部链接的方法,有时候出于某些目的的需要,需要在wordpress博客中实现点击文章标题不直接跳转转到文章页面,而跳转到外部链接的效果。不过WordPress默...
  • liuxuekai
  • liuxuekai
  • 2014年12月29日 13:41
  • 2404

WordPress通过文章ID获取文章标题内容等信息。

使用Wordpress的朋友可能遇到这样的问题,在非single.php页面中我们有时候想要调用当前文章的标题、内容等信息,而Wordpress在生成文章页的时候在各个页面中唯一不变的只有当前的文章I...
  • Q1059081877Q
  • Q1059081877Q
  • 2015年05月30日 22:12
  • 2186

修改csdn博客标题与博客描述

好的博客标题与描述能够帮助搜索引擎快速准确的找到我们,接下来介绍的就是更改csdn博客标题与博客描述的方法: 进入自己博客首页点击文章管理: 进入后点击博客配置: 前两项就是我们要找的内容了:...
  • qq_39085422
  • qq_39085422
  • 2017年11月13日 13:17
  • 1370
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文章标题
举报原因:
原因补充:

(最多只允许输入30个字)