您的位置:首页 > 其它

(精)河南省第三届acm(房间安排)

2012-05-02 18:38 260 查看
开始的时候,我看到题的时候,看到测试数据位10000.当时瞬间想到“线段树”。
但是后来去晚上搜代码,发现根本不是那么回事。
仔细一看,发现10000只是输入的次数。其实天数最多是180.而连续住宿最多10天。也就是在250以内。
只要生命一个250以内的数组。而且住宿天数最多是10天。计算量没有多大。
可能是自己太紧张吧。其实省赛要是能用到线段树,那他娘的才有鬼。、

#include<iostream>
#include<stdio.h>
using namespace std;
#define MAX 230
int sum[MAX];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
//freopen("in.txt","r",stdin);
int N;int room;int start;int day;

int i=0;
for(i=0;i<MAX;i++)
{
sum[i]=0;
}
scanf("%d",&N);
while(N--)
{
scanf("%d%d%d",&room,&start,&day);
for(i=0;i<day;i++)
{
sum[start+i]+=room;
}
}
int max=-1;
for(i=0;i<MAX;i++)
{
if(max<sum[i])
{
max=sum[i];
}
}
cout<<max<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: