yzoj P2344 斯卡布羅集市 題解

2022-05-06 21:30:10 字數 1069 閱讀 7671

共t條街對於每一條街上有n個店鋪(n可能不相同),每次只能選兩端第乙個營業的店鋪採購,採購第i個店鋪會獲得幸福度ai,採購完後,這個店鋪和它相鄰的店鋪便會關門,問最大幸福度?

考場想了一下dp,一開始想一維但發現不好處理,二維引數也沒有想出來,於是便開始了我的暴力瞎搞之旅,我隨手寫了幾個例子發現對於n為奇數無論怎麼採購,幸福度是固定的為a1, a3 , a5........an於是便可以直接累加,然而對於n為偶數又怎麼去處理呢?我也隨手寫了n為6,8,10的資料發現其實就只有三種情況。

第一種情況:選編號為奇數的

第二種情況:選編號為偶數的

第三種情況:選兩頭,再考慮中間,舉個栗子

3 8 20 8 15 12 12 25
對於這組資料我們選完a1 a8後再去進行選擇a3 a5我們把選了用o表示沒選的用x表示就是

o x o x o x x

貌似一定又兩個連在一起的不選,但考場我也沒去證明就直接用了,列舉這兩個不選的位置就行,跑完樣例發現過了便直接提交了,結果a了,自己也很懵逼。

**

#includeusing namespace std;

inline int read()

while(ch>='0'&&ch<='9')

return x*f;

}int t,n;

long long f[310][1510],ans,tmp1,tmp2;

int main()

if(n&1)

}else

while(ch>='0'&&ch<='9')

return x*f;

}int t,n;

ll ans=0;

int a[mx];

ll suml[mx],sumr[mx];

int main()else

} if(n&1)elseelse

}ll sum=0;

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

ans+=sum;

} }printf("%lld",ans);

return 0;

}

yzoj P1122 階乘 題解

t組資料,給出n,求出n!最右邊非零的數。對於30 的資料,n 30,t 10。對於全部的資料,n 10 2009,t 30。一道數學題 解析n!10x 最後一位數字即是結果。10x進行拆分,變成5 x 2x。怎麼除以5x呢,好辦,乘的時候含有5的倍數的一項全部不乘進去,再遞迴此過程。即 1 2 3...

YZOJ P3290 暴力 性質題

鏈結 題意描述 給定乙個h w 的網格圖,m個互不相交 定義相交為 a rec a,a recb 且 a rec a,a recb 的矩形,n個點對。當兩點可以不經過矩形相互到達時,稱這個點對合法。求合法的點對數。題解 最初的想法就是連線合法邊,對於乙個點dfs一遍,對可以到達的點用並查集維護為乙個...

YZOJ P1232 異或遊戲

題型特徵 維護區間資訊,需要對每個左端點重新構造情況,不可通過字首和差分。一般方法 對左端點排序,處理每乙個含有這個左端點的區間詢問,並移動左端點。保證了左端點最多經歷le n 次修改。題意描述 t組詢問,每組詢問要求區間 l r 中出現次數為偶數的數的異或和。t 2 105 n 5 105 正解a...