• 区间调度问题。


    1,看起来就难里难气的。

    2,关键是思想吧,在可选的工作中每次都选择结束时间最早的工作。

    3,对了还要再独立写一遍才算。

    #include<utility>
    #include<algorithm>
    using namespace std;
    int n,S[1005],T[1005];
    pair<int,int> itv[1005];
    int ans=0,t=0; 
    int main(){
        cin>>n;
        for(int i=0;i<n;i++)  {cin>>S[i];cin>>T[i];}
        for(int i=0;i<n;i++) {itv[i].first=T[i];itv[i].second=S[i];}
        sort(itv,itv+n);
        //不过这个排序应该是以first为首,second跟着变
        //所以就把结束时间早的给排到前面去了
        for(int i=0;i<n;i++)
        {
            if(t<itv[i].second)//因为结束时间早的已经排到前面去了。 
            {
                ans++;
                t=itv[i].first;
            }    
        }//设计的还是很巧妙的
        cout<<ans<<endl;    
    }

    4,记住是独立得写出来。

    5,还有费曼一方面从宏观上费曼整个题目,一方面从微观的角度费曼一些代码细节。

    6,经过我这里的经验,发现三遍也不一定好。

    分三个阶段

    第一,借助各种方法实现了一遍(标志是起码已经通过样例了(或者AC))

    第二,开始单纯写代码,表示是能够独立写一遍之后,开始用脑子过一遍整个题目,然后再写最后一遍。

    第三,开始费曼,一方面费曼大的题目题意,一方面费曼小的代码细节。

    7,费大。简化为一个简陋版的拼凑问题,因为一般的拼凑是恰好,这个不要求恰好,但是拼凑的时候你可以不足,但是不可以超过。

    (也可以想象成不足可以用胶水什么的粘上,但是为了尽量少用胶水,所以要尽量多的木板)

    然后我们的解决方法就是每次在可选择的中的木板中选

    //不行,你这样拼凑的话失去了人家固有的两个属性。

    若干个具有两个可以比较的属性的事务,重点比较最后一个属性。在选择中添加了个贪心嘛(以最后一个属性为决定因素)。

    那怎么来深化代码细节?

    一,明确该模块代码的变量以及各表达式的意义。

    二,对该模块进行改写。

    #include<iostream>
    #include<utility>
    #include<algorithm>
    using namespace std;
    const int maxn=1005;
    int n,S[maxn],T[maxn];
    pair<int,int> itv[maxn];
    int ans=0,t=0;
    int main(){
        cin>>n;
        for(int i=0;i<n;i++){cin>>S[i]>>T[i];}
        for(int i=0;i<n;i++){itv[i].first=T[i];itv[i].second=S[i];}
        sort(itv,itv+n);
        for(int i=0;i<n;i++)
        {
            if(t<itv[i].second)
            {
                t=itv[i].first;
                ans++;
            }
        }
        cout<<ans<<endl;
    } 

    7,改写后的。

    t=itv[0].first;
        ans=1;
        for(int i=1;i<n;i++)
        {
            if(t<itv[i].second)
            {
                t=itv[i].first;
                ans++;
             } 
  • 相关阅读:
    [React] Use the React Context API to Globally Manage State
    [Docker] Push container to Docker hub
    [Docker] Create a Node.js Non-root Image
    时序数据库DolphinDB与Druid的对比测试
    麻省理工学院的牛人解说数学体系,你到哪个层次了?
    Python的7种性能测试工具:timeit、profile、cProfile、line_profiler、memory_profiler、PyCharm图形化性能测试工具、objgraph
    2020年度盘点:顶流坐镇的普林斯顿理科书单请收藏
    万字Matplotlib实操总结,几行代码实现数据绘图
    形意拳-五行拳之劈拳功法奥秘
    Top 10 Python Packages For Finance And Financial Modeling
  • 原文地址:https://www.cnblogs.com/beiyueya/p/12123888.html
Copyright © 2020-2023  润新知