摘要:线段树原来遇到过了,不过自己写还是很容易出现问题,特别是递归的时候总是忘记返回,这样老是会爆栈还有,好像分析问题的能力很欠缺,而且宏观的概念不是很好,其实感觉写递归就两点,第一宏观上整体把握,第二细节上仔细认真这道题还是整了我很久,真的不太 清楚别人到底是怎么想出来的,反正我是无能为力了。还是先学习这把,突然让我心里升起了征服的欲望还是回头继续说这道题把,关于线段树的优点不言而喻了,把整个大区间分成了一个一个的小区间,这道题恰好利用了这个性质,更改的时候整个区间一块更改了这里的标记兼价值flag很有意思,这样来解释下把,初始化为1,当线段树中的父节点的所有子节点的flag都一样时,父节点的fl
阅读全文
摘要:典型的线段树,很长时间没有写了,好多次都直接用的是模板,这次自己写了下,多多少少还是出了点问题 1 #include <iostream> 2 #include <stdio.h> 3 using namespace std; 4 int a[1000005]; 5 int n,k; 6 struct node 7 { 8 int left ; 9 int right;10 int max;11 int min;12 };13 node tree[1000005*4];14 int MIN[1000005],MAX[1000005];15 16 int Max(...
阅读全文
摘要:又是一个runtime error的代码,求高手指教 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 5 long long a[100005]; 6 struct node 7 { 8 int left; 9 int right; 10 long long sum; 11 int flag; 12 } b[100005*2]; 13 14 15 void build(int left , int right , int i)//为left,right ...
阅读全文
摘要:线段树的问题,不知道为什么我的代码老是runtime error ,哪位大牛能告诉我啊#include <stdio.h>int max(int d,int b)//这里如果用inline会加速好多啊{ return d>b?d:b;}#define MAXN 2000000int a[MAXN+5];struct node{ int left; int right; int sum;} b[MAXN*2];void build(int left , int right , int i)//为left,right ,sum赋值{ int mid; b[i...
阅读全文