您现在的位置是:主页 > news > 做网站需要考虑什么/阿里大数据平台
做网站需要考虑什么/阿里大数据平台
admin2025/6/23 14:34:57【news】
简介做网站需要考虑什么,阿里大数据平台,网站建设技术问题,网站建设链接演示因为PAT的题目数据普遍实在太弱,看到题目就想暴力,这题也是 1)对于孤立的点不管,肯定不会影响联通性 2)其他点直接每次dfs出有几个联通块,如果删除这个点后联通块数目改变了,说明要发出红色警…
做网站需要考虑什么,阿里大数据平台,网站建设技术问题,网站建设链接演示因为PAT的题目数据普遍实在太弱,看到题目就想暴力,这题也是
1)对于孤立的点不管,肯定不会影响联通性
2)其他点直接每次dfs出有几个联通块,如果删除这个点后联通块数目改变了,说明要发出红色警…
因为PAT的题目数据普遍实在太弱,看到题目就想暴力,这题也是
1)对于孤立的点不管,肯定不会影响联通性
2)其他点直接每次dfs出有几个联通块,如果删除这个点后联通块数目改变了,说明要发出红色警报。但是要注意一点,当原连通图删的只剩下几个孤立的点后,删一个点,联通块就少一个,此时不发警报。
各位大神如果有更好的解法恳求指点一二
/* ***********************************************
Author :angon
************************************************ */
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <stack>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
#define REP(i,k,n) for(int i=k;i<n;i++)
#define REPP(i,k,n) for(int i=k;i<=n;i++)
#define scan(d) scanf("%d",&d)
#define scann(n,m) scanf("%d%d",&n,&m)
#define mst(a,k) memset(a,k,sizeof(a));
#define LL long long
#define maxn 1005
#define mod 100000007
/*
inline int read()
{int s=0;char ch=getchar();for(; ch<'0'||ch>'9'; ch=getchar());for(; ch>='0'&&ch<='9'; ch=getchar())s=s*10+ch-'0';return s;
}
inline void print(int x)
{if(!x)return;print(x/10);putchar(x%10+'0');
}
*/struct node
{int to,next;
}edge[50005];int head[505],tot;void addedge(int u,int v)
{edge[tot].to=v;edge[tot].next=head[u];head[u]=tot++;
}int vis[505],vis2[505],cnt,has[505];
void dfs(int u)
{if(vis2[u]) return ;for(int i=head[u];i!=-1;i=edge[i].next){int v=edge[i].to;if(vis[v]||vis2[v]) continue;vis[v]=1;dfs(v);}
}
int main()
{//freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);int n,m,k;scann(n,m);mst(head,-1);mst(vis2,0); mst(has,0);tot=0;REP(i,0,m){int u,v;scann(u,v);has[u]=has[v]=1;addedge(u,v);addedge(v,u);}mst(vis,0); cnt=0;REP(i,0,n){if(!vis[i] && has[i]){cnt++;dfs(i);}}scan(k);int cnt2=0;REP(i,0,k){//printf("cnt=%d\n",cnt);int u; scan(u);if(!has[u]){printf("City %d is lost.\n",u);continue;}cnt2=0;mst(vis,0);vis2[u]=vis[u]=1;REP(j,0,n){if(!vis[j] && !vis2[j] && has[j]){// printf("%d\n",j);cnt2++;dfs(j);}}//printf("%d ",cnt2);if(cnt2!=cnt && cnt2!=cnt-1){printf("Red Alert: City %d is lost!\n",u);cnt=cnt2;}else if(cnt2==cnt-1){printf("City %d is lost.\n",u);cnt=cnt2;}elseprintf("City %d is lost.\n",u);}if(k==n) printf("Game Over.\n");return 0;
}