最近學習了好久的線段樹,對線段樹有了初步的基礎的認知,為了鞏固知識點找幾道基礎題練練手
重新上傳
取消1.hdu1166敵兵布陣
思路:線段樹基礎模版題(點修改+區間查詢)
#include#include#includeusing namespace std;
typedef long long ll;
const int maxn=50009;
ll a[maxn];
ll sum[maxn*4];
ll add[maxn*4];
void getup(int x)
void btree(int left,int right,int root)//遞迴建樹
int mid=(left+right)/2;
btree(left,mid,root*2);
btree(mid+1,right,root*2+1);
getup(root);
}/*void pushdown(int rt,int ln,int rn)
}*/ll myquery(int l,int r,int l,int r,int rt)//區間查詢
void addt(int l,int c,int l,int r,int rt)//點修改
int mid=(l+r)>>1;
if(l<=mid)
addt(l,c,l,mid,rt*2);
else
addt(l,c,mid+1,r,rt*2+1);
getup(rt);
}int main()
} return 0;
}
思路:線段樹+點修改+區間查詢
如果用遞迴寫,mlt,改非遞迴,ac
ac**
非遞迴線段樹
#include#includeusing namespace std;
typedef long long ll;
const ll maxn=200005;
ll max[maxn*4];
ll a[maxn];
ll n,m,n;
void btree(int x)
}ll query(int l,int r)
return ans;
}void update(int l,int c)
}int main()
{ while(scanf("%lld %lld",&n,&m)!=eof){
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
getchar();
btree(n);
char op[2];
ll num1,num2;
for(int kk=0;kk
待續~~~~~~~
一定要做有用功
一次又一次的經歷那種感覺自己很多都沒掌握,不斷焦躁擔憂的感覺。通過一定的睡眠和放鬆,這種症狀會有所減輕。感到焦躁,很明顯以一種很不經濟的反應,does it help?一定要逐漸養成做最小功的,思維習慣。簡單的模式,就是問自己,問題是什麼,目前最好的解決辦法是什麼?當然,擔憂和焦躁,既然存在,必然有...
慘痛教訓 一定要做CHECKSUM
最近要為自己的台式裝feisty,於是去官網上下了704 desktop am64版,下完之後也沒細想,刻盤,光碟能自動啟動,於是直接關機進入安裝介面,但是到了那卻老顯示 invalid or corrupt kernel image 實在讓人百思不解。上網查了一整天,看大多數人說是刻壞了,於是用最...
Ubuntu 裝好後,一定要做的事情
sudo dpkg i wineqq2013 20131120 longene.deb 64位系統還需要執行以下命令 sudo apt get install ia32 libs ps 個人還是建議裝個xp 的虛擬機器什麼的都比裝這玩意強 2 sudo gedit etc apt sources.l...