【CH Round #48 - Streaming #3(NOIP模擬賽Day1)】 題解
數三角形
題目大意:給出n(n≤100)個點(座標都為非負整數),計算以這些點為頂點,一共能構成三角形的個數。
做法:n很小很明顯可以直接暴力n^3列舉點,每次判斷三邊斜率是否有兩條相同,而且必須滿足三角形(兩邊之和大於第三邊)這樣就可以碾過去了。
4和7
題目大意:有n(n≤100,000)堆糖放在0到m(m≤1,000,000,000)的座標軸上,從0開始每次可以向正方向跳4步或7步,求最大收集糖的數量。
做法:首先對所有的點按照座標排序。可以設DP方程F[i]表示前i個點能取到的最大的糖果數量,顯然F[i] = F[j] + a[i]。由於>17的數都能分成若干個4和7的和(這個怎麼的來可以自己從4、7開始疊加推出),於是列舉j,當i與j的座標差<=17時暴力判斷是否能由4和7組成,座標差>17時F[0..j]的值取最大值計算就好,此時可以維護一個g[i]表示F[0..i]中的最大值。
反射鏡.
題目大意:在座標軸中放著n(n≤100,000)面鏡子,鏡子均與座標軸成45°角。所以共有兩種型別的鏡子:“\”型和“/”型。其座標值的絕對值均不超過m(m≤1,000,000,000),鏡子的兩個面都能夠反射光線,而中間不透光,例如,對於一個“/”型鏡子,從下面射入的光線會被反射到右方向,而從左面射入的光線會被反射到上方向,現有一條光線從原點所在格子沿x軸正方向射出,求它走過T格路程後所在的位置。
做法:首先處理出每個位置的鏡子在四個方向上最近是那個鏡子,然後模擬光線反射就行了。但是有個問題,這些鏡子反射光線可能會使光線形成環,這樣就會超時,所以用記憶化記錄一下就可以了。
總結:第一題就不說了。看到第二題,我就頭疼了,這是我比較弱的一種題目,於是便先跳過去做第三題,我打了一個部分分的暴力,發現效率很低,於是開始想優化,最終得了40分....像第二題這種型別的題目以後要克服啊。
相關文章
- 11.1NOIP模擬賽解題報告
- NOIP模擬賽2
- 「 題解」NOIP2021模擬賽(2021-07-19)
- NOIP2024 模擬賽1
- NOIP模擬賽20161023
- NOIP模擬50
- NOIP模擬57
- NOIP模擬74
- NOIP模擬76
- NOIP模擬77
- NOIP模擬66
- CCF-NOIP-2018 提高組(複賽) 模擬試題(一)
- CCF-NOIP-2018 提高組(複賽) 模擬試題(三)
- <題解>「LibreOJ NOIP Round #1」序列劃分
- 【集訓】jzoj 2017.8.10 noip模擬賽A 總結
- Codeforces模擬賽,題解及體會
- 哈爾濱理工大學3-31校賽模擬賽第一場題解
- noip模擬34[慘敗]
- BNDS 2024/4/6模擬賽題解
- noip模擬31[time·game·cover]GAM
- NOIP模擬96(多校29)
- NOIP模擬92(多校25)
- NOIP模擬88(多校21)
- NOIP模擬83(多校16)
- NOIP模擬86(多校19)
- noip day1 2
- noip模擬32[好數學啊]
- $\rm{NOIP}$前的模擬題整理·菜雞互啄篇
- noip模擬33[進階啦啦啦]
- noip模擬45[真是啥也不會]
- noip模擬29[簡單的板子題](雖然我不會)
- C語言模擬試題3C語言
- 2020.10.16 【NOIP2014】普及組模擬賽總結
- NOIP模擬92&93(多校26&27)
- Java模擬賽跑過程Java
- 2024.3.17 模擬賽
- 2024.2.25 模擬賽
- Codeforces Round #362 (Div. 2) B 模擬