NOIP2014模擬11 3 蛋糕

2021-07-26 08:59:29 字數 1440 閱讀 1926

今天是bessie的生日,他買了乙個蛋糕和朋友們一起分享,蛋糕可以看成是乙個r行c列的**,共有r*c個格仔,每個格仔都有乙個0至9的數字,表示該格仔蛋糕擁有的巧克力。現在bessie要把蛋糕橫的切3刀再豎的切3刀,由於bessie刀法厲害,所以每個格仔蛋糕都是完整的,顯然蛋糕會被切成16份,然後bessie和他的15個朋友們每人拿乙份,bessie比較客氣,總是等其他朋友拿完了,bessie拿最後剩下的那乙份。bessie的朋友們都很不客氣,都是挑最多巧克力的那份去拿,於是bessie最後拿到手的那份蛋糕總是巧克力總和最少的。bessie心想:既然自己總是最後拿蛋糕,那應該怎麼切蛋糕,才能使得自己拿的那部分蛋糕的有盡量多的巧克力呢?這個問題自然是你的任務了。

要求最大值最小,自然考慮到二分答案,

那麼暴力列舉橫切的三條邊,

將豎切的三條邊用三次二分來找出來,如果無法找出這縮小二分出的答案。

時間複雜度o(

log2

(sum

16)n3

3log

2n)

#include 

#include

#include

#include

#include

#include

#include

const

int maxlongint=2147483647;

const

int mo=1000000007;

const

int n=85;

using

namespace

std;

int a[n][n],n,m,sum[n][n],d[4];

int val(int x,int y,int x1,int y1)

int rf(int l,int r,int v)

return l;

}bool ok(int v)

bool dg(int x,int j,int v)

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

}return

false;

}int main()

for(int i=1;i<=n;i++) a[i][m+1]=100;

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

for(int j=1;j<=m+1;j++)

sum[i][j]=a[i][j]+sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];

int l=0,r=num/16;

while(l+1

int mid=(l+r)/2;

if(dg(1,1,mid)) l=mid;

else r=mid;

}if(dg(1,1,r)) printf("%d",r);

else

printf("%d",l);

}

NOIP2014模擬11 3 噪音

fj有m個牛棚,編號1至m,剛開始所有牛棚都是空的。fj有n頭牛,編號1至n,這n頭牛按照編號從小到大依次排隊走進牛棚,每一天只有一頭奶牛走進牛棚。第i頭奶牛選擇走進第p i 個牛棚。由於奶牛是群體動物,所以每當一頭奶牛x進入牛棚y之後,牛棚y裡的所有奶牛們都會喊一聲 歡迎歡迎,熱烈歡迎 由於聲音很...

noip2014 螺旋矩陣 (模擬)

p1913螺旋矩陣 accepted 標籤 noip普及組2014 乙個 n 行 n 列的螺旋矩陣可由如下方法生成 從矩陣的左上角 第 1 行第 1 列 出發,初始時向右移動 如果前方是未曾經過的格仔,則繼續前進,否則右轉 重複上述操作直至經過矩陣中所有格仔。根據經過順序,在格仔中 依次填入 1,2...

NOIP2014 比例簡化 模擬

輸入檔案 ratio.in輸出檔案 ratio.out簡單對比 時間限制 1 s 記憶體限制 256 mb 在社交 上,經常會看到針對某乙個觀點同意與否的民意調查以及結果。例如,對某一觀點表示支援的有1498人,反對的有902人,那麼贊同與反對的比例可以簡單的記為1498 902。不過,如果把調查結...