`
zuroc
  • 浏览: 1309825 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

百度之星2007初赛第一条-水果开会时段

    博客分类:
  • C++
阅读更多
百度之星2007年初赛第一条

时间好紧张,只完成了一题...................
由于这里blog的bug我把<和>替换为了全角

思路

用vector<vector<string>>来保存水果,相同的水果为一组

每个新水果都检查是否可以分到其中一组中,如果不行,新建一组

最后统计一下有多少组即可

时间紧张,代码写的有点混乱:)


1.水果开会时段

每个百度工程师团队都有一笔还算丰裕的食品经费,足够每天购置多种水果。水果往往下午送达公司前台。前台的姐姐们只要看到同时出现五种或以上的水果,就称之为“水果开会”。

从搜索引擎切词的语法角度,只要两种水果的名字中有一个字相同就属于同样的类别。例如“小雪梨”和“大雪梨”是同一种水果,而“核桃”和“水蜜桃”也被认为是同一种水果。尤其要指出的是,如果有三种水果x, y, z同时在前台出现,且x和y是同一种水果,y和z也是同一种水果的时候,x和z在此时也被认为是同一种水果(即使x和z并不包含相同的字)。现在前台的姐姐们想知道,今天是否有“水果开会”——五种或更多的水果同时在前台出现。

输入格式
输入的第一行只有一个整数n,表示购置水果的组数。接下来的n行表示水果的到达时间、取走时间(时间用1200到1900之间的正整数表示,保证取走时间大于到达时间)。剩下的字符串以空格分割每一种水果。如“1400 1600 雪梨水蜜桃”,表示下午两点到四点(包含两点和四点这两个时间点),雪梨和水蜜桃会在前台等待开会。每种水果名称由不超过十个汉字组成。

输出格式
输出仅一行,包含一个字符串Yes或No,分别表示今天水果开会与否。

输入样例1 例
3
1200 1400 雪梨 柠檬
1300 1400 西瓜 苹果
1400 1800 花生 水蜜桃

输出样例1 例
Yes

输入样例2 例
3
1200 1400 雪梨 柠檬
1400 1500 哦 大梨 呀
1500 1800 咦 大梨

输出样例2 例
No

样例解释
在样例1中,时刻1400有六种水果在前台;在样例2中,由于雪梨和大梨在任何时刻都是同一种水果,最多只有四种水果同时在前台。

评分规则
程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超过1秒,否则该用例不得分;
要求程序能按照输入样例的格式读取数据,按照输出样例的格式将运行结果输出到标准输出上。如果不能正确读入数据和输出数据,该题将不得分;
该题共有10个测试数据集,每组数据均满足n<=10,每个时段最多有10个水果,一共不超过50个水果;
该题目20分。

#include <fstream>
#include <sstream>
#include <iostream>

#include <vector>
#include <map>
#include <list>

#include <string>

#include <algorithm>
#include <functional>

using namespace std;

#define BEG_END(c)        (c.begin()),(c.end())

typedef string::size_type str_size;

bool same(string a,string b)
{
    int len=b.size();
    for (int i=0;i!=len;i+=2)
    {
        if (a.find(b.substr(i,2)) != string::npos)return true;
    }
    return false;
}


template<class T>
bool right(T a,T b)
{
    vector<vector<string> > total;
    for (;a!=b;++a)
    {int k=0;
    //    cout<<" size "<<(a->second).size()<<" ";
        next:
        while (k!=(a->second).size())
        {
           
            for (int i=0;i!=total.size();++i)
            {

                for (int j=0;j!=total[i].size();++j)
                {
                    if (same((a->second).at(k),total[i][j]))
                    {
                        total[i].push_back((a->second).at(k));
                        ++k;
                        goto next;
                    }
                }
            }
                            vector<string> b;
                b.push_back((a->second).at(k));
                total.push_back(b);
            ++k;
        }
    }
    return total.size()>4;
}

int main()
{
    int t;
    string line;
    int in,out;
    cin>>t;
    getline(cin,line);
    typedef  vector<pair<pair<int,int>,vector<string> > > viis;
    vector<pair<pair<int,int>,vector<string> > > all;
    while (t--)
    {
        getline(cin,line);
        istringstream ss(line);

        ss>>in>>out;
        string item;
        vector<string> fruit;

        while (ss>>item)
        {
            fruit.push_back(item);
        }

        all.push_back(make_pair(make_pair(in,out),fruit));
        viis::iterator j=all.begin();
        for(viis::iterator i=all.begin();i!=all.end();++i){
            while((j->first).second<(i->first).first){
                ++j;
            }
            if(right(j,i+1))
            {
                cout<<"Yes\n";
                goto END;
            }
        }
    }
        cout<<"No\n";
END:
    return 0;
}

/*
template<class T>
int all(T t){
    int total=0;
    int size=t.size();
    for(int i=0;i!=size;++i){
        total+=t[i].size();
    }
    return total;
}*/
分享到:
评论
1 楼 sunnycare 2007-05-27  
说说思路吧,感觉这次赛制的改变了。。
题目难度是小了。但是时间太短了。。
而且事先准备好一些工具库要占很大便宜。。。

相关推荐

    NOIP2006-2018初赛+2019CSP-J CSP-S初赛(2020.09.27).rar

    NOIP2006-2018初赛+2019CSP-J CSP-S初赛(2020.09.27) NOIP2006-2018初赛+2019CSP-J CSP-S初赛(2020.09.27) NOIP2006-2018初赛+2019CSP-J CSP-S初赛(2020.09.27) NOIP2006-2018初赛+2019CSP-J CSP-S初赛(2020....

    CSP-J初赛复习资料---NOIP普及组初赛相关资料(2019-10-15).pdf

    CSP-J初赛复习资料---NOIP普及组初赛相关资料(2019-10-15)

    百度之星2011(初赛)

    ### 百度之星2011(初赛)算法设计题解析 #### 图标排列问题解析 ##### 问题背景及目标 在百度应用平台上,为了更好地向用户推荐应用,工程师们希望通过合理的图标排列来提高用户体验。研究显示,将同一开发者所...

    Astar2007百度之星程序设计大赛网络资格赛(初赛) 题

    根据给定的信息,我们可以分析出这是关于Astar2007百度之星程序设计大赛网络资格赛(初赛)的相关题目及解析。以下是对各题目所涉及的知识点进行详细阐述: ### 第一题:时间线问题 #### 题目描述: 本题要求处理...

    NOIP初赛 CSP-J1 CSP-S1 第1轮 初赛 信奥中的数学知识(C).pdf

    NOIP初赛 CSP-J1 CSP-S1 第1轮 初赛 信奥中的数学...NOIP初赛 CSP-J1 CSP-S1 第1轮 初赛 信奥中的数学知识是一个非常有价值的学习资源,涵盖了非常广泛的数学知识领域,非常适合需要学习和掌握数学知识的学生和教师。

    NOIP2017-初赛-提高组-带答案.pdf

    NOIP2017-初赛-提高组-带答案.pdf

    2022 CSP-J1 CSP-S1 初赛 资料集(2022.07.08).pdf

    知识点 1:CSP-J1 CSP-S1 初赛报名通知 CSP-J1 CSP-S1 初赛是中国计算机学会(CCF)举办的全国青少年计算机编程大赛的初赛,旨在选拔优秀的青少年编程选手,旨在选拔优秀的青少年编程选手,并为他们提供更多的学习...

    CSP-J1 CSP-S1 第1轮 初赛 NOIP2013-普及组初赛(2023.07.11).pdf

    CSP-J/S比赛分为两轮,第一轮为初赛,通常包括若干道编程题目,参赛者需要在规定时间内完成编程并提交代码,由系统自动评判正确性。比赛语言通常包括C++等。2023年的CSP-J1 CSP-S1初赛时间为2023年7月11日。 参赛者...

    2020 CSP-J 入门级 初赛 第一轮 试题与解析 PDF.rar

    《2020 CSP-J 入门级 初赛 第一轮 试题与解析》 CSP-J(入门级)是中国计算机学会(CCF)组织的计算机编程能力认证的一部分,主要面向初中生,旨在培养和评估学生的算法设计和编程能力。初赛作为第一轮比赛,是对...

    信奥帮-信息学奥赛-CSP-J1S1初赛集训知识点-考点-思维导图课件

    《信奥帮-信息学奥赛-CSP-J1S1初赛集训知识点解析》 在信息技术日益发展的今天,信息学奥赛(IOI)已成为青少年展现编程技能和逻辑思维能力的重要舞台。CSP(Contest Selection Process)是NOIP(全国青少年信息学...

    NOIP CSP-J CSP-S 初赛 第1轮 学习资料集(S)-2023.09.21-1000页.pdf

    比赛通常包括两轮,本资料集特别提到了第一轮的学习资源。 【计算机结构与组成】是CSP-J CSP-S初赛中的重要基础概念。这部分内容涵盖计算机硬件和软件的基本构造,包括CPU、内存、输入输出设备、总线等组成部分的...

    2012百度之星初赛第二场c题

    - **选择排序、插入排序等**: 虽然本题未涉及这些排序算法,但在实际编程中也是常见的排序方法之一。 ### 4. 性能分析与优化 #### 4.1 时间复杂度 - **输入读取**: O(n),其中 n 是输入数据的数量。 - **计算 max1 ...

    百度之星题目(2005-2010)

    《百度之星程序设计大赛:2005-2010年试题解析》 自2005年起,百度公司主办的"百度之星"程序设计大赛成为每年一度的IT界盛事,吸引了无数编程爱好者和专业选手参与。该比赛不仅检验了参赛者的编程技巧,也推动了...

    2021csp-j初赛试题及答案.docx

    2021年的CSP-J初赛是该年度竞赛的第一阶段,通过此环节筛选出优秀选手进入后续的复赛。 【试题类型】 CSP-J初赛试题通常包括两部分:编程题和算法题。编程题主要考察选手对基本编程语言(如C++或Python)的理解和...

    2019 2020 CSP-J CSP-S组 第1轮 初赛 答案+解析.rar

    《2019 2020 CSP-J CSP-S组 第1轮 初赛 答案+解析》 此压缩包文件包含了2019年和2020年连续两年CSP-J (入门级) 和 CSP-S (提高级) 组的第一轮初赛的答案与解析。CSP,全称为China Software Programming Contest,是...

    NOIP CSP-J CSP-S 初赛 第1轮 学习资料集(S)-2023.09.25.pdf

    NOIP CSP-J CSP-S 初赛 第1轮 学习资料集(S)--2023.09.25

    百度之星十年试题集

    - **初赛第一题:水果开会时段** - **题目描述**:在给定的时间段内安排会议,使得尽可能多的人能够参加。 - **算法分析**:此类问题通常可以通过贪心算法来解决,优先选择参与人数最多的时段。 - **初赛第二题:...

Global site tag (gtag.js) - Google Analytics