日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开发区规划

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开发区规划 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

小王是D市主管經濟的副市長,由于經濟發展的需要,要在D市組建一個高新技術開發區,經過研究,規劃局在D市的東部劃出了一塊土地作為開發區選址。這塊土地是一塊矩形平原,小王準備在上面修建一些建筑。為了規劃方便,他將矩形劃分成NM格。棘手的是,這塊土地有些歷史文化遺址散布在某些格子內,這些歷史文化遺址是萬萬不能拆除的,否則將激起民憤,小王深知這一點,因此,他的新建筑在選址時要避開這些格子。
  假設新的建筑物有P種規格,每種建筑物都是正方形的,占地為TiTi格 (1<=i<=P)。小王想知道對于每種規格的建筑,有多少種不同的合適選址方案(一種合適的選址方案指的是在該建筑所占的正方形區域內不存在有歷史文化遺址的格子)。現在請你來當小王的秘書 幫他完成這個光榮而艱巨的任務。

Input

從文件d.in讀入數據,輸入文件第一行包含三個數,分別代表N,M,P (1<=N,M<=2000,1<=P<=1000)。隨后的n行,每行有m個0或1(1表示該格為空地,0表示該格有歷史文化遺址)。接下來的P行每行有一個整數Ti (1

Output

結果輸出到文件d.out中,共有P行,每行一個整數,第i行的數代表邊長為Ti的建筑物選址方案數。

Sample Input

4 4 2
1011
1111
1110
1110
2
3
Sample Output

5
1

.
.
.
.
.
分析
對于這樣一個城市
1011
1111
1110
1110
我們想辦法把它處理成
1011
1112
1220
1230
其中每個數字代表以該格為右下角,最多可以達成邊長為多少的正方形。然后統計,每種邊長都可以由比它大的邊長的格子達成。

.
.
.
.
.
程序:

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std;int n,m,p,f[2010][2010],b[2010][2010],c[2010][2010],tj[2010],maxx;int main() {freopen("d.in","r",stdin);freopen("d.out","w",stdout);scanf("%d%d%d",&n,&m,&p);for (int i=1;i<=n;i++){char zf[m+3];scanf("%s",&zf);for (int j=1;j<=m;j++)f[i][j]=zf[j-1]-'0';for (int j=1;j<=m;j++)if (f[i][j]!=0) b[i][j]=b[i][j-1]+1;}for (int j=1;j<=m;j++)for (int i=1;i<=n;i++)if (f[i][j]!=0) c[i][j]=c[i-1][j]+1;for (int i=1;i<=n;i++)for (int j=1;j<=m;j++)if (f[i][j]!=0){f[i][j]=min(min(f[i-1][j-1]+1,b[i][j]),c[i][j]);tj[f[i][j]]++;}int maxx=max(n,m);for (int i=maxx-1;i>=1;i--)tj[i]+=tj[i+1];for (int i=1;i<=p;i++){int t;scanf("%d",&t);printf("%d\n",tj[t]);}fclose(stdin);fclose(stdout);return 0; }

轉載于:https://www.cnblogs.com/YYC-0304/p/11094913.html

總結

以上是生活随笔為你收集整理的开发区规划的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。