FOJ 2077 有奖月赛题

原创 2012年03月26日 16:54:05

      昨天比赛时浩神写的这道题,当时我想了想,大致有了个思路,只是感觉绝对会超时,所以一直没写。没想到这道题数据弱了,浩神给过了。今天来了后试着写了一下,没想到,这一写就写了快一天。。。。。悲剧。。。已经有了思路,还是tle了几次,,题目:

Problem 2077 The tallest tree

Accept: 41    Submit: 176
Time Limit: 1000 mSec    Memory Limit : 65536 KB

 Problem Description

lzs种了n棵树,每棵树每天长高一定的高度。某一天,lzs想知道树长得怎么样了,你能求出那一天最高的树有多高吗?

 Input

有多组测试数据,每组数据第一行输入两个整数n,m(1<=n,m<=100000),接下来n行,每行两个整数a,b(0<=a,b<=100000),表示第i棵树在第0天的高度以及每天生长的高度。接下来m行,每行一个整数x(0<=x<=100000),表示询问第x天最高的树有多高。

 Output

对于每个询问输出一行,为当天最高的树的高度。

 Sample Input

1 310 4123

 Sample Output

141822
ac代码:

#include <iostream>
#include <string.h>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N=100005;
struct tree{
  int jishu,xielv;
}tt[N];
int day[N],newday[N];
tree newtree[N];
long long ans[N];
bool cmp(tree a,tree b){
	if(a.jishu==b.jishu)
		return a.xielv>b.xielv;
	return (a.jishu>b.jishu&&a.xielv>b.xielv);
}
int main(){
 //freopen("11.txt","r",stdin);
  int n,t;
  while(~scanf("%d%d",&n,&t)){
    for(int i=0;i<n;++i)
		scanf("%d%d",&tt[i].jishu,&tt[i].xielv);
	sort(tt,tt+n,cmp);
	for(int i=0;i<t;++i)
	{scanf("%d",&day[i]);newday[i]=day[i];}
	sort(newday,newday+t);
	int m=n;
	long long maxvalue=tt[0].jishu,maxxielv=tt[0].xielv;
	for(int i=0;i<t;++i){
	  int x=newday[i],newpos=0,k=1;
	  for(int j=0;j<m;++j){
		  if(!(maxvalue>tt[j].jishu&&maxxielv>tt[j].xielv))
		  {newtree[newpos].jishu=tt[j].jishu;newtree[newpos++].xielv=tt[j].xielv;}
	  }
	  for(int i=0;i<newpos;++i){
	    tt[i]=newtree[i];
	  }
	  m=newpos;
	 for(int j=0;j<newpos;++j){
		  if(newtree[j].jishu+x*newtree[j].xielv>maxvalue){
		    maxvalue=newtree[j].jishu+x*newtree[j].xielv;
			maxxielv=newtree[j].xielv;
		  }
	  }
	  ans[x]=maxvalue;
	}
	for(int i=0;i<t;++i)
		printf("%lld\n",ans[day[i]]);
  }
  return 0;
}


FOJ 2014.3 有奖月赛

FOJ 2014.3  由于跑A区去面试的原因,这次比赛没参加,回来时已经四点多了,过了H题,然后D题交了一发,没考虑一个盟国只有一个国家的情况,wa了一次,之后就结束比赛了…具体说...
  • qingwen_z
  • qingwen_z
  • 2014年03月25日 19:28
  • 511

FOJ有奖月赛3月

福大有奖月赛。。。 A了一题,自己弱得不得了,A题没注意一个问题一直WA。。。 A: 模拟一题。 要你按矩阵的方式输出每个用户对每个文件的权限。。。 没注意到每个用户属于不同组,要把组的个数...
  • u013320038
  • u013320038
  • 2014年03月24日 13:50
  • 609

FOJ有奖月赛-2013年11月

01:fzu 2132 LQX的作业 题意:中文题不解释了。 解题思路:从0-1中拿出一个数,小于等于x的概率是x,所以,选出i个小于等于x的数的概率是x^i,那么在n个位置上,选出i个放小...
  • No__stop
  • No__stop
  • 2013年11月12日 12:01
  • 1536

中兴捧月蓝剑之路初赛题目——数房子

中兴捧月蓝剑之路初赛题目——数房子:为了规划城市,需要统计房屋数目信息。方法如下,一张航拍照片会被分隔为M*N个小格子,用数字0或1分别表示某格子看到的是空地还是屋顶,相邻的屋顶属于同一栋房子,位于对...
  • c070363
  • c070363
  • 2016年07月24日 09:19
  • 800

FOJ有奖月赛-2014年3月

Problem List FOJ有奖月赛-2014年3月 Contest Finished! Tag Pro.ID Problem Title Ratio(AC/Submit) ...
  • u013292846
  • u013292846
  • 2014年03月23日 23:58
  • 1019

FOJ有奖月赛-2015年03月

弱爆了,细节处理不了,代码熟练度也不行,想法有时候还过于复杂,整个人都需要被优化。 A简单题 没有什么算法,字符串代码题。 但是复习了不少关于字符串处理的知识。 题意:给你两个串,一个模式...
  • qq_25627977
  • qq_25627977
  • 2015年03月22日 17:18
  • 747

FOJ有奖月赛-2016年4月(F)

Problem F 邮票 Accept: 113    Submit: 523 Time Limit: 1000 mSec    Memory Limit : 32768 KB  P...
  • qq_24489717
  • qq_24489717
  • 2016年04月19日 13:09
  • 431

FOJ有奖月赛-2010年12月

去做这套比赛完全是为了去膜拜福大核武,京润后人,这套题几乎都是他的神题,我表示压力很大题目地址http://acm.fzu.edu.cn/contest/index.php?cid=111A:题目描述...
  • foreverlin1204
  • foreverlin1204
  • 2011年01月19日 17:03
  • 1056

USACO月赛原题及数据

网上的原题大多是中文的,有些翻译难免引起误解,所以看一看USACO原汁原味的英文原题还是有必要的,我之前一直也苦于无处找到,今天偶然发现下面的网站上有USACO月赛原题。 http://tjsct....
  • creativewang
  • creativewang
  • 2012年10月29日 22:25
  • 9466

hdu 2077汉诺塔IV

汉诺塔IV Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm...
  • Songjs19931206
  • Songjs19931206
  • 2015年01月29日 22:26
  • 876
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FOJ 2077 有奖月赛题
举报原因:
原因补充:

(最多只允许输入30个字)