2023年新生訓練賽 第 場題解

2021-09-24 02:21:53 字數 1420 閱讀 2455

感覺怎麼說呢,現在寫的**很彆扭,自己都有點看不太慣。算了,廢話說那麼多也沒啥意思,還是速度寫題解,寫完回去學習。珍惜現在,好好做自己的事,少廢話,

a:mahmoud and ehab and the mex

題意:增加或減少陣列的元素,使陣列中沒有的最大非負整數為x,最少運算元?

解法:找到比x小而且陣列裡沒有的個數,把這些數加到陣列裡面,如果x在陣列裡面再把它拿掉,就可以得到**陣列

#includeusing namespace std;

int main();

cin>>n>>x;

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

sort(a,a+n);

int i=0;

while(a[i]

b:if at first you don't succeed...

題意:n個學生,乙個沒通過考試的孩子數了數通過考試去兩個餐館慶祝的同學人數分別為a,b,有c個同學兩個餐館都去了,

這個孩子想知道他有沒有數錯,和他一樣沒通過考試的有幾個同學

解法:沒通過考試的人數為t=n-(a+b-c),且t>0(因為這個孩子自己沒通過考試)。最後注意下a,b,c都小於n-1,a,b都大於c

#includeusing namespace std;

int main()

sort(a,a+n1);

double count1=0.,count2=0.;

for(int i=n1-1;i>=n1-n2;--i)

for(int i=n1-1-(min(n2,n3));i>n1-1-(n2+n3);--i)

count2+=a[i];

printf("%0.8f",count1/n2+count2/n3);

return 0;

d. proper nutrition

題意:輸入n,a,b,是否能找到整數x,y使x·a + y·b = n成立。能輸出yes,x,y否則輸出no

解法:判斷是否存在x,n-b*x能被a整除

#includeusing namespace std;

int main();

cin>>n>>k;

long long count=0;

for(long long i=0;i>te;

count+=te/10;

a[10-te%10]++;

} int te=n*9-count+a[10];//n個元素最大有n*10個10

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

else

} if(k/10>=te) count+=te;

else count+=k/10;

cout<

f:圖論題,聽說不太難,改天補吧,馬上考試的有點慌先去複習

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年新生訓練賽 第 場題解

比賽難度 cf 1000 1500 知識點 模擬 題意 乙個陣列,每次操作可以增加乙個數或刪除乙個數。問最少多少次操作可以讓mex k?mex值陣列不存在的最小非負整數 解法 按題意模擬即可。0到k 1若不存在則增加之。k若存在則刪除之。includeusing namespace std int ...

新生訓練賽第八場個人題解

includeusing namespace std int main ma max ma,te cout 2.用scanf或者cin讀入單詞,每個單詞自動用空格隔開 看完這個就知道讀入字元的方式有多蠢了 鍵盤輸入ctrl c輸入結束 includeusing namespace std int m...