社区讨论
BFS50分求助
P2038[NOIP 2014 提高组] 无线网络发射器选址参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lo7w2632
- 此快照首次捕获于
- 2023/10/27 08:42 2 年前
- 此快照最后确认于
- 2023/10/27 08:42 2 年前
比较奇怪的做法……
思路是以公共场所为中心bfs向外以半径d扩散,再把搜索到的点加上公共场所数量的权值,如图
CPP-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-10-10-10-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-10-O -10-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-10-10-30 -20-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-20-O -20-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-20-20-20-|-|-|-|-|-|-|-|-|-|-
代码:
CPP#include <bits/stdc++.h>
#define int long long
using namespace std;
int d,n;
int x[100],y[100],k[100];
int m[200][200];
int step[200][200];
bool vis[200][200];
int dir[8][2]={{1,0},{0,1},{-1,0},{0,-1},{1,-1},{-1,1},{1,1},{-1,-1}};
void bfs(int x0,int y0,int k0)
{
memset(vis,false,sizeof(vis));
memset(step,0,sizeof(step));
queue<int> qx,qy;
vis[x0][y0]=true;
step[x0][y0]=0;
qx.push(x0),qy.push(y0);
while(!qx.empty())
{
int xx=qx.front();
int yy=qy.front();
qx.pop();qy.pop();
for (int i=0;i<8;i++)
{
int dx=xx+dir[i][0];
int dy=yy+dir[i][1];
if (dx>=0&&dy>=0&&dx<=128&&dy<=128&&vis[dx][dy]==false&&step[xx][yy]+1<=d)
{
m[dx][dy]+=k0;
vis[dx][dy]=true;
step[dx][dy]=step[xx][yy]+1;
qx.push(dx);
qy.push(dy);
}
}
}
}
signed main()
{
scanf("%d%d",&d,&n);
for (int i=1;i<=n;i++)
{
scanf("%d%d%d",&x[i],&y[i],&k[i]);
bfs(x[i],y[i],k[i]);
}
int maxn=-0x3f;
for (int i=0;i<=128;i++)
{
for (int j=0;j<=128;j++)
{
//cout << m[i][j] << " ";
if (m[i][j]>maxn)
{
maxn=m[i][j];
}
}
//cout << endl;
}
int cnt=0;
for (int i=0;i<=128;i++)
{
for (int j=0;j<=128;j++)
{
if (m[i][j]==maxn)
{
cnt++;
}
}
}
cout << cnt << " " << maxn << endl;
return 0;
}
/*
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-O-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-O-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
*/
回复
共 0 条回复,欢迎继续交流。
正在加载回复...