BZOJ2217 [Poi2011]Lollipop 【贪心】】的更多相关文章

题目链接 BZOJ2217 题解 如果只判定存不存在方案的话,我倒是想到可以将\(2\)拆成两个\(1\),其中一个不能作为区间开头,线段树优化计算补集方案数 但是一看这道题要输出方案啊,,, 怎么办? 考虑如果凑不出\(x\),那一定可以凑出\(x + 1\) 我们就找到前缀和为\(x\)的位置,如果没有,就找\(x + 1\) 前缀和为\(x\)当然就得到答案啦 前缀和为\(x + 1\),我们考虑将区间整体右移,如果左端点出去和右端点进来的数相同,区间值不变,如果不同,那我们就可以通过调整…
若能得到一个和为t的区间,那么至少去掉两端点中任意一个后必定能得到和为t-2的区间. 所以只需要分别找到和最大的和为奇数和偶数的区间,然后$O(n)$完成构造即可. #include<cstdio> #define N 1000010 int n,m,i,s[N],b,c,d,t,l,r,f[N<<1][2];char a[N]; inline void read(int&a){char c;while(!(((c=getchar())>='0')&&…
Description 有一个长度为n的序列a1,a2,...,an.其中ai要么是1("W"),要么是2("T"). 现在有m个询问,每个询问是询问有没有一个连续的子序列,满足其和为q. Input 第一行n,m (1<=n,m<=1000000) 第二行这个序列,起始编号为1,终止编号为n 下面每行一个询问q,询问有没有一个连续的子序列,满足其和为q (1<=q<=2000000) Output 对于每个询问,输出一行,如果有,输出这个序…
[BZOJ2217][Poi2011]Lollipop Description 有一个长度为n的序列a1,a2,...,an.其中ai要么是1("W"),要么是2("T").现在有m个询问,每个询问是询问有没有一个连续的子序列,满足其和为q. Input 第一行n,m (1<=n,m<=1000000)第二行这个序列,起始编号为1,终止编号为n下面每行一个询问q,询问有没有一个连续的子序列,满足其和为q (1<=q<=2000000) Out…
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 第一行…
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…
Sticks bzoj-2529 Poi-2011 题目大意:给你n根木棒,每种木棒有长度和颜色,颜色共有k种,求满足条件的3根木棒使得这3根木棒颜色互不相同且可以围成三角形. 注释:$1\le n \le 10^6$,$1\le k\le 50$. 想法:我们这么想:假设当前木棍是满足题意的三根木棍中的最大者,那么剩下两根木棍一定是越大越好.所以,将所有木棍按长度排序,每次记录一下连续的三个长度不同的三根木棍,然后比较.知道有答案位置. 最后,附上丑陋的代码... ... #include <…
题目描述 给出若干木棍,每根木棍有特定的颜色和长度.问能否找到三条颜色不同的木棍构成一个三角形.(注意这里所说的三角形面积要严格大于0) 输入 第一行给出一个整数k(3<=k<=50),表示颜色的种数.这k种颜色被标号为1至k.接下来k行,第i+1描述颜色为i的木棍的信息.首先一个整数Ni(1<=Ni<=10^6)表示颜色为i的木棍的数量.接下来Ni个整数,表示这Ni根木棍各自的长度.所有木棍的长度<=10^9.总木棍数量<=10^6. 输出 你的程序应该仅输出一行如果…
题目传送门:https://www.luogu.org/problemnew/show/P3514 题意:给出一个只有$1$和$2$的长度为$N$的数列,$M$次询问是否存在一段连续子区间和为$K$.$N,M \leq 10^6$ 考虑存在答案为$Q$的区间会对其他答案有什么影响.然后能够发现:如果存在答案为$Q$的区间,就一定存在$\leq Q$且奇偶性相同的其他区间 证明:对于答案为$Q$的区间$(Q \geq 2)$,我们有以下方式递推出和为$Q - 2$的区间: $a.num_l ==…
若sum可行 sum-2一定可行 序列和为ans 找出和ans奇偶性不同的最大的ans,即最靠左或最靠右的1的位置 更新答案 有spj #include<cstdio> using namespace std; int L[2000005],R[2000005],a[2000005]; char s[2000005]; void calc(int l,int r,int ans){ while (ans>0){ L[ans]=l,R[ans]=r; if (a[l]==2) l++; e…
Description 有一个长度为n的序列a1,a2,...,an.其中ai要么是1("W"),要么是2("T").现在有m个询问,每个询问是询问有没有一个连续的子序列,满足其和为q. Input 第一行n,m (1<=n,m<=1000000)第二行这个序列,起始编号为1,终止编号为n下面每行一个询问q,询问有没有一个连续的子序列,满足其和为q (1<=q<=2000000) Output 对于每个询问,输出一行,如果有,输出这个序列的起…
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…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
POI2011 Conspiracy (2-SAT) Description \(n\leq 5000\) Solution 发现可拆点然后使用2-SAT做,由于特殊的关系,可以证明每次只能交换两个集合中的一个元素,或者改变一个元素的位置,然后分类讨论即可. 注意特判集合为空的情况. POI2011 Lollipop (YY) Description \(n,m\leq 1000000,q\leq 2000000\) Solution 挖掘题目性质,由于只存在1,2.所以对于一个端点为1的线段,…
题目大意:给定一棵树,有一些点是关键点,要求选择不超过mm个点.使得全部关键点到近期的选择的点距离最大值最小 二分答案,问题转化为: 给定一棵树,有一些点是关键点,要求选择最少的点使得每一个关键点到选择的点的距离不超过limitlimit 然后我们贪心DFS一遍 对于以一个节点为根的子树,有三种状态: 0.这棵子树中存在一个选择的点,这个选择的点的贡献还能继续向上传递 1.这棵子树中存在一个未被覆盖的关键点,须要一些选择的点去覆盖他 2.这棵子树中既没有能继续向上传递的选择的点也不存在未覆盖的关…
题目链接 BZOJ2525 题解 就是要求所有有炸弹的点到点燃点距离最大值最小 显然二分答案距离\(D\) 然后按深度排序,贪心点燃当前没覆盖的深度最深的点往上第\(D\)层的点 每覆盖一个点要标记其能到达的点 显然暴力标记均摊是\(O(n)\)的 复杂度\(O(nlogn)\) #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmat…
一眼二分.然后重点是树上贪心部分 长得像dp一样,设mn为子树内已炸点的最浅点,mx为子树内没有炸并且需要炸的最深点,然后转移直接从子树继承即可 然后是判断当前u点是否需要炸,当mx[u]+mn[u]<=mid,当前子树可以自己消化,所以mx[u]=-inf:否则,就需要在u炸一下 #include<iostream> #include<cstdio> using namespace std; const int N=300005; int n,m,h[N],cnt,d[N]…
题目链接 BZOJ2529 题解 要组成三角形,当且仅当最长边长度小于另两条边之和 我们就枚举最长边,另两条边当然是越大越好 我们将所有边排序,从小枚举并记录各个颜色的最长边 当枚举到当前边时,找到除了当前颜色外其它颜色最长边的最大值和次大值,检查一下加起来是否大于当前边长度 复杂度\(O(nlogn + nk)\) #include<algorithm> #include<iostream> #include<cstring> #include<cstdio&g…
题目链接 BZOJ2530 题解 如果我们删去一对不连边的仍然存在的点的话,这对点肯定不同时在那个\(\frac{2}{3}n\)的团中,也就是说,每次删点至少删掉一个外点,至多删掉一个内点 那么我们要删掉团外的点最多使用\(\frac{1}{3}n\)个团内的点就可以了,剩下的至少\(\frac{1}{3}n\)个点就在一个团内 #include<algorithm> #include<iostream> #include<cstring> #include<c…
题意 给定一个由1和2组成的序列,多次询问是否存在一个区间满足区间和=x 分析 结论:假如存在一个子串和为x,那么一定存在一个前缀,和为x或x+1 证明:可以认为原串是由和为x的串在开头和结尾添加若干数得到,再后边添加数不会对产生和为x或x+1的前缀产生影响,所以只考虑在前边添加数,认为后边多余的数可以删掉 若原来是一个和为x或x+1的串,那么如果在前边添加的数和最后一个数相等,去掉最后一个数之后依然是一个和为x或x+1的串 考虑新添加的数和最后的数不同的情况 若原来和为x,在前边添加1,那么这…
2212: [Poi2011]Tree Rotations Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 391  Solved: 127[Submit][Status] Description Byteasar the gardener is growing a rare tree called Rotatus Informatikus. It has some interesting features: The tree consists o…
[BZOJ2525][Poi2011]Dynamite Description Byteotian Cave的结构是一棵N个节点的树,其中某些点上面已经安置了炸.药,现在需要点燃M个点上的引线引爆所有的炸.药. 某个点上的引线被点燃后的1单位时间内,在树上和它相邻的点的引线会被点燃.如果一个有炸.药的点的引信被点燃,那么这个点上的炸.药会爆炸. 求引爆所有炸.药的最短时间. 输入: 第一行是两个整数N,M.(1<=m<=n<=300000) 接下来一行有N个整数Di,第I个数为1表示该点…
[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…
[BZOJ2525][Poi2011]Dynamite Description Byteotian Cave的结构是一棵N个节点的树,其中某些点上面已经安置了炸.药,现在需要点燃M个点上的引线引爆所有的炸.药. 某个点上的引线被点燃后的1单位时间内,在树上和它相邻的点的引线会被点燃.如果一个有炸.药的点的引信被点燃,那么这个点上的炸.药会爆炸. 求引爆所有炸.药的最短时间. 输入: 第一行是两个整数N,M.(1<=m<=n<=300000) 接下来一行有N个整数Di,第I个数为1表示该点…
2525: [Poi2011]Dynamite Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 240  Solved: 120[Submit][Status][Discuss] Description The Byteotian Cave is composed of  n chambers and n-1 corridors that connect them. For every pair of chambers there is uniqu…
1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1383  Solved: 582[Submit][Status][Discuss] Description FJ打算带他的N(1 <= N <= 30,000)头奶牛去参加一年一度的“全美农场主大奖赛”.在这场比赛中,每个参赛者都必须让他的奶牛排成一列,然后领她们从裁判席前依次走过. 今年,竞赛委员会在接受队伍报名时,采用了一种新的登记规则:他们把所…
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15564    Accepted Submission(s): 6405 Problem Description There is a pile of n wooden sticks. The length and weight of each stick a…
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 56784    Accepted Submission(s): 19009 Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats g…
1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 786  Solved: 391[Submit][Status][Discuss] Description 与很多奶牛一样,Farmer John那群养尊处优的奶牛们对食物越来越挑剔,随便拿堆草就能打发她们午饭的日子自然是一去不返了.现在,Farmer John不得不去牧草专供商那里购买大量美味多汁的牧草,来满足他那N(1 <= N <= 100,…
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n grid. In this game a ships are placed on the grid. Each of the ships consists of bconsecutive cells. No cell can be part of two ships, however, the shi…