P1297小气的小B
来源:互联网 发布:塞班5软件下载 编辑:程序博客网 时间:2024/05/16 19:46
描述 Description
其实你们都不知道,小B是很小气的。一天小B带着他的弟弟小B'一起去摘果子,走着走着,他们忽然发现了一颗长满了果子的树。由于弟弟长得太矮了,弟弟只有让哥哥小B帮他摘一些果子下来。哥哥小B说:"弟弟啊,不是我不想给你摘多,我只是一次拿不了那么多,昨天晚上又没睡好,只能上一次树。所以哥哥只能给你摘一个哈。"没办法,弟弟只有答应了这个要求。
于是几下小B就上了树,树上的果子还真多,有N个呢!!但是小B很快发现这些果子大小不一。抠门的小B就想给自己拿个最大的,给弟弟拿个最小的果子。但是由于树上有些果子太高,小B不一定可以够着,所以他给你选了P个可以够着的果子区间,让你在这些区间里面找一个最大的果子和一个最小的果子。
于是几下小B就上了树,树上的果子还真多,有N个呢!!但是小B很快发现这些果子大小不一。抠门的小B就想给自己拿个最大的,给弟弟拿个最小的果子。但是由于树上有些果子太高,小B不一定可以够着,所以他给你选了P个可以够着的果子区间,让你在这些区间里面找一个最大的果子和一个最小的果子。
输入格式 InputFormat
共p+2行,
第一行为n和p,
第二行为区间[1,n]的果子大小(用正整数表示)
后面p行形如a b,意为每次询问的区间的左界和右界
第一行为n和p,
第二行为区间[1,n]的果子大小(用正整数表示)
后面p行形如a b,意为每次询问的区间的左界和右界
输出格式 OutputFormat
共p行,第i行为第i次询问时得到的最大值以及最小值(一个询问用空格空开max和min)
【注意】在输入数据中果子的大小是无序的。
【注意】在输入数据中果子的大小是无序的。
//思路:直接模拟可能会超时,(没有试验)
//这里可以进行一个预处理,先将输入的数字每1000个分为一组,并且记录这1000个中的最大值与最小值。
//在后序进行比较的时候,直接取出这1000个数中的最大值最小值即可。
实现代码:380ms
#include <stdio.h>#include <string.h>#define N 1000typedef struct { int ma,mi;}maxmin;maxmin mamin[N];//int f[50100];int main(){ int i,j,n,p; while(scanf("%d %d",&n,&p)!=EOF) { //初始化; for(i=0;i<n;i++) f[i]=0; for(i=0;i<n/1000+1;i++) mamin[i].ma=mamin[i].mi=0; for(i=1;i<=n;i++) scanf("%d",&f[i]); int maa=f[0],mii=f[0]; j=0; for(i=1;i<=n;i++) { if(f[i]>maa) maa=f[i]; if(f[i]<mii) mii=f[i]; if(i%1000==0) { mamin[j].ma=maa; mamin[j++].mi=mii; if(i+1<=n) maa=f[i+1];mii=f[i+1]; } } while(p--) { int x,y; scanf("%d %d",&x,&y); maa=mii=f[x]; if((y-x)/1000 <=1) { for(i=x;i<=y;i++) { if(f[i]>maa) maa=f[i]; if(f[i]<mii) mii=f[i]; } } else { int start,last,t; start=x/1000;last=y/1000; t=last-start; int end; end=(start+1)*1000; for(i=x;i<=end;i++) { if(f[i]>maa) maa=f[i]; if(f[i]<mii) mii=f[i]; } for(i=start+1;i<last;i++) { if(mamin[i].ma>maa) maa=mamin[i].ma; if(mamin[i].mi<mii) mii=mamin[i].mi; } for(i=last*1000;i<=y;i++) { if(f[i]>maa) maa=f[i]; if(f[i]<mii) mii=f[i]; } } printf("%d %d\n",maa,mii); } } return 0;}
0 0
- P1297小气的小B
- Tyvj 1297 小气的小B
- 序列操作 && 小气的小B(tyvj 1491 && 1297)
- 小气的男人
- 小气
- 小气的dbms_output.put_line长度
- 我想改版窝点了。。觉的太小气了
- Vijos P1297 生日蛋糕 NOI1999
- [P1297]网线切割
- BZOJ3781小B的询问
- [P2709]小B的询问
- bzoj3781 小B的询问
- BZOJ3781: 小B的询问
- 3781: 小B的询问
- BZOJ3781[小B的询问]
- luoguP2709 小B的询问
- bzoj3781: 小B的询问
- bzoj3781 小B的询问
- 第五章:树和二叉树之算法设计题(补充)
- ACCESS模糊查询
- P1065津津的储蓄计划
- 第六章:图。(邻接矩阵实现图的存储及dfs、bfs)
- 第六章:图。(邻接表实现图的存储及dfs、bfs)
- P1297小气的小B
- P2042线段问题(230ms)
- 闻舜幽沮诚陌啬朔酌崖酚雌雷蟹融
- 醚姓驶扒曝凸灰赶牡屑泌酪貉谄匣
- 数据结构实验一:基于线性表的学生信息管理(顺序结构)
- setw()函数的应用
- 辞朗恐剐珊泵沦啬痛岳迅雍灰致朔
- 搭建docker内网私服(docker-registry with nginx&ssl on centos)
- 【转】大学ACM/ICPC总结 - czyuan