Lotus and Horticulture

Accepts: 91
Submissions: 641
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 262144/262144 K (Java/Others)

这几天Lotus对培养盆栽很感兴趣,于是她想搭建一个温室来满足她的研究欲望。
Lotus将所有的nnn株盆栽都放在新建的温室里,所以所有盆栽都处于完全相同的环境中。
每一株盆栽都有一个最佳生长温度区间[l,r][l,r][l,r],在这个范围的温度下生长会生长得最好,但是不一定会提供最佳的研究价值(Lotus认为研究发育不良的盆栽也是很有研究价值的)。
Lotus进行了若干次试验,发现若第iii株盆栽的生长温度适宜,可以提供aia_ia
思路:区间的左右端点、与区间左右端点距离0.50.50.5的点,这样就一定可以包括所有情况。 为了方便处理与区间左右端点距离0.50.50.5的点,只要将所有坐标扩大一倍,然后这些点就变成了“与区间左右端点距离111的点”了 考虑选出这些点后如何进行统计
​i​​的研究价值;,然后线段树维护一下就可以了,也可用前缀,复杂度n×log(n);
  1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long LL;
4 LL tree[150006*8];
5 set<int>vec;
6 set<int>::iterator it;
7 typedef struct node
8 {
9 int a,b,c;
10 int l,r;
11 } ss;
12 ss mess[50005];
13 int ak[50005*8];
14 int ac[50005*8];
15 int er(int l,int r,int k);
16 void in(int l,int r,int k,int nn,int mm,LL c);
17 void ff(int l,int r,int k);
18 int read_p,read_ca;
19 inline int read(){
20 read_p=0;read_ca=getchar();
21 while(read_ca<'0'||read_ca>'9') read_ca=getchar();
22 while(read_ca>='0'&&read_ca<='9') read_p=read_p*10+read_ca-48,read_ca=getchar();
23 return read_p;
24 }
25 int main(void)
26 {
27 int T;
28 scanf("%d",&T);
29 while(T--)
30 {
31 memset(tree,0,sizeof(tree));
32 int n,cs = 0;
33 n = read();
34 for(int i = 0; i < n; i++)
35 {
36 scanf("%d %d %d %d %d",&mess[i].l,&mess[i].r,&mess[i].a,&mess[i].b,&mess[i].c);
37 ak[cs++] = mess[i].l*2;
38 ak[cs++] = mess[i].r*2;
39 ak[cs++] = mess[i].r*2+1;
40 }
41 int cn = 1;
42 sort(ak,ak+cs);
43 ac[0] = ak[0];
44 for(int i = 1; i < cs ; i++)
45 {
46 if(ak[i]!=ac[cn-1])
47 { ac[cn] = ak[i];
48 cn++;
49 }
50 }
51 for(int i = 0;i < n;i++)
52 {
53 mess[i].l = er(1,cn-1,mess[i].l*2);
54 mess[i].r = er(1,cn-1,mess[i].r*2);
55 }
56 for(int i = 0; i < n; i++)
57 {
58 in(0,mess[i].l-1,0,0,cn,mess[i].c);
59 in(mess[i].l,mess[i].r,0,0,cn,mess[i].a);
60 in(mess[i].r+1,cn-1,0,0,cn,mess[i].b);
61 }
62 ff(0,cn,0);
63 LL maxx = 0;
64 for(int i = 0; i < 150006*8; i++)
65 {
66 maxx = max(maxx,tree[i]);
67
68 }
69 printf("%lld\n",maxx);
70 }
71 return 0;
72 }
73 int er(int l,int r,int k)
74 {
75 int mid = (l+r)/2;
76 if(k == ac[mid])
77 return mid;
78 else if(k < ac[mid])
79 return er(l,mid-1,k);
80 else return er(mid+1,r,k);
81 }
82 void in(int l,int r,int k,int nn,int mm,LL c)
83 {
84 if(l > r)return ;
85 if(l > mm||r < nn)
86 return ;
87 else if(l <= nn&&r >= mm)
88 {
89 tree[k]+=c;
90 return ;
91 }
92 else
93 {
94 in(l,r,2*k+1,nn,(nn+mm)/2,c);
95 in(l,r,2*k+2,(nn+mm)/2+1,mm,c);
96 }
97 }
98 void ff(int l,int r,int k)
99 {
100 if(l == r)
101 return ;
102 else
103 {
104 tree[2*k+1] += tree[k];
105 tree[2*k+2] += tree[k];
106 tree[k] = 0;
107 ff(l,(l+r)/2,2*k+1);
108 ff((l+r)/2+1,r,2*k+2);
109 }
110 }



aaa、bbb、ccc的值。你需要根据这些信息,给温室选定一个温度(这个温度可以是任意实数),使得Lotus能获得的研究价值最大。

