NOIP2016提高A組模擬10 15 最大化

2022-08-18 05:15:10 字數 889 閱讀 9588

列舉兩個縱座標i、j,接著表示列舉區域的上下邊界,

設對於每個橫座標區域的字首和和為\(s_l\),列舉k,

顯然當\(s_k>s_l\)時,以(i,k)為左上角,(j,k)為右下角的矩陣一定合法。

k從小到大,維護乙個單調佇列,

顯然當\(l1時

如果\(s_,l2一定對答案沒有貢獻,就不將其加入單調佇列。

對於乙個k,在單調佇列中二分,列舉出乙個最小的位置,並且\(s_k>s_l\)。

#include #include #include #include #include #include #include const int n=305;

using namespace std;

long long sum[n][n],num[n];

int d[n],tot,n,m;

int ans;

inline int read(long long &n)

inline long long sum1(int x,int y,int x1,int y1)

int main()

ans=0;

int l=1,r=tot,mid;

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

for(j=n;j>=i && (j-i+1)*m>ans;j--)

if(num[l]

}if(p

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

}

NOIP2016提高組模擬 積木

比賽的時候用了個神奇的小暴力,本來打算拿40分,沒想到暴力出奇蹟,隨機資料下表現優良,居然碾過去了。暴力方法不講,只貼 僅供對拍。正解顯然要用狀態壓縮 看資料範圍 設fs i,0 1 2 s表示當前已選擇的積木集合,i表示在最上方的積木編號,0 1 2表示最上方的積木哪面朝上。轉移方程容易推導。暴力...

計數 NOIP2016提高A組模擬7 15

樣例輸入 2 10 樣例輸出 90資料範圍 剖解題目 題目說的很明了了。思路 求方案數,一般會設計道dp,規律之類的。解法 數字dp,設f i j 表示當前到了第i位,這一位的數字是j的方案數。自然有 f i j f i 1 l f i j 0 l k 且 l 0 and j 0 看到這位數,很明顯...

NOIP2016提高A組模擬9 2 單峰

問1 n,n個數的全排列中有多少個滿足單峰序列的性質,並把答案mod 1e9 7 這題還是很簡單的,一開始打了乙個50分的做法,然後發現答案就是2n 1,然後沒有發現輸入也會爆,於是就得了50分 我們容易發現峰一定是最大的那個數,我們把峰放到每乙個位置上,然後在往峰的左邊隨便填一些數,每種填數的方法...