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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JZOJ 5410. 【NOIP2017提高A组集训10.22】小型耀斑

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZOJ 5410. 【NOIP2017提高A组集训10.22】小型耀斑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

Uthuso 的核反應失控了,她在地靈殿釋放了幾顆大核彈.地靈殿可以看做一個大小為n*m 的矩陣.一顆大小為k 的核彈,對于任意一個與爆炸中心曼哈頓距離小于k 的地區,會造成(k-(該地區到爆炸中心曼哈頓距離))*(該地區的價值)的損失.現在,地靈殿方面想統計一下每顆核彈造成的損失,請你來幫忙計算.

Input

從flare.in 中讀入數據第一行為兩個整數n,m接下來n 行每行m 個整數,代表第i 行第j 個區域的價值接下來一行為一個整數Q,代表核彈的數目.接下來Q 行每行三個整數x,y,k,代表第i 顆核彈的爆炸中心以及它的大小.

Output

輸出到文件flare.out 中Q 行,每行1 個整數,代表第i 顆核彈的損失.

Sample Input

5 51 2 3 4 59 8 7 6 52 3 3 3 36 6 6 6 61 4 2 8 55
1 1 15 5 13 3 32 2 24 2 2

Sample Output

1
5
833731

Data Constraint

對于30%的數據,滿足n<=300,m<=300,Q<=300對于60%的數據,滿足n<=300,m<=300對于100%的數據,滿足1<=n<=2000,1<=m<=2000,1<=Q<=200000,1<=k<=min(x,y,n-x+1,m-y+1),1<=每個區域的價值<=1000000

Hint

由于本題輸入輸出量極大,請使用較快的輸入輸出方式

Solution

  • 這題我的方法比較笨,代碼打了100年……

  • 這題是預處理和前綴和的終極體現,想出如何通過前綴和來計算答案十分關鍵。

  • 對于每個核彈,要計算的答案是一個菱形,而且菱形上的點還要乘上系數,怎么辦呢?

  • 考慮將每個菱形分割成四個三角形,對于每個三角形分別統計即可。

  • 對于右上角的三角形(其他同理,這里不做討論),如上圖所示:

  • s[i][j] 表示到第 i 行、第 j 列 的一個鋸齒狀的價值和(系數全為1),顯然有:

    s[i][j]=s[i?1][j?1]+k=1ja[i][k]

  • 顯然我們可以先做一遍前綴和預處理出 a 矩陣的子矩陣和。

  • 再設 h[i][j] 表示有系數的鋸齒陣的價值和(系數就是曼哈頓距離),則有:

    h[i][j]=h[i][j?1]+s[i][j]

  • 將前一個鋸齒陣再覆蓋上系數為1的鋸齒陣,就能疊起前面的系數。

  • 根據上圖,用 h[x][y+k?1]?h[x?k][y?1] 就還剩一個樓梯形,還需要減去一個矩陣

  • 于是設 g[i][j] 表示從左下角到 (i,j) 的矩陣和(帶系數,還是曼哈頓距離),則有:

    g[i][j]=g[i+1][j]+?(i,j)?1

  • 那個要減的矩陣就等于:

    g[x?k+1][y?1]?g[x+1][y?1]?k()+?(x,y?1)?

  • 這樣我們就能統計出一個三角形的價值和了,其他三角形同理。

  • 總時間復雜度為大常數的 O(N?M)

Code

