洛谷 P1330 封锁阳光大学
用二分图的构造方式即可,找到两种颜色最小值加起来,注意:图不连通。
#include <bits/stdc++.h> using namespace std; int n,m; int color[10005]; int vis[10005]; int p=0; int x,y; vector<int> v[10005]; void dfs(int k,int fa){ vis[k]=1; if(color[fa]==1){ color[k]=0; y++; } else if(color[fa]==0){ color[k]=1; x++; } for(int i=0;i<v[k].size();i++){ int yy= v[k][i]; if(color[yy]==color[k]){ p=1; return ; } else{ if(vis[yy]==0){ dfs(yy,k); } } } return; } int main(){ ios::sync_with_stdio(false); memset(color,-1,sizeof color); cin>>n>>m; for(int i=1;i<=m;i++){ int u,vv; cin>>u>>vv; v[u].push_back(vv); v[vv].push_back(u); } int ans=0; color[0]=1; for(int i=1;i<=n;i++){ if(vis[i]==0&&v[i].size()>=1){ x=0; y=0; dfs(i,0); ans+=min(x,y); } } if(p==0){ cout<<ans; } else{ cout<<"Impossible"; } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」