2012年8月21日
摘要: POJ_1419 好像有人2^N枚举才跑了125ms,所以如果加入简单的回溯的话,很容易跑得比较快。每次找到一个未染色的点的时候实际上有两种决策,要么保持这个点未染色的状态,要么就染成黑色并将其相邻的点染成白色。#include<stdio.h>#include<string.h>#include<algorithm>#define MAXD 110#define MAXM 20010#define INF 0x3f3f3f3fint N, M, first[MAXD], e, next[MAXM], v[MAXM], ANS;int col[MAXD], 阅读全文
posted @ 2012-08-21 18:28 Staginner 阅读(251) 评论(0) 推荐(0) 编辑
摘要: HDU_1941 这个题目说白了就是要删掉一些点,而且被删掉的点两两之间不能有边,留下的点两两之间必须有边,也就是构成一个完全图。 乍看起来是没啥思路的,不过大概有两条路子可以走,要么先考虑什么样的点一定会留下来,要么就先考虑什么样的点一定会被删掉。想想之后觉得第二条路子还可行一些,于是就开始想吧。 首先,孤立点是一定可以被删除的(这里以及后面的讨论默认最大度数的点的度数还算比较大),其次好像叶子节点也就是度数为1的点也可以删,再接着好像就不太好讨论了,不过前面这两类点是有共性的,也就是度数比较小,那么是不是先把度数比较小的点删掉就可以了? 不妨考虑一个度数比较小的点A和一个度数比较大... 阅读全文
posted @ 2012-08-21 13:15 Staginner 阅读(433) 评论(0) 推荐(0) 编辑