2016BITCS小學期程式設計簡要題解

2021-07-23 06:29:34 字數 2206 閱讀 4554

設球缺的高為h,由於題目中說明d>max(r1,r2)且d<(r1+r2),所以兩個球「鑲嵌」而損失的體積不會超過球體的1/

2 , 因此直接積分可以得出球的體積公式。

正視球缺,設由於「鑲嵌」損失的劣弧所對的圓心角為

θ ,考慮球表面積的積分方法,對

θ 取值限定範圍易得s=

2πrh

。注意本題的

π 的新的定義

可以證明,對於乙個合法的點,必為這一行或這一列的最大值,否則需要改變一行或一列的值來達到這一值。

直接模擬即可,可以把所有有雷的位置變成1,其他為0,o(

n2) 掃瞄時對每個為0的點輸出其周圍8個人的和即可。

經典貪心。

考慮可以加速的部分是優先讓快的更快還是慢的變快,顯然v0

→v的轉變不如∞→

v 對結果的貢獻大,因此得到貪心策略是優先讓最慢的變快,注意討論不能使完整的一段路加速的情況。

倒著貪心,按截止日期從大到小排序,對每個日期選擇分值最大的。

貪心,因為後面數被分成幾段並不會影響前面的數,故從後往前掃,給出兩個結論 :

1. 每次從後往前掃遇到的第乙個負數一定是某個段的末尾。如果這個負數是某一段中間值,由於其後面都是非負的,而且後面的數影響不到前面的字首和,那麼將後面的非負值單獨拿出來作為乙個段顯然更優; 

2. 每次從後往前掃遇見第乙個負數之後,不妨令這個負數下標為i,往前找離i最近的j使得a[j]+…+a[i]>=0,從j到i作為一段顯然是合法的,且是最優的,因為如果選擇乙個小於j的k,使得k到i作為合法的一段,顯然不如分割成k到j-1作為一段,j到i作為一段(由k到i合法和j到i合法輕易知道k到j-1和j到i也是合法的)。       所以做法就是從後往前掃,遇見非負數直接將其看作一段,遇見負數就往前找並且累加和,只要累加值非負就當做一段。

直接用字串模擬即可,注意特殊情況

字元編碼,每次讀字元並利用位運算判斷這個字究竟是幾個字元組成的,之後讀入剩下的字元並且用16進製表達。資料比較水最多只有3個字元的情況。

高精度計數。首先將求區間[l

,r] 數量轉換為求[0

,r] 和[0

,l] 的數量後二者做差。

其次簡單推導可知,乙個數n=

anan

−1⋯a

1a0 (ai

表示這個數的第

i 位),則[0

,n]的數字中包含9的個數為∑n

i=1a

i∗10i

−ai∗

9i,原理即算出所有數字種數減去不含9的,這個公式可以適用於所有不含某一特定數字的數量。

最後是一些細節問題,比如本題需要用壓縮進制法節約空間,由於乙個int最多可以完整表示8位數字的範圍,所以我們採用8位壓縮,即乙個int表示大數的8位,這樣可以節省不少的空間,而且每兩個int之間的運算可以直接進行,記錄進製即可。

由於至少有乙個寬條,所以認為最大的乙個是寬條,確定乙個區間,之後對每乙個條都按他是寬的計算區間求交,窄的轉換成寬的計算,如果發現有兩個交集為空說明非法,否則有解。

對x,y座標分別排序後找中位數。

結構體排序裸題。

注意就是並列的情況,兩個人並列第一之後接下來的人是第三。

看似博弈,其實是dp,因為題面已經給出了最佳策略,按最佳策略模擬即可。首先對所有數排序,以dp[i]表示剩下前i個數時,先取數的人能夠達到的分數差最大值,那麼有 

dp[0]=0 

dp[1]=a[1]-dp[0]=a[1] 

dp[2]=max(a[2]-dp[1],a[1]-dp[0])=max(a[2]-dp[1],a[1])=max(a[2]-dp[1],dp[1]) 

dp[3]=max(a[3]-dp[2],a[2]-dp[1],a[1]-dp[0])=max(a[3]-dp[2],dp[2]) 

…… 

dp[n]=max(a[n]-dp[n-1],dp[n-1]) 

o(n)遞推即可 

首先判斷合法性。

讀入之後轉換字母對映,去掉連字元,之後看總位數是否為7位,以及第一位是否為3或6。

其次判重。

因為記憶體空間不足所以依然要進製壓縮,這裡用二進位制表示乙個狀態的存在或不存在,運用乙個簡單的道理:商乘除數加餘數,我們可以把乙個數分解成他除以某個數的商以及餘數,餘數又可以用二進位制位來記錄。乙個int恰好32位,所以模32。

新開陣列記錄重複的部分,每次線性查詢就行,題目說了這個不多,所以不需要優化。

BITCS2016程式設計 1 球體問題

題外話 n久沒更博 最近假期綜合症,加上任務緊,真的不想幹活啊!所以,我就來更博了哈哈哈 壞笑 因為是第一篇,所以簡單說一下bitcs2016程式設計前標的含義吧,時隔自己修這門課已經過去整整四年了,當時修完第一次就一直想重修,但是沒有鼓起勇氣完全跟下來課程過,這段時間自己自由安排時間,所以還是勉強...

JLOI2016 SHOI2016 偵察守衛

嘟嘟嘟 這道題可以說是 hnoi2003 消防局的設立的公升級版。距離從2改為了d。辛虧d只有20,這也就是乙個切入點。令f u j 表示u四周 j 1的距離需要被覆蓋,g u j 表示u可以像四周覆蓋 j 的距離。考慮轉移方程,令v為u的其中乙個兒子 1.f u j 直接從v延伸而來 f u j ...

ACM2016湖南省賽2016

time limit 5 sec memory limit 128 mb submit 339 solved 206 submit status web board 給出正整數 n 和 m,統計滿足以下條件的正整數對 a,b 的數量 1.1 a n,1 b m 2.a b 是 2016 的倍數。輸入...