如果a,b均是正整數且互質,那麼由ax+by,x>=0,y>=0不能湊出的最大整數是 ab - a - b理解:螞蟻碰面時相當於他們不會掉頭,而是繼續朝各自的方向走證明:首先證明 ab−a−bab−a−b 不能被 ax+bx,x≥0,y≥0ax+bx,x≥0,y≥0表示出。
反正法,假設 ab−a−b=ax+byab−a−b=ax+by,那麼 ab=a(x+1)+b(y+1)ab=a(x+1)+b(y+1),由於 a|ab,a|a(x+1)a|ab,a|a(x+1),所以 a|b(y+1)a|b(y+1),由於 a,ba,b 互質,所以 a|(y+1)a|(y+1),由於 y≥0y≥0,所以 a<=y+1a<=y+1,所以 b(y+1)≥abb(y+1)≥ab。同理可得 a(x+1)≥aba(x+1)≥ab,所以 a(x+1)+b(y+1)≥2ab>aba(x+1)+b(y+1)≥2ab>ab,矛盾。
證明 ab−a−b+d,d>0ab−a−b+d,d>0 一定可以表示成 ax+by,x,y≥0ax+by,x,y≥0 的形式.
int left,right;//分別表示左邊向右走的,和右邊向左走的
int n,x[n];
int main()
for(int i=1;iabs(x[0]) && x[i] < 0) right++;
else if(abs(x[i]) < abs(x[0]) && x[i] > 0) left++;
}int ans = 1;
if(x[0] > 0)
else
cout<1216. 飲料換購
#includeusing namespace std;
int n,res;
int main()
cout<1.ceil函式
c 庫函式double ceil(double x)
返回大於或等於 x 的最小的整數值。
2.公式計算法
[a/b] = [(a+b-1)/b]
#includeusing namespace std;
const int m = 1005;
int n,m;//物品數量和揹包體積
int v[m],w[m];//表示某件物品的體積和價值
int f[m][m];//狀態表示:包含所有選法的集合
int main()
}cout<1015. 摘花生
int f[n][n],g[n][n]; //f[i][j]:狀態表示第i行第j列取得花生數最大值
int t,m,n,x;
int main()
}//f[1][1] = g[1][1];//區域外方案數為0,無需初始化
for(int i=1;i<=n;i++)
}cout<895. 最長上公升子串行
#include#include#includeusing namespace std;
const int n = 1005;
int n,a[n],ans;
int f[n];//狀態表示:所有以i結尾的嚴格單調上公升子串行的集合
int main()
for(int i=2;i<=n;i++)//右端點
}cout<1212. 地宮取寶
int f[n][n][13][14];//狀態表示:橫座標,縱座標,已經取了多少件,當前價值
int main()
}f[1][1][0][0] = 1;
f[1][1][1][w[1][1]] = 1;
for(int i=1;i<=n;i++)//列舉橫座標
int main()
}cout<
return 0;
}
類和物件第三講
類和物件第三講 還是先來繼續介紹建構函式,今天想談談帶引數的建構函式。例 求乙個長寬高分別為 1 12 25,30。2 15,30,21.的長方體的體積。include using namespace std class box box box int h1,int w1,int l1 void b...
第三講 執行緒和執行緒池
1.執行緒的建立 繼承thread類,或者實現runnable介面。2.執行緒的狀態轉換 建立 可執行 執行 阻塞 等待 1 從建立到可執行,呼叫run 2 從可執行到執行,呼叫該執行緒 3 執行到等待,呼叫wait 並釋放鎖,需要notiy 或者notifyall 喚醒 4 執行到阻塞,呼叫sle...
藍橋杯 數字三角形 簡單DP
演算法訓練 數字三角形 時間限制 1.0s 記憶體限制 256.0mb 問題描述 圖 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 1 三角形行數 100 三角形中的數字為整數0,1,99 圖 輸入格式 檔案中首...