突然发现我最近写博客都不解释题意了,想了一下还是应该解释一下题意,写给自己看的博客,简单说一下题意,这样以后自己回来看也不用再读题了。啊啊啊还有一件事情啊,上个月低沉的时候偶然看到了以为学长的ACM生涯回顾总结,发现是我们学校的一个学长,看了他的博客以后感觉哇好喜欢这个学长(emmmm别误会),因为自己笨笨的所以就很喜欢这种努力的学长,可能那种天才学长学姐不是自己能仰望的吧。学长回复我了嘿嘿嘿!!!
啦啦啦这道题是说要给卫星分发频率,要求相邻的卫星频率不可以相同,问能否只用三种频率实现上述要求。刚开始看到这道题目觉得改用并查集,emmmm没忍住搜了题解,题解说是要用搜索哇塞打开新世界的大门啊,搜索可真神奇,没想过可以用搜索。暴力搜索一发,ojbk。
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn = 30;
int n,m,x,y;
int b[maxn],vis[maxn][maxn];
bool dfs(int cur)
{
for(int i = 0;i < cur;i++)
{
if(vis[cur][i] && b[cur] == b[i])
return false;
}
if(cur == n - 1) return true;
for(int i = 0;i < 3;i++)
{
b[cur + 1] = i;
if(dfs(cur + 1)) return true;
}
return false;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
memset(b,0,sizeof(b));
memset(vis,0,sizeof(vis));
while(m--)
{
scanf("%d%d",&x,&y);
vis[x][y] = vis[y][x] = 1;
}
if(dfs(0)) printf("Y\n");
else printf("N\n");
}
return 0;
}
之前的AC代码,emmm现在再交就不对了,搜了一下网上的题解交上了也不对,先这样吧,溜去打网络赛了