Lotus and Horticulture的更多相关文章

  1. HDU 6012 Lotus and Horticulture(离散化)

    题目代号:HDU 6012 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6012 Lotus and Horticulture Time Limit: ...

  2. BestCoder Round #91 1002 Lotus and Horticulture

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6012 题意: 这几天Lotus对培养盆栽很感兴趣,于是她想搭建一个温室来满足她的研究欲望. Lotus ...

  3. 【HDU】6012 Lotus and Horticulture (BC#91 T2)

    [算法]离散化 [题解] 答案一定存在于区间的左右端点.与区间左右端点距离0.5的点上 于是把所有坐标扩大一倍,排序(即离散化). 让某个点的前缀和表示该点的答案. 初始sum=∑c[i] 在l[i] ...

  4. HDU6012:Lotus and Horticulture(扫描线)(前缀和)

    传送门 题意 给出n种植物的适宜培育温度区间[l,r],低于下限获值c,高于上限获值b,其他获值a 分析 首先考虑应该尝试选择哪些点:区间的左右端点.与区间左右端点距离0.50.5的点,这样就一定可以 ...

  5. hdu 6012 Lotus and Horticulture 打标记

    http://acm.hdu.edu.cn/showproblem.php?pid=6012 我们希望能够快速算出,对于每一个温度,都能够算出它在这n颗植物中,能得到多少价值. 那么,对于第i科植物, ...

  6. OI 刷题记录——每周更新

    每周日更新 2016.05.29 UVa中国麻将(Chinese Mahjong,Uva 11210) UVa新汉诺塔问题(A Different Task,Uva 10795) NOIP2012同余 ...

  7. Lotus开发之Lotus Notes中域的验证

    一:介绍       Lotus中的域主要有以下的类型:文本,日期/时间,对话框列表,复选框,单选按钮,RTF等等.Lotus中域的验证方式有很多种公式,lotusscript,javascript等 ...

  8. 使用LotusScript操作Lotus Notes RTF域

    Lotus Notes RTF域的功能也非常强大,除了支持普通的文本以外,还支持图片.表格.嵌入对象.Http 链接.Notes 链接.附件等等众多的类型.本文将介绍如何使用这些类来灵活操作富文本域. ...

  9. Lotus开发性能优化

    之前也总结过一篇关于性能的文章,地址在http://www.cnblogs.com/carysun/archive/2008/08/09/BasicPerformance.html,今天又看到DW上又 ...

随机推荐

  1. 微信第三方平台获取component_verify_ticket

    官方文档说明: 在公众号第三方平台创建审核通过后,微信服务器会向其"授权事件接收URL"每隔10分钟定时推送component_verify_ticket.第三方平台方在收到tic ...

  2. python函数初体验

    函数 函数参数w 形式参数>>>>(被指定具体的值)默认参数, 实际参数是调用时候的实际指定参数 我们把函数⾥⾯的参数叫形式函数,函数实际调⽤的时候,赋予的参数叫实际函数 定义 ...

  3. 巩固javaweb的第十九天

    巩固内容: 使用 form 元素 使用 form 元素封装要提交的信息 要向服务器提交信息,需要使用 form 元素,所有要提交的信息都应该在 form 内部.在 注册界面中,所有要输入的信息都位于 ...

  4. 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法

    具体见第三阶段scala-day01中的文档(scala编程基础---基础语法)  1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...

  5. Output of C++ Program | Set 15

    Predict the output of following C++ programs. Question 1 1 #include <iostream> 2 using namespa ...

  6. 【Linux】【Shell】【Basic】函数

    1. 函数:function,把一段独立功能的代码当作一个整体,并为之一个名字:命名的代码段,此即为函数: 注意:定义函数的代码段不会自动执行,在调用时执行:所谓调用函数,在代码中给定函数名即可: 函 ...

  7. 【Spark】【RDD】从HDFS创建RDD

    1.在HDFS根目录下创建目录(姓名学号) hdfs dfs -mkdir /zwj25 hdfs dfs -ls / 访问 http://[IP]:50070 2.上传本地文件到HDFS hdfs ...

  8. .NET6使用DOCFX自动生成开发文档

    本文内容来自我写的开源电子书<WoW C#>,现在正在编写中,可以去WOW-Csharp/学习路径总结.md at master · sogeisetsu/WOW-Csharp (gith ...

  9. 在写易买网时产生的错误 JSTL标签库中<c:choose></c:choose>不能放JSP页面<!-- -->注释

    最近在使用JSTL标签库的<c:choose>标签时候,发现在该标签体中加了JSP的<!-- -->注释时,总是会显示报错信息.错误的信息如下: org.apache.jasp ...

  10. 新手指南:顶象验证码如何接入微信小程序?

    自2017年小程序发布以来,经过4年的快速发展,小程序已然成为企业互联网布局不可或缺的一环.无论是互联网企业还是拥抱互联网的传统企业,无论是服务导向型企业还是产品导向型企业,小程序都为用户提供了一种轻 ...