題意:
給定n個點 m條無向邊的無向圖
求一個 至少包含m條邊的同構子圖 且是二分圖
輸出二分圖的 X點集 和 Y點集
思路:
非正解
我們可以先隨機出一組解,再判斷這組解是否可行(估測可行解空間較大)
#include#include #include using namespace std; #define N 105 bool s[N]; int n, m; int Stack[N], top, nowlen; struct node{ int u,v; }edge[10096]; int edgenum; void put(bool hehe){ top = 0; for(int i=1;i<=n;i++)if(s[i] == hehe)Stack[top++] = i; printf(%d,top); if(top)sort(Stack, Stack+top); while(top--)printf( %d,Stack[top]); printf( ); } int main(){ int T, i;scanf(%d,&T); while(T--){ edgenum = nowlen = 0; scanf(%d %d,&n,&m); for(i = 0; i < m; i++) { scanf(%d %d,&edge[edgenum].u,&edge[edgenum].v); edgenum++; } while(nowlen