zoukankan      html  css  js  c++  java
  • 区间调度问题。

    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++;
             } 
  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/beiyueya/p/12123888.html
Copyright © 2011-2022 走看看