gate
總結:一般來說使用kmp能保證不出錯
inline int read()
while (ch >= '0'&&ch <= '9') s = s * 10 + ch - '0', ch = getchar();
return s * w;
}
//各型別 快讀
template void read(t& x)
int x;
read(x);
#pragma warning(disable : 4996)
#include"bits/stdc++.h"
using namespace std;
#define ll long long
#define fo(i,n) for(ll i=0; i<(n); i++)
#define fo(i,a,b) for(auto i=a; i!=(b); i+=(b)>(a)?1:-1)
#define vll vector#define vch vector#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define sll set#define all(c) c.begin(), c.end()
#define on(x) cout<>n;
while(n)
}if(flag) on("yes")
else on("no")
return 0;
}
#ifndef online_judge
#pragma warning(disalbe : 4996)
#endif
#includeint main()
//////////////////下面的方法明顯好很多,輸出利用「黑框」即可////////////////////
#includeusing namespace std;
int main()
memset可以對高位陣列進行初始化,非常方便。需要注意的是memset的標頭檔案是string.h和memory.h。
(注:一下dp高維陣列都是全域性變數,區域性變數請自行修改sizeof語句)
一:賦 『0』 與 賦 『-1』
memset(dp,0,sizeof(dp));
memset(dp,-1,sizeof(dp));
在計算機中,資料用補碼儲存。-1的補碼(32位)是0xffffffff,(8位,乙個位元組)是0xff,memset是按位元組填充的,所以不影響賦值的真實性。二:賦最大值
memset(dp,127,sizeof(dp));
127用8位二進位制數表示是0b01111111:用4個0b01111111填充到乙個32位的int中:
得到了乙個接近32位無窮大(int_max = 0x7fffffff = 2147483647)的數。
三:賦最小值
memset(dp,-127,sizeof(dp));
-127用補碼表示是 0b10000001 ,用4個 0b10000001 填充到int中:
得到了乙個絕對值非常大的乙個負數(-2122219135)
127可以利用八進位制的0x7f替換,但一般不太可能會直接初始化為正無窮,而是初始化為0x3f,保留一定的算術可能性(防止溢位)
在初始化floyd或者其他類似的東西
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
gra[i][j]=inf
for(int i=1;i<=b;i++)
gra[i][i]=0
是比
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
快的(測試大約1是2的80%的時間)
原因後者每次都要判斷
#includesigned main()
return std::cout << "no", 0;//先輸出,然後返回
}
定義乙個lowbit函式,返回引數轉為二進位制後,最後乙個1的位置所代表的數值.
例如,lowbit(34)的返回值將是2;而lowbit(12)返回4;lowbit(8)返回8。
lowbit的乙個簡便求法:(c++)
int lowbit(int x)
或者使用巨集定義
#define lowbit(x) (x & -x)
左移:$$1 << n = 2^n , n << 1 = 2n$$
右移:$$n >> 1 = [\frac]$$
算術右移等於除以2向下取整, \((-3) >> 1 = -2 , 3 >> 1 = 1\)
傳送門剪枝分為可行性剪枝與最優化剪枝。
可行性剪枝一般的思考過程就是,我一共需要多少,在最多的情況下也無法達到,或最少的情況下也會超過。
那麼至於最大與最小到底怎麼取到,就本題而言,還有類似的每層遞增的題目,可以考慮我從(1,1)開始每層加一,到現在的層數,面積和即為最小面積。而最大,就是把乙個變數限制成最小,就可以取得另乙個的最大,而對每乙個「另乙個」,都有乙個「這個」的最大與之對應。
最優化剪枝,就是考慮,我現有的面積和已經比最小面積大了,那麼不用繼續討論。或者,我現有的面積,加上最小面積,也比最小面積大,那麼也可以不再繼續。
here
多組輸入時,一定要初始化圖,不然會影響下一次的結果。在特別多資料時特容易導致超時
常見錯誤點總結
1 int h,int m,int s 錯誤,因為之間應該用分號 int h,m,s 2 time const time p h p.h 賦值的時候是p.千萬別忘記這個點。3 int swap int a,int b a和b前面的int前往別忘 4 在使用容器的時候,千萬別忘記清除 5 函式名稱和返...
hibernate錯誤點記錄
1.如果繼承了hibernatedaosupport,你必須得用xml方式進行注入sessionfactory,不能用註解的方式注入,因為sessionfactory在hibernatedaosupport裡面,你看不到,所以沒法用 resource注入。否則會報異常。2.如果使用的是hiberna...
誤點總結(一)
severlet頁面中的請求 request.getrequestdispatcher jsp forward req,resp string sql update student set student name student age student student address studen...