#include <iostream>
#include <stdio.h>
#include <queue>
#include <algorithm>
#define MAXN 5000
#define INF 99999999
using namespace std;
struct point{
int x,y;
int step;
};
queue<point> Q;
int n,m,k,d;
int map[MAXN][MAXN];
int times[MAXN][MAXN];
int num[MAXN][MAXN];
int queue_m[MAXN*MAXN][2];
int queue_k[MAXN*MAXN][2];
bool flag[MAXN][MAXN];
int dir[4][2]={{-1,0},{0,1},{1,0},{0,-1}};
int ax,ay;
void bfs(point s){
memset(flag,0,sizeof(flag));
int i;
Q.push(s);
point hd;
while(!Q.empty()){
hd=Q.front();
Q.pop();
for(i=0;i<4;i++){
int x=hd.x+dir[i][0];
int y=hd.y+dir[i][1];
if (x>=1 && x<=n && y>=1 && y<=n && map[x][y]!=3 && flag[x][y]==0){
point t;
t.x=x;
t.y=y;
t.step=hd.step+1;
if(map[t.x][t.y]==2){
if(t.step<times[t.x][t.y]){
times[t.x][t.y]=t.step;
}
}
Q.push(t);
flag[x][y]=1;
}
}
}
}
int main(){
int a,b,c;
while(scanf("%d%d%d%d",&n,&m,&k,&d)!=EOF){
memset(map,0,sizeof(map));
memset(num,0,sizeof(num));
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
times[i][j]=INF;
}
}
for(int i=0;i<m;i++){
scanf("%d%d",&a,&b);
map[a][b]=1;
queue_m[i][0]=a;
queue_m[i][1]=b;
}
for(int i=0;i<k;i++){
scanf("%d%d%d",&a,&b,&c);
map[a][b]=2;
num[a][b]=c;
queue_k[i][0]=a;
queue_k[i][1]=b;
}
for(int i=0;i<d;i++){
scanf("%d%d",&a,&b);
map[a][b]=3;
}
for(int i=0;i<m;i++){
point start;
start.x=queue_m[i][0];
start.y=queue_m[i][1];
start.step=0;
bfs(start);
}
int sum=0;
for(int i=0;i<k;i++){
sum+=times[queue_k[i][0]][queue_k[i][1]]*num[queue_k[i][0]][queue_k[i][1]];
}
printf("%d
",sum);
}
return 0;
}
第三題
相關文章
- 猿人學內部第三題
- 用 Rust 刷 leetcode 第三題RustLeetCode
- 第三章 Service專題
- [每日一題] 第三題:二叉樹的深度每日一題二叉樹
- python第三章課後習題Python
- LeetCode第三題之二:編碼實現LeetCode
- 10.第三章直言命題及其推理(練習題)
- 第三方介面限制次數問題
- 重新振作第三天----NBUACMer-Beginnerround10.18題解ACM
- 華為0821筆試第三題筆記-回溯+剪枝筆試筆記
- [譯] 對第三方 SDK 的信任問題
- 【leetcode 簡單】第三十七題 相交連結串列LeetCode
- 2019 KCTF 晉級賽Q1 | 第三題點評及解題思路
- 看雪.紐盾 KCTF 2019 Q2 | 第三題點評及解題思路
- 09.第三章直言命題及其推理(2)
- pta第一到第三次題目集
- TDengine 社群問題雙週精選 | 第三期
- 看雪CTF.TSRC 2018 團隊賽 第三題 『七十二疑冢』 解題思路
- 【計算講談社】第三講:如何提出關鍵問題?
- 《C和指標》第三章課後習題解答指標
- 第三方API介面測試問題反饋文件API
- 2018第三屆SSC安全峰會議題徵集開始啦!
- 問題 1011: C語言程式設計教程(第三版)課後習題6.1C語言程式設計
- 第三
- pycharm安裝第三方庫常見問題集錦PyCharm
- JAVA入門第三季——最後練習題撲克牌Java
- 面試題 擴充:常用框架和第三方框架面試題框架
- Java中高階面試題及答案【第三部分】Java面試題
- 第三章:查詢與排序(下)----------- 3.29 題解:判斷陣列的包含問題排序陣列
- 題目集7~8的總結性Blog 第三次Blog
- UnrealEngine UnityBuild模式編譯第三方程式碼問題UnrealUnityUI模式編譯
- LeetCode第三題三部曲之三:兩次最佳化LeetCode
- 看雪·眾安 2021 KCTF 秋季賽 | 第三題設計思路及解析
- 看雪·深信服 2021 KCTF 春季賽 | 第三題設計思路及解析
- 安全問題拷問著電子支付第三方未來
- 2016年藍橋杯C/C++組省賽第三題--湊算式C++
- 徹底解決第三方分享icon過大的問題
- 第三週