[POI2018]Pionek】的更多相关文章

[POI2018]Pionek 题目大意: 在无限大的二维平面的原点放置着一个棋子.你有\(n(n\le2\times10^5)\)条可用的移动指令,每条指令可以用一个二维整数向量表示.请你选取若干条指令,使得经过这些操作后,棋子离原点的距离最大. 思路: 将所有向量极角排序,然后你选取的向量一定是里面连续的一段,由于所有向量排成一个环,所以要复制一遍接在后面,最后用尺取法枚举左右端点即可. 时间复杂度\(\mathcal O(n\log n)\). 源代码: #include<cmath>…
[BZOJ5099][POI2018]Pionek Description 在无限大的二维平面的原点(0,0)放置着一个棋子.你有n条可用的移动指令,每条指令可以用一个二维整数向量表示.每条指令最多只能执行一次,但你可以随意更改它们的执行顺序.棋子可以重复经过同一个点,两条指令的方向向量也可能相同.你的目标是让棋子最终离原点的欧几里得距离最远,请问这个最远距离是多少? Input 第一行包含一个正整数n(n<=200000),表示指令条数. 接下来n行,每行两个整数x,y(|x|,|y|<=1…
[POI2018]Pionek Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 269  Solved: 80[Submit][Status][Discuss] Description 在无限大的二维平面的原点(0,0)放置着一个棋子.你有n条可用的移动指令,每条指令可以用一个二维整数向量表 示.每条指令最多只能执行一次,但你可以随意更改它们的执行顺序.棋子可以重复经过同一个点,两条指令的方 向向量也可能相同.你的目标是让棋子最终离原点的欧几里得距…
题解: 还是比较简单的一道题 考虑现在有一个向量,当且仅当下一个向量与它夹角<90度这个向量的模长才会增加 接下来怎么做呢 如果我们去枚举初始向量,向量方向会随着新增向量而变化 随着不断顺时针的增加向量,另一个方向的向量有所减少 这启示了什么呢 其实可以我们确定最终向量位置,然后在它-90-90度范围内的向量就是可行的 这样我们用two-point-two就可以解决了 代码:…
Description 在无限大的二维平面的原点(0,0)放置着一个棋子.你有n条可用的移动指令,每条指令可以用一个二维整数向量表 示.每条指令最多只能执行一次,但你可以随意更改它们的执行顺序.棋子可以重复经过同一个点,两条指令的方 向向量也可能相同.你的目标是让棋子最终离原点的欧几里得距离最远,请问这个最远距离是多少? Input 第一行包含一个正整数n(n<=200000),表示指令条数. 接下来n行,每行两个整数x,y(|x|,|y|<=10000),表示你可以从(a,b)移动到(a+x…
题目描述 给你 $n$ 个平面向量,选出它们中的一部分,使得它们的和的长度最大.求这个最大长度的平方. 输入 第一行包含一个正整数n(n<=200000),表示指令条数. 接下来n行,每行两个整数x,y(|x|,|y|<=10000),表示你可以从(a,b)移动到(a+x,b+y). 输出 输出一行一个整数,即最大距离的平方. 样例输入 5 2 -2 -2 -2 0 2 3 1 -3 1 样例输出 26 题解 双指针法 一个结论:向量和的长度等于所有向量在其方向上投影的长度和. 因此想要向量和…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5099 题解 这道题做法似乎挺单一的. (一开始想了个假做法 向量和的长度等于所有向量在其方向上投影的长度和. 为了最大化长度的话,要能够保证所有向量在长度和的方向上投影都是正的. 所以可以枚举与向量和垂直的向量作为一个端点,那么另一个端点的方向应该和它的差距不超过 \(180\). 所以可以双指针枚举一下左右端点,一边移动一边统计就没有问题了. 时间复杂度 \(O(n\log n)\) (就…
[BZOJ5099][POI2018]Pionek(极角排序+two pointers) 几个不会严谨证明的结论: 1.将所有向量按极角排序,则答案集合一定是连续的一段. 当答案方向确定时,则一个向量会被选入答案集合当且仅当向量在答案方向上的投影一定都是正的 所以,两个选中向量中间隔着一个向量,则必然可以将后面所有选中向量均前移一位并使答案不劣. 2.答案集合中不存在两个向量的极角差超过$\pi$. 显然需要保证的是,答案集合中任意两个向量投影不为负值,否则一定可以通过删去其中一个使答案更优.…
5100: [POI2018]Plan metra Time Limit: 40 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 189  Solved: 43[Submit][Status][Discuss] Description 有一棵n个点的无根树,每条边有一个正整数权值,表示长度,定义两点距离为在树上的最短路径的长度. 已知2到n-1每个点在树上与1和n的距离,请根据这些信息还原出这棵树.   Input 第一行包含一个正整数n(2…
http://www.lydsy.com/JudgeOnline/problem.php?id=5100 1.找到d1[i]+dn[i] 最小的点,作为1到n链上的点 2.令链长为D,若abs(d1[i]-dn[i])==D,则 i 与1或n 连边 3.对于链上除去1和n的点k,若 dn[i]-d1[i]==dn[k]-d1[k],则i与k连边 若1到n的链上没有点,即1与n直接相连,那么所有的d1[i]-dn[i] 相等 且 不为 0 特判n=2,输出1 2 任意长度[1,1e6] 无解的情况…