事情是这样,早上蓝桥杯,最后剩十分钟,在debug的时候,dev抽风了,怎么都打不开,包括以管理员的方式打开,桌面一直在等待,卡卡的,我有点无语,然后,我就一直坐到了考试结束。。。
当时在做“扫雷”这道题,后面考试结束重启电脑,才知道只是少了个分号,(可以很快找出来)(让我静静,5555555)
代码如下:
(蠢蠢的暴力)
#include<bits/stdc++.h>
using namespace std;
typedef pair<int, pair<int, int> > PIII;
#define x first
#define y second
const int N = 5 * 1e4;
int n, m, ans;
queue<PIII> q;
vector<PIII> v;
bool st[N];
int main()
{
scanf("%d%d", &n, &m);
for(int i = 0; i < n; i ++ )
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
v.push_back({c, {a, b}});
}
for(int i = 0; i < m; i ++ )
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
q.push({c, {a, b}});
}
while(q.size())
{
auto t = q.front();
q.pop();
for(int i = 0; i < n; i ++ )
{
auto w = v[i];
if(!st[i])
{
int temp = ceil(sqrt((float)((t.y.x - w.y.x) * (t.y.x - w.y.x) + (t.y.y - w.y.y) * (t.y.y - w.y.y))));
if(temp <= t.x)
{
st[i] = true;
q.push(w);
}
}
}
}
for(int i = 0; i < n; i ++ )
{
if(st[i])
{
ans ++ ;
}
}
printf("%d", ans);
return 0;
}
自己造的一组数据
5 3
1 2 3
4 1 1
2 3 4
6 7 8
9 0 1
3 4 3
8 9 6
1 1 1
个人答案
5
自己造的第二组数据
5 3
1 2 1
99 2 4
2 3 5
66 2 8
7 2 9
1 1 1
3 4 1
7 2 6
个人答案
3
我是5
嗯嗯,少加了一条半径,是5,已改
我写法和这差不多。。。