LA 4254 这个为什么会超时?

#include<iostream>
#include<vector>
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
struct Line
{
    int a,b,w;
};
vector <Line> line;
vector <Line> templine;
int n;
int workline[20010];
bool ok(int s)
{
    memset(workline,0,sizeof(workline));
    templine.resize(line.size());
    memcpy(&templine[0],&line[0],line.size()*sizeof(Line));

    for(int i=0;i<n;i++)
    {
    //    cout<<templine[i].a<<" "<<templine[i].b<<endl;
        for(int j=templine[i].a;j<templine[i].b;j++)
        {
            if(workline[j]<s)
            {
                if(templine[i].w>(s-workline[j]))
                {
                    int temp=s-workline[j];
                    workline[j]=s;
                    templine[i].w-=temp;
                }
                else
                {
                    workline[j]+=templine[i].w;
                    templine[i].w=0;
                }
            }
        }
        if(templine[i].w>0)
            return false;
    }
    return true;
}
bool cmp(Line aa,Line bb)
{
    return aa.b<bb.b;
}
int main()
{
    int T;
    //cin>>T;
    scanf("%d",&T);
    while(T--)
    {
        int t1,t2,t3;
        Line aa;
        //cin>>n;
        scanf("%d",&n);
        line.clear();
        for(int i=0;i<n;i++)
        {
            //cin>>t1>>t2>>t3;
            scanf("%d%d%d",&t1,&t2,&t3);
            aa.a=t1;
            aa.b=t2;
            aa.w=t3;
            line.push_back(aa);
        }
        sort(line.begin(),line.end(),cmp);

        int L=1,R=1000000,M;
        while(L<R)
        {
            if(R-L==1) break;
            M=(R+L)/2;
            if(ok(M)) R=M;
            else L=M;
            //cout<<R<<"*"<<endl;
        }
        cout<<R<<endl;
    }
    return 0;
}

时间: 2025-01-02 16:03:10

LA 4254 这个为什么会超时?的相关文章

LA 4254 处理器(二分+贪心)

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2255 题意: 有n个任务,每个任务有3个参数ri,di和wi,表示必须在时刻[ri,di]之内执行,工作量为wi.处理器的速度可以为任意值,任务不一定要连续执行,可以分成若干块,求最大速度的最小值. 思路: 最大值的最小值问题可以考虑用二分法来做. 这道题目怎么判断速度合法是

LA 4254 Processor 处理器 【二分 贪心 优先队列】

题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21663 二分: 最大值最小的问题通过二分来求解.对处理器速度进行二分之后,问题就转化成了对于给定的处理速度,问处理器是否可以将这些问题处理完. 贪心: 一个贪心的思路就是每个时刻应该尽量 做可以做的任务中,结束时间最早的那个,这样最起码不会使结果更糟.这样就可以枚举每个单位时间,然后去找可以做的并且结束时间最早的那个去做,直到用完这一单位时间或者无任务可做为止.

LA 4254 贪心

题意:有 n 个工作,他的允许的工作时间是 [l,r] ,工作量是 v ,求CPU最速度的最小值. 分析: 可能太久没有做题了,竟然脑子反应好慢的.还是很容易想到二分,但是二分怎么转移呢? 可以看出,[l,r] 的区间范围不大,可以枚举,cpu 此时的二分答案 x,尽可能的贪心,怎么贪心呢,在同一速度情况下,是最先结束的优先. 而且,这一时刻,他能做很多任务,当 x 很大时,就在这里用优先队列来贪心安排任务. 其实这个题目中的那个图还是有干扰的,因为时时刻刻都要CPU速度为x. #include

2015 暑假

2015.07.19 1 //2015.07.19 2 3 **********做的题目*********** 4 LA 4254 5 二分最小化最大值,check函数不好写---,是一秒一秒地来处理的 6 7 UVa 11627 8 二分,写check函数的时候,用到了一点点物理的平抛,求出下落的区间的范围,再判断是否可行 9 10 UVa 11134 11 贪心,优先队列, 12 行列无关,转化为对于[1,n]中的每一个数,判断i是否在区间[l,r]里面 13 然后贪心地选择包含i点的右端点

hdu 5745 la vie en rose

这道题的官方题解是dp,但是可以暴力出来.改天再研究怎么dp. 暴力的时候,如果计算sum的时候,调用strlen函数会超时,可见这个函数并不是十分的好.以后能不用尽量不用. La Vie en rose Time Limit: 14000/7000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 861    Accepted Submission(s): 461 Problem

select 设置发送超时发送注意事项

//设置发送超时你只发送, 并发送足够多的数据以填满发送缓冲区, 接收端一直不接收.发送端一量满发送缓冲区就会阻塞, 如果你设置了发送超时, 超时到了它就会返回发送超时了. 在send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,而设置收发超时控制: 在Linux下需要注意的是时间的控制结构是struct timeval而并不是某一整型数,以下是来自于网上一篇文章中的摘录,它是这样写的:int nNetTimeout=1000;//1秒,//设置发送超时setsockopt(

mongo 自动创建索引导致应用连接超时

2016年10月16日一个周末的时光遇到了一个很是让人恼火的问题!tomcat总是抛出连接超时问题错误,让人甚是恼火啊!!! 报错信息如下: [2016-10-15 18:30:58] 113578459   INFO - ----- PermissionsInterceptor ----- - 登录人pin--------WUJIE 十月 15, 2016 6:30:58 下午 com.mongodb.DBApiLayer$Result killCursor 警告: can't clean 1

一段mongodb服务器读取数据超时的故事

北京时间 2016年9月25日  22:58:30 PM 近期线上生产环境mongodb的总是发现读取数据超时的问题,今天下午坐下来细细的研究了一番,大致过程如下: 业务背景 线上有一对mongodb主从的服务器,只是简单做了mongodb的主从,master - slave. 开始以为做了主从就能确保数据不丢的问题了,确实,数据没有发生丢失的问题,但是近期发现好多用户在点击某些操作要读取mongo里面的数据内容的时候,要等待很长的时间,这样的等待是叫人无法忍受的. 最开始的时候,以为做了主从,

IOS-网络(GET请求和POST请求、HTTP通信过程、请求超时、URL转码)

1 // 2 // ViewController.m 3 // IOS_0129_HTTP请求 4 // 5 // Created by ma c on 16/1/29. 6 // Copyright © 2016年 博文科技. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 #import "MBProgressHUD+MJ.h" 11 12 @interface ViewController