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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

UOJ #585. 新年和多米诺

發(fā)布時間:2024/4/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UOJ #585. 新年和多米诺 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
【題目描述】:Limak是一只喜歡玩的小北極熊。 他最近得到了一個帶有h行和w列的矩形網(wǎng)格。 每個單元格都是一個正方形,可以是空的(用'.'表示),也可以是禁止的(用'#'表示)。 行從上到下編號為1到h。 列從左到右編號為1到w。此外,Limak還有一張多米諾骨牌。 他想把它放在網(wǎng)格中的某個地方。 多米諾骨牌將恰好占據(jù)兩個相鄰的單元格,位于一行或一列中。 兩個相鄰的單元格必須為空,并且必須位于網(wǎng)格內(nèi)。Limak需要更多的樂趣,因此他會考慮一些問題。 在每個查詢中,他選擇一個矩形,并思考有多少種方法可以將一個多米諾骨牌放在所選矩形內(nèi)? 【輸入描述】:第一行包含兩個整數(shù)h和w(1≤h,w≤500);接下來的h行描述了一個網(wǎng)格。 每行包含一個長度為w的字符串。 每個字符都是'.' 或'#';下一行包含一個整數(shù)q(1≤q≤100000),表示查詢次數(shù);接下來的q行中的每一行包含四個整數(shù)r1i,c1i,r2i,c2i(1≤r1i≤r2i≤h,1≤c1i≤c2i≤w),表示第i個查詢。 數(shù)字r1i和c1i分別表示矩形的左上單元格的行和列。 數(shù)字r2i和c2i分別表示矩形右下單元格的行和列。 【輸出描述】:輸出q行,每行一個正整數(shù),表示對應詢問的方案數(shù)。 【樣例輸入1】:5 8 ....#..# .#...... ##.#.... ##..#.## ........ 4 1 1 2 3 4 1 4 1 1 2 4 5 2 5 5 8【樣例輸出1】:4 0 10 15【樣例輸入2】:7 39 ....................................... .###..###..#..###.....###..###..#..###. ...#..#.#..#..#.........#..#.#..#..#... .###..#.#..#..###.....###..#.#..#..###. .#....#.#..#....#.....#....#.#..#..#.#. .###..###..#..###.....###..###..#..###. ....................................... 6 1 1 3 20 2 10 6 30 2 10 7 30 2 2 7 7 1 7 7 7 1 8 7 8【樣例輸出2】:53 89 120 23 0 2【時間限制、數(shù)據(jù)范圍及描述】:時間:1s 空間:256M40%的數(shù)據(jù):1≤h,w≤100;1≤q≤10000;100%的數(shù)據(jù):1≤h,w≤500;1≤q≤100000;本題可以算出每一行和每一列的貢獻,統(tǒng)計答案時將這些貢獻相減再相加即可.Code: #include<iostream> #include<cstdio> #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #include<ctime> #include<deque> using namespace std; const int N=505; int h,w,q,r[N][N],l[N][N],r1,c1,r2,c2; char c[N][N]; int main(){scanf("%d%d",&h,&w);for(int i=1;i<=h;i++){for(int j=1;j<=w;j++){cin>>c[i][j];}}for(int i=1;i<=h;i++){int tot=0;for(int j=1;j<=w;j++){if(c[i][j]=='#'){tot=0;r[i][j]=r[i][j-1];continue;}tot++;if(tot!=1){r[i][j]=r[i][j-1]+1;}else{r[i][j]=r[i][j-1];}}}for(int j=1;j<=w;j++){int tot=0;for(int i=1;i<=h;i++){if(c[i][j]=='#'){tot=0;l[i][j]=l[i-1][j];continue;}tot++;if(tot>1){l[i][j]=l[i-1][j]+1;}else{l[i][j]=l[i-1][j];}}}scanf("%d",&q);while(q--){scanf("%d%d%d%d",&r1,&c1,&r2,&c2);int ans=0;for(int i=r1;i<=r2;i++){ans+=r[i][c2]-r[i][c1];}for(int j=c1;j<=c2;j++){ans+=l[r2][j]-l[r1][j];}printf ("%d\n",ans);}return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/ukcxrtjr/p/11531253.html

總結(jié)

以上是生活随笔為你收集整理的UOJ #585. 新年和多米诺的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。