题意:题意很清楚;
策略;如题。
这道题就是简单的线段树应用,据说还可以用树状数组来做,等我学了之后在说吧。
代码:
#include
#include
#define LC l, m, rt<<1
#define RC m+1, r, rt<<1|1
#define LL long long
#define MAXN 1000000
LL sum[MAXN<<2];
void PushU...
分类:
其他好文 时间:
2014-08-09 11:35:07
阅读次数:
219
Buy TicketsTime Limit: 4000 MS Memory Limit: 65536 KB64-bit integer IO format: %I64d , %I64u Java class name: Main[Submit] [Status] [Discuss]Descripti...
分类:
其他好文 时间:
2014-08-08 12:13:15
阅读次数:
227
解题报告
题意:
略
思路:
单点更新,区间乘积。
#include
#include
#include
#define LL long long
using namespace std;
LL mul[501000];
void update(int root,int l,int r,int p,int v)
{
int mid=(l+r)/2;
if(l==r)...
分类:
其他好文 时间:
2014-08-08 08:29:05
阅读次数:
239
解题报告
题意:
求区间内最大值和最小值的差值。
思路:
裸线段树,我的线段树第一发。
#include
#include
#include
#define inf 99999999
#define LL long long
using namespace std;
LL minn[201000],maxx[201000];
void update(LL root,LL l,LL...
分类:
其他好文 时间:
2014-08-07 23:16:35
阅读次数:
282
解题报告
题意:
略
思路:
线段树单点增减和区间求和。
#include
#include
#include
#define LL long long
using namespace std;
int sum[201000];
void update(int root,int l,int r,int p,int v)
{
int mid=(l+r)/2;
if(l...
分类:
其他好文 时间:
2014-08-07 23:11:02
阅读次数:
378
解题报告
题意:
略
思路:
单点替换,区间最值
#include
#include
#include
#define inf 99999999
using namespace std;
int maxx[808000];
void update(int root,int l,int r,int p,int v)
{
int mid=(l+r)/2;
if(l==...
分类:
其他好文 时间:
2014-08-07 23:09:25
阅读次数:
256
Buy TicketsTime Limit:4000MSMemory Limit:65536KTotal Submissions:12930Accepted:6412DescriptionRailway tickets were difficult to buy around the Lunar N...
分类:
其他好文 时间:
2014-08-07 12:59:20
阅读次数:
340
题目链接题意:有N个人排队,给出各个人想插队的位置和标识,要求输出最后的序列。分析:因为之前的序列会因为插队而变化,如果直接算时间复杂度很高,所以可以用线段树逆序插入,把序列都插到最后一层,len记录该区间里还剩余多少位置,插入的时候就插到剩余的第几个位置,比如1,2已经插入了,如果再想插入第3个位...
分类:
其他好文 时间:
2014-08-05 11:05:09
阅读次数:
227