程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> FOJ 2141 隨機法 求邊數至少為原圖一半的同構子圖 且子圖為二分圖

FOJ 2141 隨機法 求邊數至少為原圖一半的同構子圖 且子圖為二分圖

編輯:C++入門知識

 

題意:

給定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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved