ABC1200 2200補題計畫

2022-09-21 13:00:16 字數 2196 閱讀 9021

前言 :

atc質量感覺太好了,真的是見一題學乙個新東西( 與其多大cf,不如老老實實的補高質量題。而abc我覺得對我就是乙個很好的選擇,因此我打算經常去回來鞏固在abc做的題,就有了做這篇部落格的想法。我目前水平太弱了,2200的題就要琢磨好久,為了提公升自己,目標刷1200-2200的題。當然有些題可能是我認為是這樣做,但是實際上相差百出,如果有大佬不經意看到此篇並給予建議與糾正,我會十分感激您的。

我挺喜歡與各路oi/acmer 交友的。

abc 238

erange sums(板子題)

題意:一共有n個數,q次查詢,每次告訴給你兩個數(x,y),表示知道

ax+a(x+1)+...+a[y]的總和,問你根據q次詢問後 是否能計算出a1+a2+...+an的總和

思路:這是一道差分約數的題,一般習慣性的add(x-1,y),add(y,x-1)這樣建邊。

sum[y]-sum[x-1]<=z

sum[y]-sum[x-1]>=z

也就約束成了,sum[y]-sum[x-1]=z

那麼接下來我們只需要判斷從1開始是否能連續的遍歷到n 即可。

或者拿並查集維護也可。

ac**:

mapmp;

void dfs(int

x) }

}int

main()

dfs(0);

if(mp[n])

else

}

ftwo exams

題意:n個學生,擁有兩科成績的排名。現在你可以自行安排人數為k個的隊伍,但是如果未選中裡的某個學生 兩個排名都比選中隊伍的任何乙個學生的排名都低,則是不合法的。

思路:是一道線性dp的題,我們定義dp[當前i個學生][選了j個學生][未選中的學生的最低排名]

因此我們可以列舉一層 上一步未選中的學生第二個學科排名u以及選的學生人數

有兩種狀態

首先是選上當前學生,選上的前兩維肯定存在這樣的關係

dp(i-1)(j)----->dp(i)(j+1)

那麼如果bi小於k的話,那麼選中後未選中最小的一定是k,因此推出轉移 dp[i][j+1][u]+=dp[i-1][j][u](如果b[i]

如果不選的話,前二維是dp(i-1)(j)-->dp(i)(j)

那麼未選中的學生就變成了min(b[i],u)

初始狀態dp(0)(0)(n+1)=1

for(int i=1;i<=n;i++)cin>>a[i];

for(int i=1;i<=n;i++)cin>>b[a[i]];

f[0][0][n+1]=1;

for(int i=1;i<=n;i++)

for(int j=i;ji)

}}

然後我們構造乙個這樣的hash方式:x0=random ,x1=random x2=x1^x2

原理就是 a^b^(a^b)=0 出現三次的話 就會異或成0,進而次數是3的倍數的話,異或最終一定是0

接著我們對每乙個a[i]都進行這樣的操作

hi= hi ^ x[a[i]某乙個的質因子]【a[i]某乙個質因子當前出現的次數%3】

總**如下:

uint_fast64_t seed=251902756251902756

; mt19937_64 rand1(seed);

vector

int>>v(max);

for(int i=2;i)

for(int j=i;ji)}}

vector

long

long>>x(max,vectorlong>(3,0

));

for(int i=0;i)

while(x[i][1]==0||x[i][1]==x[i][0

]) x[i][

2]=(x[i][0] ^ x[i][1

]); }

vector

rw(n+1,0

); vector

v1(max,0

);

for(int i=0;i)

}for(int i=0;i)

else

}

三個執行緒ABC,交替列印ABC

問題為三線程間的同步喚醒操作,主要的目的就是threada threadb threadc threada 迴圈執行三個執行緒。為了控制線程執行的順序,那麼就必須要確定喚醒 等待的順序,所以每乙個執行緒必須同時持有兩個物件鎖,才能繼續執行。乙個物件鎖是prev,就是前乙個執行緒所持有的物件鎖。還有乙...

快速智慧型ABC

1.直接輸入英文 如果在智慧型輸入法中輸入英文,只要在輸入的英文本母前先輸入 v 即可,如輸入 teacher 只需鍵入 vteacher 即可。2.輸入大寫數字 要在智慧型abc中輸入大寫的數字,如 一 二 三 或 壹 貳 叄 需要使用的快捷鍵就是 i 和 i 鍵。比如要輸入 三 只要鍵入 i3 ...

ABC 庫存管理

為了使有限的時間 資金 人力 物力等企業資源能得到更有效的利用,應對庫存物資進行分類,將管理的重點放在重要的庫存物資上而進行分類管理和控制,即依據庫存物資重要程度的不同,以某類庫存貨物品種數占物資總品種數的百分數和該類物資金額佔庫存物資總金額的百分數大小為標準,將庫存物資分為 a b c 三類進行分...