BZOJ2530 [Poi2011]Party 【贪心】】的更多相关文章

BZOJ_2529_[Poi2011]Sticks_贪心 Description Little Johnny was given a birthday present by his grandparents. This present is a box of sticks of various lengths and colours. Johnny wonders if there are three sticks in the set he has been given that would…
题目链接 BZOJ2530 题解 如果我们删去一对不连边的仍然存在的点的话,这对点肯定不同时在那个\(\frac{2}{3}n\)的团中,也就是说,每次删点至少删掉一个外点,至多删掉一个内点 那么我们要删掉团外的点最多使用\(\frac{1}{3}n\)个团内的点就可以了,剩下的至少\(\frac{1}{3}n\)个点就在一个团内 #include<algorithm> #include<iostream> #include<cstring> #include<c…
Sticks bzoj-2529 Poi-2011 题目大意:给你n根木棒,每种木棒有长度和颜色,颜色共有k种,求满足条件的3根木棒使得这3根木棒颜色互不相同且可以围成三角形. 注释:$1\le n \le 10^6$,$1\le k\le 50$. 想法:我们这么想:假设当前木棍是满足题意的三根木棍中的最大者,那么剩下两根木棍一定是越大越好.所以,将所有木棍按长度排序,每次记录一下连续的三个长度不同的三根木棍,然后比较.知道有答案位置. 最后,附上丑陋的代码... ... #include <…
注意到随机一组贪心解得到的团的大小不小于$\frac{N}{3}$的概率是很大的,所以一直随机下去,直到找到一组解即可,随机次数是常数级别的,所以复杂度为$O(n^2)$. #include<cstdio> #include<cstdlib> #define N 3010 int n,m,i,j,k,a[N],del[N],fin[N];bool g[N][N]; inline void swap(int&a,int&b){int c=a;a=b;b=c;} inl…
题目描述 给出若干木棍,每根木棍有特定的颜色和长度.问能否找到三条颜色不同的木棍构成一个三角形.(注意这里所说的三角形面积要严格大于0) 输入 第一行给出一个整数k(3<=k<=50),表示颜色的种数.这k种颜色被标号为1至k.接下来k行,第i+1描述颜色为i的木棍的信息.首先一个整数Ni(1<=Ni<=10^6)表示颜色为i的木棍的数量.接下来Ni个整数,表示这Ni根木棍各自的长度.所有木棍的长度<=10^9.总木棍数量<=10^6. 输出 你的程序应该仅输出一行如果…
POI2011题解 2214先咕一会... [BZOJ2212][POI2011]Tree Rotations 线段树合并模板题. #include<cstdio> #include<algorithm> using namespace std; int gi(){ int x=0,w=1;char ch=getchar(); while ((ch<'0'||ch>'9')&&ch!='-') ch=getchar(); if (ch=='-') w=0…
[BZOJ2530][Poi2011]Party Description 给定一张N(保证N是3的倍数)个节点M条边的图,并且保证该图存在一个大小至少为2N/3的团. 请输出该图的任意一个大小为N/3的团. 一个团的定义为节点的一个子集,该子集中的点两两有直接连边. 输入: 第一行是两个整数N,M. 接下来有M行,每行两个整数A,B,表示A和B有连边.保证无重边. 输出: N/3个整数,表示你找到的团. 数据范围:  3<=N<=3000,[3/2 n(2/3 n -1)]/2<=M&l…
题目大意:给定一棵树,有一些点是关键点,要求选择不超过mm个点.使得全部关键点到近期的选择的点距离最大值最小 二分答案,问题转化为: 给定一棵树,有一些点是关键点,要求选择最少的点使得每一个关键点到选择的点的距离不超过limitlimit 然后我们贪心DFS一遍 对于以一个节点为根的子树,有三种状态: 0.这棵子树中存在一个选择的点,这个选择的点的贡献还能继续向上传递 1.这棵子树中存在一个未被覆盖的关键点,须要一些选择的点去覆盖他 2.这棵子树中既没有能继续向上传递的选择的点也不存在未覆盖的关…
2217: [Poi2011]Lollipop Time Limit: 15 Sec  Memory Limit: 64 MBSec  Special JudgeSubmit: 383  Solved: 159[Submit][Status][Discuss] Description 有一个长度为n的序列a1,a2,...,an.其中ai要么是1("W"),要么是2("T"). 现在有m个询问,每个询问是询问有没有一个连续的子序列,满足其和为q. Input 第一行…
题目链接 BZOJ2525 题解 就是要求所有有炸弹的点到点燃点距离最大值最小 显然二分答案距离\(D\) 然后按深度排序,贪心点燃当前没覆盖的深度最深的点往上第\(D\)层的点 每覆盖一个点要标记其能到达的点 显然暴力标记均摊是\(O(n)\)的 复杂度\(O(nlogn)\) #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmat…