• CodeForces279B


    题意

    给你一个n和k,表示n本书和t分钟,接下去给出n个数,表示每本书的看书市时长,
    要求在给定的t时间内,求出看的最大图书量。
    按照给定的顺序进行看书,不能再回过头去看书。

    思路

    1. 贪心:该题可以转化成最长公共子序列,然后用尺取法来做。

    2. DP。

    AC代码

    #include<bits/stdc++.h>
    using namespace std;
    
    int a[100020];
    
    int main()
    {
        int n,t;
        cin>>n>>t;
        for(int i=0; i<n; i++)
            cin>>a[i];
        int sum=0,l=0,cnt=0,k=0,ans=0; //k记录下标
        for(int i=0; i<n; i++)
        {
            sum+=a[i];        
            while(sum>t) // if(sum>t)
                sum-=a[k++];
            if(ans<=i-k+1)
                ans=i-k+1;
        }
        cout<<ans<<endl;
        return 0;
    }
    
  • 相关阅读:
    Flesch Reading Ease (poj 3371)
    保留道路
    列车调度
    三角形
    高精度加法
    AC自动机(1)
    线段树
    并查集(3)
    并查集(2)
    并查集
  • 原文地址:https://www.cnblogs.com/OFSHK/p/13675365.html
Copyright © 2020-2023  润新知