習題日常第十八練

2021-10-08 19:20:44 字數 2727 閱讀 1051

這個是思維題,**特別簡單。第乙個數必定是要加入天數的,之後,每乙個數只要大於它的前乙個,天數就得加上他倆的差值,因為這時候前面那個小的需要的天數不足以讓大以及以後的比這個大的消耗為0,此時先計算需要額外的大的數需要天數,然後再以此類推判斷後面的數即可。**如下。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long int

const

int mod=

100003

;using

namespace std;

int a[

100010

],n,m;

ll ans=0;

intmain()

cout

}

這個題是個模擬題,可能還是沒有優先佇列的思維吧,看過題解以後才做出來的。邊輸入邊處理,每次處理這次輸入的開始時間之前時間的情況。注意每一次要讓代表當前時間的指標指向這次的開始。**如下。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long int

const

int mod=

100003

;using

namespace std;

int a[

100010

],n,m;

ll ans=0;

struct node

}t[2000010];

priority_queue p;

intmain()

else

} ma=t[i]

.s; p.

push

(t[i]);

}while

(!p.

empty()

)return0;

}

這個題與其說是個數論題,還不如說是個找規律題。如果從1開始看這個數列,第i個數就是i轉化為2進製以後再用k進製輸出即可。**如下(記得開long long )。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long int

const

int mod=

100003

;using

namespace std;

ll a[

100010];

intmain()

m=1;

ll ans=0;

for(j=

0;j) cout

}

這是個思維題吧。感覺是給o(n^2)的題,但是可能o(n)解決。是個典型的用空間換時間的題。邊輸入邊處理,主要思想是根據當前顏色尋找之前滿足條件的顏色數目,最後相加。用陣列存下每乙個顏色上一次出現的位置,再存下這個顏色當前出現的次數以及這個顏色,用乙個標記來標適合咖啡廳最靠後的位置,每一次看咖啡廳是否滿足要求,滿足要求則更新標記。然後看標記是否在當前顏色的上乙個位置後面或者正在那個位置,如果在的話,上乙個位置也對於當前位置是個合理的位置,則將這個顏色之前滿足的值加一。每次把最終解加上當前顏色之前滿足條件的值即可。**如下。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long int

const

int mod=

100003

;using

namespace std;

ll a[

100010

],c[

100010

],d[

100010];

intmain()

cout

}

習題日常第十練

這個題的輸入比較特別,需要用流或者快讀來處理。要求最少的換乘次數,我們可以把每乙個點都當作中轉點看看,利用弗洛伊德演算法的思想,求出從1到n的最少中轉次數。具體 如下。include include include include include include include include in...

習題日常第十三練

這個題是個矩陣快速冪的典型題,主要難在如何找出矩陣遞推關係。具體 如下 矩陣一定要開long long include include include include include include include include include include include include in...

習題日常第十九練

題目本身沒有難點,算個公式題吧。但是中間有一步操作是值得學習的,對於這個題最後的答案要除以6,但是資料規模必須邊取餘邊計算。這時候,我們就可以將餘數擴大這個需要除以的倍數,最後除。這個方法非常的巧妙,以往我們在解決問題的時候都會用到費馬小定理來解決。具體 如下。cin n m n ans n n 2...