#include<cstdio> using namespace std; const int N=2002; long long f[N][N],g[N][N],s[N][N],k[N][N]; long long g1[N][N],s1[N][N],k1[N][N]; long long g2[N][N],s2[N][N],k2[N][N]; long long g3[N][N],s3[N][N],k3[N][N]; inline int read() { int X=0,w=1; char ch=0; while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();} while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar(); return X*w; } int main() { int n=read(),m=read(); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+read(); s[i][j]=s[i-1][j-1]+f[i][j]-f[i-1][j]; k[i][j]=k[i][j-1]+s[i][j]; } for(int j=m;j;j--) for(int i=1;i<=n;i++) { s2[i][j]=s2[i-1][j+1]+f[i][j]-f[i][j-1]; k2[i][j]=k2[i-1][j]+s2[i][j]; } for(int j=1;j<=m;j++) for(int i=1;i<=n;i++) { s3[i][j]=s3[i-1][j-1]+f[i][j]-f[i][j-1]; k3[i][j]=k3[i-1][j]+s3[i][j]; } for(int i=1;i<=n;i++) { long long sum=0; for(int j=m;j;j--) { sum+=f[i][m]-f[i-1][m]-f[i][j-1]+f[i-1][j-1]; g3[i][j]=g3[i-1][j]+f[i-1][m]-f[i-1][j-1]+sum; } } for(int i=1;i<=n;i++) { long long sum=0; for(int j=1;j<=m;j++) { sum+=f[i][j]-f[i-1][j]; g2[i][j]=g2[i-1][j]+f[i-1][j]+sum; } } for(int i=1;i<=n;i++) for(int j=m;j;j--) { s1[i][j]=s1[i-1][j+1]+f[i][m]-f[i-1][m]-f[i][j-1]+f[i-1][j-1]; k1[i][j]=k1[i][j+1]+s1[i][j]; } for(int i=n;i;i--) { long long sum=0; for(int j=1;j<=m;j++) { sum+=f[i][j]-f[i-1][j]; g[i][j]=g[i+1][j]+f[n][j]-f[i][j]+sum; } } for(int i=n;i;i--) { long long sum=0; for(int j=m;j;j--) { sum+=f[i][m]-f[i-1][m]-f[i][j-1]+f[i-1][j-1]; g1[i][j]=g1[i+1][j]+f[n][m]-f[n][j-1]-f[i][m]+f[i][j-1]+sum; } } int q=read(); while(q--) { int x=read(),y=read(),K=read(); long long ans=k[x][y+K-1]-k[x-K][y-1]; long long sum=g[x-K+1][y-1]-g[x+1][y-1]-(f[n][y-1]-f[x][y-1])*K; sum+=f[x][y-1]-f[x-K][y-1]; ans-=sum; ans+=k1[x][y-K+1]-k1[x-K+1][y]; sum=g1[x-K+2][y]-g1[x+1][y]-(f[n][m]-f[x][m]-f[n][y-1]+f[x][y-1])*(K-1); sum+=f[x][m]-f[x-K+1][m]-f[x][y-1]+f[x-K+1][y-1]; ans-=sum; ans+=k2[x+K-1][y]-k2[x][y+K-1]; sum=g2[x][y+K-2]-g2[x][y-1]-f[x][y-1]*(K-1); sum+=f[x][y+K-2]-f[x][y-1]; ans-=sum; ans+=k3[x+K-2][y-1]-k3[x][y-K+1]; sum=g3[x][y-K+2]-g3[x][y]-(f[x][m]-f[x][y-1])*(K-2); sum+=f[x][y-1]-f[x][y-K+1]; ans-=sum; printf("%lld\n",ans); } return 0; }

總結

以上是生活随笔為你收集整理的JZOJ 5410. 【NOIP2017提高A组集训10.22】小型耀斑的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲v欧美v另类v综合v日韩v | 91视频在线免费 | 中文字幕第九页 | 黄色同人网站 | 成人做爰9片免费视频 | 超碰成人免费在线 | 日韩精品观看 | 理论片久久 | 成人看的视频 | 青青青视频在线播放 | 中文字幕人妻一区二区三区视频 | 中文在线观看免费视频 | 成人合集 | 日韩欧美在线一区二区三区 | 素人av在线 | 亚洲精品视频免费 | 欧美国产另类 | 熊猫电影yy8y全部免费观看 | 8x8ⅹ国产精品一区二区二区 | 亚洲精品传媒 | 日本老太婆做爰视频 | 伊人蕉久| 国产精品成人99一区无码 | 综合精品久久 | 五月天中文字幕av | 五月av在线| av免费视屏 | 一区二区三区观看 | 亚洲综合少妇 | 日本大尺度做爰呻吟 | 成人精品视频在线观看 | 宿舍女女闺蜜调教羞辱 | 99热在线这里只有精品 | 黄色精品一区 | 小视频黄色 | 999久久久免费精品国产 | 国产黑丝在线 | 爱爱三级视频 | 男女男精品视频 | 欧美婷婷六月丁香综合色 | 国产一二三区在线 | 亚洲av无码专区国产乱码不卡 | 成为性瘾网黄的yy对象后 | 91精品久久久久久久久中文字幕 | av狠狠操| 天天看天天爽 | av大片在线观看 | 人妻无码久久一区二区三区免费 | 成人无码av片在线观看 | 97视频一区| 天堂网在线最新版www中文网 | 欧美性受xxxxxx黑人xyx性爽 | 国产对白羞辱绿帽vk | 欧美日韩成人免费 | 在线亚洲一区二区 | 五月天男人天堂 | 美女100%视频免费观看 | 伊人国产视频 | 加勒比伊人 | 伊人国产精品 | 99精品综合 | 国产3区| 91原创视频 | 99在线免费视频 | 国产乡下妇女三片 | 日韩精品在线观看AV | 日日躁夜夜躁狠狠久久av | 精品视频免费 | 久久涩视频 | 久久精品无码一区二区三区免费 | 女人叫床很黄很污句子 | 久久久成人免费视频 | 日韩六九视频 | 少妇在线| 逼逼av | 国产精品 色 | 无码人妻精品一区二区蜜桃色欲 | 91高跟黑色丝袜呻吟动态图 | 午夜私人影院 | 一区三区在线 | 成人hd | 雷电将军和丘丘人繁衍后代视频 | 青少年xxxxx性开放hg | www.久热| 三级免费看 | 人人妻人人澡人人爽人人欧美一区 | 欧美黄色三级视频 | 国产精品久久久久国产a级 国产一区二区在线播放 | 献给魔王伊伏洛基亚吧动漫在线观看 | aaa黄色一级片 | 国产综合视频 | 中文字幕+乱码+中文字幕一区 | 男女透逼视频 | 三浦惠理子aⅴ一二三区 | 婷婷中文 | 欧美在线一二三区 | 亚洲精品在线一区二区 | 欧美成人精品一区二区综合免费 | 在线观看国产精品视频 |