12 2013 档案

摘要:比赛链接:http://codeforces.com/contest/369369C - Valera and Elections:这是一个树上问题,用深搜,最开始贪心想得是只加叶子节点,找到一个叶子节点且从根1 ——》 叶子节点有problem edges,就把这个点加入,但后来一直WA,才发现时贪错了,找到的这个叶子节点不一定需要,所以要多记录点信息,参考别人的思想,就是标记每个点是不是需要修,如果一个更深的点需要修,则中间的就不需要了。代码:#include#include#include#include#includeusing namespace std;const int maxn 阅读全文
posted @ 2013-12-10 17:08 等待最好的两个人 阅读(351) 评论(0) 推荐(0)
摘要:题目链接:http://acm.buaa.edu.cn/problem/59/想法:由于要有最少的扇形来覆盖所有的点,点有哪么多,肯定是贪心算法,想到一个在一条直线上的很多点,要用最少区间去覆盖所有点,这个是贪心,只需要从最左边第一个点开始覆盖即可。 但这个题是平面上的,如何贪心? 这里想到由于必要有个扇形覆盖的起点,不可能每个都枚举,那个更可能?? 我的想法是:找到任意两个点间最大的间隔角度,起点从其中一个开始,就转换成直线上区间覆盖点的问题了。代码:#include#include#include#include#includeusing namespace std;const doub. 阅读全文
posted @ 2013-12-06 21:30 等待最好的两个人 阅读(295) 评论(0) 推荐(0)
摘要:题目链接:http://acm.buaa.edu.cn/problem/418/代码:#include#include#include#includeusing namespace std;const int maxn = 550;const int maxe = 5050;const int INF = 0x3f3f3f3f;int pa[maxn];int find(int x){ return x == pa[x] ? x : pa[x] = find(pa[x]);}struct Edge{ int u,v,w; bool operator rhs.w; }}... 阅读全文
posted @ 2013-12-06 19:54 等待最好的两个人 阅读(146) 评论(0) 推荐(0)