bistuacm 2023年新生訓練賽 第 場題解

2021-09-24 01:42:08 字數 1166 閱讀 9137

比賽難度:cf 1000~1500

知識點:模擬

題意:乙個陣列,每次操作可以增加乙個數或刪除乙個數。問最少多少次操作可以讓mex=k?(mex值陣列不存在的最小非負整數)

解法:按題意模擬即可。0到k-1若不存在則增加之。k若存在則刪除之。

#includeusing namespace std;

int main();

for(int i=0;i>a[i];

tong[a[i]]=1;

}int cnt=0;

for(int i=x-1;i>=0;i--)cnt+=!tong[i];

cout《知識點:數學/容斥

題意:給定a集合,b集合、a∩b集合和全集的元素數量a,b,c和)n,求a∪b補集的元素數量。如果輸入不合法需要指出。

解法:若合法,解即是n-(a+b-c)。

不合法的情況有以下幾種:

ausing namespace std;

int main()

t=0;

for(;i>=0;i--)

printf("%.8lf",s1/(n1*1.0)+s2/(n2*1.0));

}

知識點:數論

題意:求ax+by=n是否存在非負整數解。若存在,輸出任意。

解法:即判斷是否存在b使得n-by能被a整除。這裡讓y從0遍歷到min(a,n/b)即可。

#includeusing namespace std;

int g(int a,int b)

int main()

else;

int k,i;

cin>>n>>k;

for(i=0;i>x;

sum+=x/10;

tong[x%10]++;

y+=(100-x)/10;

}for(i=9;i>0;i--)

else;

int visited[222222]=;

int jud;

void dfs(int x)

for(i=0;i>n>>m;

while(m--)

int cnt=0;

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

cnt+=jud;

}cout<}

bistuacm 2023年第三場新生訓練賽題解

a 知識點 排序 桶 題意 給乙個陣列,求其中所有不同非零元素的種類數。解法一 對陣列從小到大排序。很明顯相同的元素排序後一定相鄰,因此種類數 n 相鄰相等的對數 注意要特判0是否存在。時間複雜度o nlogn 空間複雜度o 1 解法二 注意到元素的範圍是 1e5 1e5,因此可以開乙個20萬大小的...

bistuacm 2023年第 場新生訓練賽題解

知識點 列舉 題意 尋找距離陣列某個數最接近的a i k且b i 1的數。解法 按題意模擬即可。includeusing namespace std int main for t 0 t cout 10 t 知識點 數學 題意 找到大於a,且各數字只含乙個非0數字的數,輸出其和a的差。解法 求出a的...

bistuacm 2023年第四場高階訓練賽題解

因vjudge經常崩潰而無法交題,而北交平台偶爾題目亂碼,因此用這種形式 難度 cf 1300 1800原題 知識點 模擬 題意 先求出所有數的和sum,然後從左到右找到字首和大於等於sum的一半即可。includeusing namespace std int main for i 0 i sum...