LOJ#6544. 杀苍蝇(计算几何)】的更多相关文章

题面 传送门 题解 枚举一个定点,把剩下的所有点按照极角排序就行了 //minamoto #include<bits/stdc++.h> #define R register #define inline __inline__ __attribute__((always_inline)) #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;-…
Preface 菜鸡HL终于狗来了他的省选停课,这次的时间很长,暂定停到一试结束,不过有机会二试的话还是可以搞到4月了 这段时间的学习就变得量大而且杂了,一般以刷薄弱的知识点和补一些新的奇怪技巧为主. 偶尔也会打一些比赛找找手感(比如HHHOJ的比赛,Luogu比赛,以及comet OJ上之前的CCPC题) CF和CC看情况,主要是我真的不太喜欢读英文题的恐怖感觉233 希望这段时间的努力可以让我不跪省选吧 2-26 早上晨跑完了就和杨浩讲了停课的事,不出意外地很轻松就通过了. 然后回班拿了点东…
题面 传送门 题解 首先可以用一个矩形去套这个多边形,那么我们只要枚举这个矩形的左下角就可以枚举完所有多边形的位置了 我们先对每一个\(x\)坐标开一个\(bitset\),表示这个\(x\)坐标里哪些\(y\)坐标处有苍蝇.然后再处理出矩形中哪些位置会被覆盖,这个同样可以枚举\(x\)坐标,然后对于所有线段,如果它穿过这个\(x\)坐标,就用一个\(stack\)存起来,然后把所有\(stack\)里的\(sort\)一下,乱搞就好了(具体可以看代码) 注意只有一条线段完全穿过\(x\)才有可…
题意 LOJ #2541. 「PKUWC 2018」猎人杀 题解 一道及其巧妙的题 , 参考了一下这位大佬的博客 ... 令 \(\displaystyle A = \sum_{i=1}^{n} w_i\) , \(B\) 是已死猎人的 \(w_i\) 的总和 , \(P_i\) 是 \(i\) 当前要被杀死的概率 ... (抄博客咯) 不难有 \(\displaystyle P_i = \frac{w_i}{A-B} \tag{1}\) 如果 不考虑猎人死没死 , 都能被当做目标 qwq (鞭…
这样$ PKUWC$就只差一道斗地主了 假装补题补完了吧..... 这题还是挺巧妙的啊...... LOJ # 2541 题意 每个人有一个嘲讽值$a_i$,每次杀死一个人,杀死某人的概率为$ \frac{a_i}{a_{alive}}$,求第一个人最后死的概率 数据范围:$ 1 \leq a_i \leq 10^5,\sum\limits_{i=1}^n a_i \leq 10^5$ $Solution$ 以下部分用$ val$表示所有人的嘲讽值之和 先讲讲$ n*val$的$ DP$ 用$…
题面 传送门 做一道题学一堆东西不管什么时候都是美好的体验呢-- 前置芝士 混合积 对于三个三维向量\(a,b,c\),定义它们的混合积为\((a\times b)\cdot c\),其中$\times \(表示叉乘,\)\cdot\(表示点乘,记为\)[a b c]$ 关于它的几何意义的话--图片来自网络 其中\(Prj_{a\times b}c\)代表的是\(c\)这个向量在\(a\times b\)这个向量上的投影 那么显然我们最后得到的是以这三个向量为三条临边的一个六面体的体积 四面体体…
题面 传送门 题解 计算几何的东西我好像都已经忘光了-- 首先我们可以把原问题转化为另一个等价的问题:对于每一个敌人,我们以原点为圆心,画一个经过该点的圆,把这个圆在多边形内部的圆弧的度数加入答案.求总的度数是多少 因为这是个简单多边形,我们可以把它给三角形剖分.就是说把每条边都和原点构成一个三角形,然后对圆计算这个三角形的贡献,根据这条边的顺逆时针顺序来决定贡献要加上还是减去.易知最后的贡献就是这个多边形的贡献 那么我们对于每一个圆,暴力枚举多边形的一条边和原点构成的三角形,然后判一下圆弧和三…
好玩的模拟题. 以后要经常写模拟题鸭 题目描述 游戏背景 <猪国杀>是一种多猪牌类回合制游戏,一共有\(3\)种角色:主猪,忠猪,反猪.每局游戏主猪有且只有\(1\)只,忠猪和反猪可以有多只,每只猪扮演\(1\)种角色. 游戏目的 主猪 / MP:自己存活的情况下消灭所有的反猪. 忠猪 / ZP:不惜一切保护主猪,胜利条件与主猪相同. 反猪 / AP:杀死主猪. 游戏过程 游戏开始时,每个玩家手里都会有\(4\)张牌,且体力上限和初始体力都是\(4\). 开始游戏时,从主猪开始,按照逆时针方向…
传送门 思路太清奇了-- 考虑容斥,即枚举至少有哪几个是在\(1\)号之后被杀的.设\(A=\sum_{i=1}^nw_i\),\(S\)为那几个在\(1\)号之后被杀的人的\(w\)之和.关于杀了人之后分母的变化,我们可以假设这个人被杀之后还活着(说好的人被杀就会死呢),不过如果选到了它要再选一次,这个和之前的是等价的.于是这几个人在\(1\)之后被杀的概率为\[P=\sum_{i=0}^\infty (1-\frac{S+w_1}{A})^i\frac{w_1}{A}\] \[P=\frac…
题目:https://loj.ac/problem/2541 看了题解才会……有三点很巧妙. 1.分母如果变动,就很不好.所以考虑把操作改成 “已经选过的人仍然按 \( w_i \) 的概率被选,但是再次选中一个已经选过的人算作没有操作” . 2.然后要容斥,考虑强制点集 S 的人在 1 号点之后被选.其余随意,那么 \( ans=\sum\limits_{S} (-1)^{|S|} \sum\limits_{i=0}^{\infty} (1-\frac{w_1 + w_S}{A})^i \fr…
题意 题目链接 分析 记操作异或和为 \(tx\) ,最后一次排序时的异或和为 \(ax\) ,每个数插入时的 \(tx\) 记为 \(b\). 我们发现,一旦数列排序,就会变得容易操作. 对于新加入的数字用一个前缀和数组维护每一位为 1 的个数(每个数保证在 \(xor​\) 当前 \(tx​\) 之后能够得到真实结果).对于进行过排序的数字用 trie 维护(每个数用 \(a_i\ xor\ b_i​\) 表示). 查找 trie 上的数字在 \(xor\ ax\) 排序后的前 \(k\)…
解:step1:猎人死了之后不下台,而是继续开枪,这样分母不变...... 然后容斥,枚举猎人集合s,钦定他们在1之后死.定义打到1的时候结束,枚举游戏在i轮时结束. 发现式子是一个1 + x + x2 + x3 + ... = 1 / (1 - x) 但是枚举子集不现实,发现值域很小,我们用小Z的礼物的套路,考虑计算每个值的容斥系数是多少. 然后就NTT加速了.预处理逆元卡常. #include <bits/stdc++.h> typedef long long LL; typedef st…
题解 一道神仙的题>< 我们毙掉一个人后总的w的和会减少,怎么看怎么像指数算法 然而,我们可以容斥-- 设\(\sum_{i = 1}^{n} w_{i} = Sum\) 我们把问题转化一下,就是一个猎人死掉之后,并不认为他死掉了,他还活着,只是毙掉他的时候,再毙一次 很容易发现这是个正无穷的递归--但是--这是对的! 例如下一个毙掉\(i\)的概率,死掉的人的w和是\(B\),则 \(P = \frac{B}{A}P + \frac{w_{i}}{A}\) 我们当成一元一次方程解,很容易发现…
题面 传送门 题解 我们发现如果两个三角形相离,那么这两个三角形一定存在两条公切线 那么我们可以\(O(n^2)\)枚举其中一条公切线,然后可以暴力\(O(n^3)\)计算 怎么优化呢?我们可以枚举一个定点,然后把其它所有点按到这个定点的极角排序,那么就可以\(O(n^2)\)得出答案了 //minamoto #include<bits/stdc++.h> #define R register #define ll long long #define inline __inline__ __a…
题面 传送门 题解 我们枚举一下发射源,并把敌人和激光塔按极角排序,那么一组合法解就是两个极角之差不超过\(\pi\)且中间有敌人的三元组数,预处理一下前缀和然后用双指针就行了 //minamoto #include<bits/stdc++.h> #define R register #define ll long long #define inline __inline__ __attribute__((always_inline)) #define fp(i,a,b) for(R int…
题面 传送门 题解 如果我初中科学老师知道我有一天计算的时候入射角不等于反射角不知道会不会把我抓起来打一顿-- 这题本质上就是个模拟,需要的芝士也就计蒜几盒的那点,不过注意细节很多,放到考场上只能看看绝对调不出来的那种 //minamoto #include<bits/stdc++.h> #define R register #define inline __inline__ __attribute__((always_inline)) #define fp(i,a,b) for(R int…
题目链接 LOJ 洛谷 rank前3无压力(话说rank1特判打表有意思么) \(x*atk[i] - y*p[i] = hp[i]\) 对于每条龙可以求一个满足条件的\(x_0\),然后得到其通解\(x[i] = x_0 + p[i]/gcd*k\). 怎么合并所有龙的通解?可以直接写成 \(Ans\equiv x_0(mod\ p[i]/gcd)\),用扩展中国剩余定理合并即可. 所有\(p[i]=1\)时要特判.(为啥呢...反正我知道它不对...) 所有\(p[i]=hp[i]\)时同余…
正解:单调栈 解题报告: 哇生气辽QAQ本来打了半天feel good都快调出来了然后说换题了QAQ(所以可能那题的代码会过一阵子再放上来了QAQ 不过还是大爆手速打了一通拿到首杀了嘻嘻 美滋滋辽 然后放个传送门先qwq 有一点点解题思想和oil是有点儿像的,就是先把询问和修改放一个结构体里排序,这样当到达某个询问的时候就可以直接解决不用进行其他修改了qwq 然后就是做两次单调栈一次算出往左能看到的角度一次算出往右能看到的角度 然后就欧克辽? ummm好像是没什么好说的了只要推出了角度计算公式然…
[LOJ2541][PKUWC2018]猎人杀(容斥,FFT) 题面 LOJ 题解 这题好神仙啊. 直接考虑概率很麻烦,因为分母总是在变化. 但是,如果一个人死亡之后,我们不让他离场,假装给他打一个标记(猎人印记???) 如果在一次选择的时候选中了一个已经被打过标记的人,那么我们就重新做一次选择. 这样显然没有任何影响. 现在考虑如何求第一个人最后一个被打上标记的概率. 我们容斥一下,枚举一下哪些人会在\(1\)之后被选择,那么容斥系数就是\((-1)\)的人数次方. 那么对于钦定的在\(1\)…
[LOJ#6437][BZOJ5373]「PKUSC2018」PKUSC 试题描述 九条可怜是一个爱玩游戏的女孩子. 最近她在玩一个无双割草类的游戏,平面上有 \(n\) 个敌人,每一个敌人的坐标为 \(x_i,y_i\).可怜有一个技能是在平面上画一个 \(m\) 个点的简单多边形,并消灭所有严格在多边形内部的敌人. 不难发现如果想要快速的消灭敌人的话,只要画一个足够大的简单多边形就行了.但是这样的游戏性就太差了.于是可怜打算为游戏增加一定的随机性. 可怜在平面上随便画了一个 \(m\) 个点…
[LOJ 2721][UOJ 396][BZOJ 5418][NOI 2018]屠龙勇士 题意 题面好啰嗦啊直接粘LOJ题面好了 小 D 最近在网上发现了一款小游戏.游戏的规则如下: 游戏的目标是按照编号 \(1\)~\(n\) 顺序杀掉 \(n\) 条巨龙,每条巨龙拥有一个初始的生命值 \(a_i\) .同时每条巨龙拥有恢复能力,当其使用恢复能力时,它的生命值就会每次增加 \(p_i\),直至生命值非负.只有在攻击结束后且当生命值恰好为 \(0\) 时它才会死去. 游戏开始时玩家拥有 \(m\…
题目链接 https://loj.ac/problem/6358 (另外一道\(4\)的倍数题左转loj #6356) 题意 题面写得就像一坨X一样,我来复述一下吧. 有\(N\)个元素构成的集合,要从\(2^N\)个子集中选出若干个使得交的大小为\(4\)的倍数.不选算交为空. 样例解释: 选空集有\(8\)种方案,不选空集方案只有\(\{ 1\} \{ 2\}\)和\(\{ 1\} \{ 2\} \{1,2\}\), 还有一种什么都不选,共\(11\)种. 题解 这道题真的神仙得令我目瞪口呆…
前言 上传文件的时候发现总是失败,查看top发现有个进程一直cpu占用80%以上,而且名称还是随机数.kill之后,一会儿又重新生成了.突然发现居然没有在服务端杀毒的经历.在此处补齐. 安装clamav http://www.linuxdiyf.com/linux/18635.html http://www.linuxidc.com/Linux/2013-09/90021.htm http://www.linuxidc.com/Linux/2013-08/88981.htm 扫描 clamsca…
POJ2318 本题需要运用to left test不断判断点处于哪个分区,并统计分区的点个数(保证点不在边界和界外),用来做叉积入门题很合适 //计算几何-叉积入门题 //Time:157Ms Memory:828K #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; #define MAXN 5005 struct P…
前段时间,一哥们,去杀Linux服务器的进程,发现kill命令失灵了,怎么杀都杀不死. 然后上网查了下资料,原来是要被杀的进程,成为了僵尸进程. 僵尸进程的查看方法: 利用命令ps,可以看到有标记为Z的进程就是僵尸进程. 知道了原因,就想怎么去把这个僵尸进程干掉.网上说了两种方法,一种最简单的方法,重启服务器,相当于清理内存了.方法很简单,但是不是很实用,因为服务器,不是你一个人在用,服务器是不能随随便便重启的.第二种方法,杀掉其父进程,父进程干掉后,该僵尸进程也就消失了. 可以用  ps -e…
最大三角形 Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4015    Accepted Submission(s): 1433 Problem Description 老师在计算几何这门课上给Eddy布置了一道题目,题目是这样的:给定二维的平面上n个不同的点,要求在这些点里寻找三个点,使他们构成的三角形拥有的面积最大.Eddy对这道…
通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击 大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞.此洞可以说是个神洞,通过dirtycow,一个普通权限的app可以做到root权限的文件任意写,随后还可以转化为android上的通用root.就在大家纷纷埋头研究dirtycow的时候,Drammer横空出世,号称也可以root最新版的Android 6.0.1,同时还放出了CCS论文和POC. 那么这…
本文由“即刻安全”投稿到“玄魂工作室” Veil-Evasion 是 Veil-Framework 框架的一部分,也是其主要的项目.利用它我们可以生成绕过杀软的 payload !kali 上并未安装,下面我们来进行简单的安装.我们直接从 github 上进行 clone 下载: git clone https://www.github.com/Veil-Framework/Veil-Evasion.git 图1 下载完成后,我们还需要对其软件配置包进行安装,依次输入如下命令: ls cd Ve…
开篇前言 Linux服务器一直给我们的印象是安全.稳定.可靠,性能卓越.由于一来Linux本身的安全机制,Linux上的病毒.木马较少,二则由于宣称Linux是最安全的操作系统,导致很多人对Linux的安全性有个误解:以为它永远不会感染病毒.木马:以为它没有安全漏洞.所以很多Linux服务器都是裸奔的.其实在这次事件之前,我对Linux的安全性方面的认识.重视程度也是有所不足的.系统的安全性是相对而言的,没有绝对的安全,风险无处不在.   案例描述 我们在云端(中信国际电讯CPC)的一台Linu…
狼人杀beta阶段任务与目标 简介 一.前言 狼人杀alpha阶段终于在组团刷夜中结束了,我们取得了一些成绩,同时也暴露了团队的一些问题.但不管怎样,有了在alpha版本中收获的经验,我们将在beta版本中走得更远. 二.目标简介 经过上一个阶段的开发,我们了解到宏伟的构想不如清晰实际的计划来得实在,因此,我们beta阶段的目标相对alpha阶段来说更加清晰和明确,同时也在工作量和消耗时间上有一个更精准的估计. 优化游戏流程,改善游戏体验 流程的简单清晰能大程度地改善用户的游戏体验,因此我们需要…