bzoj3086: Coci2009 dvapravca】的更多相关文章

Description 给定平面上的 N 个点, 其中有一些是红的, 其他是蓝的.现在让你找两条平行的直线, 使得在保证    不存在一个蓝色的点 被夹在两条平行线之间,不经过任何一个点, 不管是蓝色点还是红色点的前提下, 被夹在平行线之间的红色点个数最多 Input 第1行: 一个整数 N (1 <= N <= 1000)    第2..N+1行: 每行是一个点的坐标以及它的颜色.                坐标用2个 绝对值<10^9 的整数表示                颜…
[COCI2009]Dvapravca LG传送门 先给出考场上的\(O(n^3)\)乱搞方法:枚举一个蓝点和一个红点,找出过着两个点的直线,再枚举蓝点找出这条直线最多能往两边扩展多宽,最后枚举红点计算贡献. 注意在确定一条直线能往两边扩展多宽时不要求点到直线的距离,否则常数会太大,只要求竖直方向的距离就可以了.正确性显然,具体看代码. 现在有个重要的问题,求大佬来解决:如果直接这样写会被卡到65到70分,但是如果把蓝点和红点按\(x\)为第一关键字\(y\)为第二关键字从小到大排个序,就能得到…
传送门 我真的弱,正解都不会还打了个错的暴力 考虑平行线与x轴平行,那么可以按照y为第一关键字升序,x为第二关键字升序排序,然后合法的一段红点就是连续的一段,答案也就是最大的连续红色段 推广到一般情况,我们可以把所有点绕原点旋转,每次转着都会有两个点排序后的相对位置交换,可以用线段树维护答案,每次单点修改,取出全局最大连续段更新答案 #include<bits/stdc++.h> #define LL long long #define db double #define il inline…
首先特判掉蓝点数量\(<2\)的情况.没有蓝点答案就是\(n\),有一个蓝点可以枚举一个红点,选择过这个蓝点和红点的一条线和在无穷远处的平行线(即这条线对应的两个半平面). 这里认为过一个点是与这个点无限接近,红点的话认为红点在平行线中,蓝点不在平行线中 构造方案的时候想象两个阶段: 如果有一条线不过蓝点,可以继续向外扩张直到过蓝点为止,现在两条平行线固定过两个蓝点 如果没有平行线过红点,可以旋转这两条平行线知道一个平行线过红点为止.这个过程不会损失红点,而且可能加入新的红点. 所以结论是:两条…
题目大意:很早以前做的题 题解: 卡点: C++ Code: #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #include <algorithm> #include <random>…
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…
3090: Coci2009 [podjela] Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 23  Solved: 17[Submit][Status][Discuss] Description 有 N 个农民, 他们住在 N 个不同的村子里. 这 N 个村子形成一棵树. 每个农民初始时获得 X 的钱. 每一次操作, 一个农民可以从它自己的钱中, 取出任意数量的钱, 交给某个相邻村子的农民. 对于每个农民给定一个值 v_i, 求     (1)…
3090: Coci2009 [podjela] Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 45  Solved: 31[Submit][Status][Discuss] Description 有 N 个农民, 他们住在 N 个不同的村子里. 这 N 个村子形成一棵树. 每个农民初始时获得 X 的钱. 每一次操作, 一个农民可以从它自己的钱中, 取出任意数量的钱, 交给某个相邻村子的农民. 对于每个农民给定一个值 v_i, 求     (1)…
Description [misolovke]给定一个 N*N 的网格.每个格子里至少会有一个捕鼠器, 并且已知每个格子里的捕鼠器个数.现在需要在 每一行 中选取恰好 K 个连续的格子, 把里面的捕鼠器全部拿走, 并且需要满足 老鼠不能 从网格最左边到网格最右边 也不能 从网格最上面到网格最下面 老鼠行走的方向是 上下左右 4个方向 老鼠只能经过没有捕鼠器的格子求拿走捕鼠器个数的最大值 Input 第1行: 2 个整数 N, K (2 <= N <= 250, 1 <= K <=…
http://www.lydsy.com/JudgeOnline/problem.php?id=2223 Description Sample Input 10 3 1 2 1 2 1 2 3 2 3 3 8 1 2 1 3 1 4 1 5 2 5 2 6 6 9 7 10 Sample Output  no yes 1 no yes 1 no yes 2 no yes 3 HINT Notice:输入第二个整数是序列中权值的范围Lim,即1<=ai(1<=i<=n)<=Lim.…