裁縫有一塊非常珍貴的絲綢圍巾。可惜的是,圍巾的某些部分已經被蛀蟲給咬壞了。裁縫當然不願意就這麼把圍巾給丟了,於是,他想把圍巾給裁成兩塊小圍巾送給他的兩個女兒。自然,兩塊小圍巾的面積之和越大越好。
這塊圍巾是乙個正三角形,三條邊被均勻地分成了n段,即這個正三角形被均勻地分成了n2個單元,每個單元是乙個面積為1的正三角形。圖一所 示為乙個n=5的圍巾,圖中帶陰影的單元表示被蛀蟲咬壞的部分。從上往下看,圍巾被分成了n行,第一行有1個單元,第二行有3個單元,其中有2個是形如d 的,有1個是形如ñ 的(這兩種三角形我們認為是形狀相同的)。第三行有5個,其中有3個是形如d 的,有2個是形如ñ 的…… 。用座標(x,y)給每個單元定位,第一行的單元的座標為(1,1);第二行從左到右的三個單元的座標依次為(2,1)、(2,2)、(2,3);
圍巾的剪裁條件如下:
裁成的兩塊小圍巾形狀與原來的大圍巾完全相同,都是正三角形。
每一塊小圍巾裡都不存在被蛀蟲咬壞的部分。
裁剪時必須沿著單元的邊界裁剪。
要求兩塊小圍巾的面積的總和最大。
圖中,最優的裁剪方法已經用粗線畫了出來,面積和為4+9=13。
現在需要你編乙個程式來幫助裁縫解決這個問題。
第一行為乙個整數n(1<=n<=100),表示這塊圍巾總共被分成了n2個單元。第二行為乙個整數m(0<= m<=n2-2),表示這塊圍巾共有m個單元被蛀蟲咬壞了。
接下的m行,每一行有兩個正整數x和y,為這m個被蛀蟲咬壞的單元的座標。
輸入檔案中同一行相鄰兩項之間用乙個或多個空格隔開。
僅含乙個整數,為你所找到的裁出兩塊小圍巾面積總和的最大值。z
dp方程很好想到,
a[i][2*j-1]=min(a[i+1][2*j-1],a[i+1][2*j+1])+1,
a[i][2*j]=min(a[i-1][2*j],a[i-1][2*(j-1)])+1;
#include#include#include#include#include#includeusing namespace std;int n,x,y,m,ans;
int a[10001][20001];
int b[10001][20001];
void make()
for(int i=2;i<=n;++i)
for(int j=1;j<=i-1;++j)if(a[i][2*j]!=-1)
}void ask()
for(int j=i+1;j<=n;++j)
if(max1!=0&&max2!=0)ans=max(ans,max1*max1+max2*max2); }}
void splay()
for(int i=1;i<=n;++i)
for(int j=1;j<=2*i-1;++j)a[i][j]=b[i][j];
}int main()
printf("%d",ans);
return 0;
}
grub1 99 編譯安裝
2 編譯 解壓 grub 1.99.tar.gz 然後進入grub 1.99,配置 configure prefix opt grub2 編譯 make 安裝 make install 3 安裝 進入 opt grub2 sbin,執行下面命令 grub install root directory...
NYOJ199無線網覆蓋
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 我們的樂樂同學對於網路可算得上是情有獨鍾,他有乙個計畫,那就是用無線網覆蓋鄭州大學。現在學校給了他乙個機會,因此他要購買很多的無線路由。現在他正在部署某條大道的網路,而學校只允許把他的無線路由器放在路的正中間。我們預設這條大道是...
新iPhone何以只售199美元
據pcmagzine 報道,蘋果公司在wwdc上發布其3g版iphone的訊息在大多數人的預料之中,但是其低廉的售價卻的確出乎很多人的意料。據悉此次發布的3g版iphone中,8gb版本的售價僅為199美元,而16gb版本的售價也只有299美元。為什麼一部有如此高記憶體,配備有3g gps技術,擁有...