比赛 果蝇王邀请赛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;
}