題目大意:
有n個小朋友,之間有相互喜歡的關係,如果a喜歡b的話,輸入時保證b一定喜歡a。現在有m個小氣球,問能否分成不超過m組,每組不存在有兩個小朋友互相不喜歡。
解題思路:
因為不具有傳遞性,所以不屬於雙聯通。
又n很小,所以直接暴搜。
fa[i]=j表示i是屬於j為根的集合。 不能用貪心,先把乙個小朋友的滿足的最大的朋友全部去掉。。。這種思路是錯的,要全域性搜尋。
**:
#include#include#include#include#include#include#include#include#include#include#include#include#include#define eps 1e-6
#define inf 0x1f1f1f1f
#define pi acos(-1.0)
#define ll __int64
#define lson l,m,(rt<<1)
#define rson m+1,r,(rt<<1)|1
#pragma comment(linker, "/stack:1024000000,1024000000")
using namespace std;
//freopen("data.in","r",stdin);
//freopen("data.out","w",stdout);
#define maxn 15
int fa[maxn];
bool edge[maxn][maxn];
int n,m;
bool dfs(int a,int mm) //a表示第幾個小朋友,mm表示前面用了多少個氣球
return 0;
}
HDU2208唉,可愛的小朋友
sample input 3 22 1 2 2 2 0 2 0 1 sample output yes具體思路就是 有m個小皮球和n個小朋友,小朋友是0 n 1號。1.把每個小皮球看成一組,通過小皮球來進行遞迴遍歷。2.假設我們成功地把v號小朋友放進1號小皮球組,然後再進入一次dfs,把v 1號小朋...
HDU2208唉,可愛的小朋友 (DFS)
input 資料有多個case,每個case先輸入兩個值n 1 n 10 和m 1 m 10 表示有n個小朋友 從0到n 1標號 和m個小皮球。接著有n行,第i行先輸入乙個k 0 koutput 對於每個case,如果老師可以上好課,輸出yes,否則no。sample input 3 22 1 2 ...
hdu6341 DFS暴搜 剪枝
題意 給乙個16 16的矩陣,由16個4 4的小矩陣構成。問最少將給出矩陣中的小矩陣順時針旋轉幾次可以滿足數獨條件 每一行 每一列 每乙個小矩陣都由1 f組成 思路 暴力列舉每個矩陣旋轉0 3次後的樣子,在每次旋轉填完後判斷當前矩陣是否合法 剪枝 include includeusing names...