日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

各种有用的东西、黑科技、技巧

發布時間:2023/12/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 各种有用的东西、黑科技、技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自WerKeyTom_FTD的blog
1、整體二分及cdq分治實現時,每個區間不需要單獨開隊列。可以把操作弄到一個數組了,然后多兩個參u、v表示這個區間的操作在u~v,做完后對每個操作打標記表示是否往右區間傳即可。
2、兩個long long相乘取模怎么辦?
第一種是快速乘,類似快速冪,復雜度多了個log
第二種是找一個比較小的數,然后搞一波,詳見代碼

ll qsc(ll x,ll y){ll a1=x/1000000,a2=x%1000000,b1=y/1000000,b2=y%1000000;ll t=a1*b1%p*1000000%p*1000000%p;t=(t+a2*b2%p);t=(t+a1*b2%p*1000000%p);t=(t+a2*b1%p*1000000%p);return t%p; }

第三種來自Yves___的博客long long相乘取模黑科技

LL mult( LL A, LL B, LL Mo ) {LL temp = ( ( LL ) ( ( db ) A*B/Mo+1e-6 ) * Mo );return A*B - temp; }

大概意思就是強制轉double然后搞一波再轉回來。
3、unique()可以刪除重復元素,然后返回刪除重復元素后的末端地址。
下面這段代碼即可實現離散化。

fo(i,1,n) scanf("%d",&a[i]),b[i]=a[i]; sort(b+1,b+n+1); l=unique(b+1,b+n+1)-b-1; fo(i,1,n) a[i]=lower_bound(b+1,b+l+1,a[i])-b;

4、可以用調用ctime,運用clock()獲取程序運行至該語句時的時間(默認ms)

#include<iostream> #include<ctime> using namespace std; int main() {int n=0;//start=clock();while(n<100000000)n++;cout<<(double)clock()<<endl;return 0; }

5、調用頭文件bits/stdc++.h就相當于包括了好多庫……
6、如何打偽隨機數?

int rand() {static int rand_seed=1542071823;rand_seed+=rand_seed<<1|1;return rand_seed; }

7、對拍(從前一直用c++對拍的蒟蒻就是他(還有我本人))
在程序的目錄下建立.txt文件,輸入:

@echo off :loop data.exe //生成數據 right.exe //要對拍的 brute_force.exe //暴力 fc data1.out data2.out //兩個程序的輸出文件 if not errorlevel 1 goto loop pause goto loop

把文件擴展名名改成.bat
8、關于可持久化,記住以下幾點:
1:一個點的信息要被修改時需要對其新建。
為了節省空間,一個點的信息不被修改時就沒必要新建了。
例如合并一個結點與空節點,此時不需要新建。
2:為了節省空間,如果對空節點進行newnode我們直接返回空節點。
3:打標記也涉及修改信息,不要忘記newnode。而down的時候其實并不用,因為修改的是兒子的信息。
9、從OJ上看來一句話,不知道來源。
OI比賽的題目無非三種,從暴力到優化,從一般到特殊,重新定義題目。
10、O(n)求出1~n對于質數MOD的逆元。
來自鏈接
inv[i] = ( MOD - MOD / i ) * inv[MOD%i] % MOD
證明:
設t = MOD / i , k = MOD % i
則有 t * i + k == 0 % MOD
有 -t * i == k % MOD
兩邊同時除以ik得到
-t * inv[k] == inv[i] % MOD

inv[i] == -MOD / i * inv[MOD%i]

inv[i] == ( MOD - MOD / i) * inv[MOD%i]
證畢

總結

以上是生活随笔為你收集整理的各种有用的东西、黑科技、技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。