Eric
debug
Try
HackMD
Eric
·
Follow
Last edited by
Eric
on
May 8, 2023
Linked with GitHub
Contributed by
1
Edit
0
Comments
Feedback
Log in to edit or delete your comments and be notified of replies.
Sign up
Already have an account? Log in
There is no comment
Select some text and then click Comment, or simply add a comment to this page from below to start a discussion.
Discard
Send
debug
採雷重點
size()的返回值不能做運算 (x) l.size()-r.size()
如果要做位元運算把(1<<40)放入long long裡,要把1改成1LL,因為只有數字的話型別為int
如果要把int運算完後的值放到long long裡要轉型=> ans=(long long)a*b
runtime error!=TLE,可能為陣列越界,除0,非法記憶體存取,stack overflow
寫這樣比較快 變數名稱.lower_bound(要找的value);
有些資料結構要用multiset 必免重覆元素被覆蓋掉
初始化mi要用INT_MAX or LLONG_MAX,1e9有可能不夠大
能不用初始化就不用memset,避免TLE,或改為在讀測資的時候順便初始化
位元運算的優先程度很低,所以只要有關位元運算都要括號
特殊資料結構(set,pq)有時不一定比vector+sort好
陣列用到超過邊界的格子不會提示,要自己注意邊界
如果陣列要開3*10^6話就不要define int long long,不然會開不下
STL存取元素的數量都有上限,超過會爆,盡量用陣列取代
如果整數型態是long long的話要改成printf("%lld")
浮點數沒有顯示出來的位數不代表是0,盡量不要直接賦值上去,改為賦值算式上去
有多組測資時要記得初始化!!
狀態轉移初始化時,不合法的狀態要設為inf
能不用map去做映射就不要用,用一般陣列計數就好,否則有可能會TLE
線段樹寫if(Lb <= l && r <= Rb) return seg[node]; 比 if((l == Lb && r == Rb) || l==r) return seg[node]; 快
在函式中交換值時,要記得用&取本尊
陣列最大值要注意
!!!
很重要
!!!
有可能會TLE
線段樹在query中的回傳值,要注意狀態,要跟built的狀態一樣,相乘就要記得是相乘
元素相乘取餘數不可蓋前綴和,如果元素相乘沒有取餘數可以蓋前綴和,區間[l,r]=pre[r]/pre[l-1]
二分搜時要注意右界大小,有可能(l+r)時溢位,或太小沒搜到答案
函數pow會回傳浮點數,如果後面有運算式都會變成浮點數運算,輸出時要注意型態,免得cout顯示科學記號而WA
vector int mp[MAXN],盡量開在globle,否則可能會seg fault
變數沒用到的就不要宣告,免得mid打成m卻不知道錯哪
次方不能取模
define ing long long時,1要寫1LL
數值相減時要注意大減小才會是絕對值
拓譜排序時,node放進去queue的條件為if(- -task[now]==0),注意"==0"
dp top-down時初始化要為-1,避免TLE
priority_queue TLE時可以改用單調對列(deque)優化
struct的空間比較大,MLE時可以考慮把裡面的元素拆出來各自宣告
線段樹要開到SIZE*4才夠用
負數區間取mid要用l+(r-l)/2
李超線段樹動態開點查詢時如果是NULL要返回-INF
計數的變數不能取模
宣告太大的陣列會耗太多時間,可能導致TLE
當題目有取餘數時,要記得先+mod再%mod,避免出現負數
long long 位運算要記得用1ll
變數有可能減到負數的情況下,不能使用while(variable),會TLE
巢狀迴圈遍歷的變數不能一樣,否則會衝突
C的FIFO讀檔有坑,結尾可能有兩個字元
1
debug
採雷重點
Expand all
Back to top
Go to bottom
debug
採雷重點
Expand all
Back to top
Go to bottom
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up
Comment