zoukankan      html  css  js  c++  java
• # HDU1754 I Hate It 点修改 区间查询 模板题

```  1 #include <cstdio>//大白书上说节点数最多有2*n-1个 n为区间长度
3 #include <cstdlib>
4 #include <algorithm>
5 #include <iostream>
6
7
8 using namespace std;
9
10 int st[1048576];
11 int gr[210000];
12
13 int max(int x,int y)
14 {
15     return x>=y ? x:y;
16 }
17
18 int creat(int node,int l,int r)
19 {
20     if(l == r)
21     {
22         st[node] = gr[l];
23         return st[node];
24     }
25     int m = (l+r)/2;
26
27     st[node] = max(creat(node+node,l,m),creat(node+node+1,m+1,r));
28
29     return st[node];
30 }
31
32 int query(int ml,int mr,int node,int l,int r)
33 {
34     if(ml == l && mr == r)
35         return st[node];
36     int m = (l+r)/2;
37     if(mr <= m)
38     {
39         return query(ml,mr,node+node,l,m);
40     }
41     if(m < ml)
42     {
43         return query(ml,mr,node+node+1,m+1,r);
44     }
45     return max(query(ml,m,node+node,l,m),query(m+1,mr,node+node+1,m+1,r));
46 }
47
48 int change(int site,int grade,int node,int l,int r)
49 {
50     if(l == r && r == site)
51     {
53         return st[node];
54     }
55     int m = (l+r)/2;
56     if(site <= m)
57     {
59         return st[node];
60     }
61     if(m < site)
62     {
64         return st[node];
65     }
66 }
67
68 int q[110];
69 void output(int n)
70 {
71     int t;
72     int s = 0,e = 1;
73     q[0] = 1;
74     int i = 1,j = 1;
75     while(1)
76     {
77
78         t = q[s++];
79         printf("st[%d] = %d ",t,st[t]);
80         q[e++] = t+t;
81         q[e++] = t+t+1;
82         if(t == n+n-1) break;
83         if(i == j)
84         {
85             i = 1;
86             j *= 2;
87             printf("\n");
88         }
89         else i++;
90     }
91 }
92
93 int main()
94 {
95     int n,m,T;
96     int i;
97     char order[5];
98     int l,r;
100
101     while(scanf("%d %d",&n,&m) != EOF)
102     {
103         for(i = 1;i <= n; i++)
104             scanf("%d",&gr[i]);
105
106         creat(1,1,n);
107         //output(n);
108
109         while(m--)
110         {
111             scanf("%s",order);
112             if(order[0] == 'Q')
113             {
114                 scanf("%d %d",&l,&r);
115                 printf("%d\n",query(l,r,1,1,n));
116                 //output(n);
117             }
118             else if(order[0] == 'U')
119             {
122                 //output(n);
123             }
124         }
125     }
126     return 0;
127 }```
• 相关阅读:
Quit Procrastinating! 20 Ways to Energize Out of Your Slump
[转]会让你人生失败的31种原因
Control Panel Applets
MemTest
The server at www.abstractspoon.com is taking too long to respond.
拖延者 <<拖延心理学>>
[转]How to Uninstall Windows Movie Maker
经典街机
Causes and Cures for Procrastination
给页面添加关键词和简介
• 原文地址：https://www.cnblogs.com/zmx354/p/3107053.html