| 比赛 |
果蝇王邀请赛div2 |
评测结果 |
AEEEEEEEEE |
| 题目名称 |
果蝇炸弹 |
最终得分 |
10 |
| 用户昵称 |
2_16鸡扒拌面 |
运行时间 |
1.457 s |
| 代码语言 |
C++ |
内存使用 |
3.51 MiB |
| 提交时间 |
2026-08-27 12:15:39 |
显示代码纯文本
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#define ll long long
#define SNSNMO 510
using namespace std;
const int MOD=1e9+7;
int n;
ll a[20],r[20];
int main()
{
freopen("bombmine.in","r",stdin);
freopen("bombmine.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
int c;
cin>>c;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i]>>r[i];
set<vector<int>> st;
for(int mask=0;mask<(1<<n);++mask)
{
vector<int> open(n,0),vis(n,0);
queue<int> q;
for(int i=0;i<n;++i)
{
if(mask&(1<<i))
{
open[i]=1;
q.push(i);
}
}
while(!q.empty())
{
int x=q.front();
q.pop();
if(vis[x])continue;
vis[x]=1;
for(int j=0;j<n;++j)
{
if(!open[j]&&abs(a[j]-a[x])<=r[x])
{
open[j]=1;
q.push(j);
}
}
}
vector<int> res;
for(int i=0;i<n;i++)
if(open[i])
res.push_back(i);
st.insert(res);
}
cout<<st.size()%MOD<<'\n';
return 0;
}