acm暑期集訓 2020 07 02

2021-10-07 17:24:57 字數 2705 閱讀 5970

1、 回顧zucc藍橋杯熱身賽-1中a、b、c題中涉及的知識點

2、 補題-----zucc藍橋杯熱身賽-1中d題

思維題,做題要快

題目總體難度不難,主要是讀入的時候怎樣處理檔案讀入型字串

該題目的輸入格式:

每個輸入檔案包含若干行字串,字串有大寫的w、l和e組成。其中e表示比賽資訊結束,程式應該忽略e之後的所有內容。

輸入格式:

wwwwwwwwwwwwwwwwwwww

wwlwe

//	freopen("in.txt","r",stdin); //用freopen判斷測試用例

while(~

scanf

("%[^\n]\n"

,ch+len)

)//通過這樣的形式就可以把檔案中一行行的字串都讀入到ch這個總的字串中了

1、 回顧了很久沒用的 sprintf和sscanf函式的使用

for

(int i=

0;i<

10000

;i++)}

else

}}

2、 回顧了lower_bound和upper_bound函式的使用

int ta=

lower_bound

(vec.

begin()

,vec.

end(

),a)

-vec.

begin()

;//通過減去起始位置的方法,ta得到的是對應在vec裡的位置下標

int tb=

upper_bound

(vec.

begin()

,vec.

end(

),b)

-vec.

begin()

;// int tb=lower_bound(vec.begin(),vec.end(),b)-vec.begin();

printf

("%d\n"

,tb-ta)

;

lower_bound和upper_bound均利用了二分查詢演算法,在乙個陣列中進行查數,通過陣列下標相減的方法就可以知道對應區間存在的個數了。

lower_bound(begin,end,x)-陣列名。從begin位置到end-1位置,查詢第乙個大於等於x的數的位置。如果不存在,返回的是end

upper_bound(begin,end,x)-陣列名。從begin位置到end-1位置,查詢第乙個大於x的數的位置。如果不存在,返回的是end

這裡要特別注意,為了防止用lower_bound/upper_bound查詢時會有跑出邊界的情況發生,在放入第乙個數之前在vector裡放入乙個最小臨界點,在放完所有數之後在vector裡放入乙個最大臨界點

vec.

push_back(0

);//插入最小臨界點

for(

int i=

0;i<

10000

;i++)}

else}}

vec.

push_back

(100000000);

插入最大臨界點

方法一:暴力+動規,主要注意的是,在dfs深蒐時要考慮清楚退出時的情況,運用好標記。

#include

using

namespace std;

int n,m,x,y,z;

int c[

100007

],mi[

100007

],dp[

100007];

vector<

int> vec[

100007];

void

dfs(

int x,

int pr,

int min)

//更新操作,繼續遞迴

int max=

max(dp[pr]

,c[x]

-mi[x]);

//陣列dp動態規劃,求到達該節點的最大差額

if(dp[x]

//更新操作,繼續遞迴

if(bz==1)

return

;//該題目中存在環路,為了防止在dfs環路中爆棧,遇到訪問過的節點就退出

for(

int i=

0;i.size()

;i++)}

intmain()

for(

int i=

0;imemset

(mi,

0x3f3f3f3f

,sizeof

(mi));

dfs(1,

0,0x3f3f3f3f);

printf

("%d\n"

,dp[n]);

}

方法二:兩遍spfa

方法三:tarjan縮點+拓撲排序+dp

具體題解洛谷上有,明天的第一項任務就是了解spfa和tarjan縮點咯

ACM暑期集訓2

今天主要學習了線性dp和揹包問題以及快速冪。1.整數快速冪 這個直接粘上 int qpow int x,int n res res res n n 1 return ans 2.矩陣快速冪 主要就是將整數快速冪的乘法運算換做矩陣的乘法 下面的 是方陣的快速冪 const int n 10 int t...

ACM暑期集訓4

今天主要學習了線段樹,樹狀陣列,st表,差分,分塊和樹剖 好吧,這個已經沒聽懂了 1.線段樹 線段樹涉及許多應用和思想,以下是今天所學 線段樹主要用於處理一段連續區間的插入,查詢,統計,查詢等操作。複雜度 設區間長度是n,所有操作的複雜度是logn級別。性質 線段樹是平衡的2叉樹,最大深度logn ...

ACM暑期集訓5

今天主要學習力圖論基礎和最短路徑 1.圖論基礎 1 鄰接矩陣存圖 w i j 表示以ij為頂點的邊的權值 const int n 105,inf 9999999 int dis n w n n vis n n,m 鄰接矩陣存圖 for int i 1 i n i for int i 0 i2 鄰接表...