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++;
             } 
  • 相关阅读:
    spring bean-- autowired的正确用法
    @Autowired的使用:推荐对构造函数进行注释
    spring中bean的构造函数,Autowired(Value)注入与@PostConstruct调用顺序
    IconVault – 创建自定义图标字体的神器推荐
    Pure – 赞!轻量的、响应式的 CSS 模块集
    HTML Inspector – 帮助你编写高质量的 HTML 代码
    Tourist.js – 简单灵活的操作指南和导航插件
    分享!20套惊艳的扁平化设计素材免费下载
    Web 开发人员必备的随机 JSON 数据生成工具
    Sylius – 100% 免费和开源的电子商务解决方案
  • 原文地址:https://www.cnblogs.com/beiyueya/p/12123888.html
Copyright © 2011-2022 走看看