Jzoj4877 力场护盾(红警系列)

Phobos:兼容Ares的C&C红色警报2 Phobos是一个WIP社区项目,它基于和为Yuri's Revenge提供了一组新功能和修复程序,以允许注入代码。它旨在陪伴而不是取代它,因此不会引入不兼容性。 现在,您可以 (这是我的C&C改装服务器)上的专用讨论该项目。 生成和使用(Windows) 使用“使用C ++进行桌面开发”工作负载和“ VS 2017(v141)工具的C ++ Windows XP支持”单个组件安装Visual Studio,然后递归克隆此存储库(也将克隆YRpp)。 在VS中打开解决方案文件并进行构建(建议使用DevBuild构建配置)。 构建完成后,将与文件夹中所使用的构建配置相同的文件夹中的结果Phobos.dll YR目录中,并启动针对您的YR可执行文件(通常为gamemd.exe )的Syringe。 您还可以通过GitHub Actions工作流自动测试特定提交的夜间版本,只需按一个绿色勾号,打 立即下载
ZMiG成功粉碎了707的基因突变计划,为了人类的安全,他决定向707的科学实验室发起进攻!707并没有想到有人敢攻击她的实验室,一时间不知所措,决定牺牲电力来换取自己实验室的平安。
    在实验室周围瞬间产生了一个无限大的力场护盾,它看上去无懈可击!不过ZMiG拥有惊人的双向观察能力,经过他的反复观察,找到了这个护盾的N个弱点,他本想逐一击破,却发现一股神秘力量阻止了他的行为。原来他身处力场之中,受到了两股神秘力量的影响,这两股力量来自两个不同的方向并形成了一个小于180度的角,ZMiG每次可攻击的范围都受到这两个力的影响,当他攻击了点X之后,下一次可以攻击的点必须在以X为坐标原点的情况下,这两个力方向的夹角之间(包含边界)(具体意思可看样例)

    ZMiG当然想打出一串最长的Combo,所以他想问问你最多可以攻击707弱点多少次

这道题需要一点点向量的知识,让后就可以实现坐标系之间的转换了

设两个向量为 (x1,y1) (x2,y2)

那么一个点 (x,y) 在新的坐标系的映射(x',y')里就满足以下方程

x'(x1,y1)+y'(x2,y2)=(x,y)

解方程即可得到x'和y'

但是坑点是精度问题,这道题要用数据结构来维护而且排序的时候也要考虑精度问题

比如,原本本地AC的code是这样的:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define D double
#define mid (l+r>>1)
using namespace std;
struct dt{ D a,b; } s[200010];
int n,m,r[200010],w[800080],f[200010]; 
D x1,y1,x2,y2,c1,c2,v[200010];
inline bool cmp(dt a,dt b){ return a.a<b.a; }
void update(int l,int r,int x,int p,int k){
	if(l==r){ w[x]=max(w[x],k); return; }
	if(p<=mid) update(l,mid,x<<1,p,k);
	  else update(mid+1,r,x<<1|1,p,k);
	w[x]=max(w[x<<1],w[x<<1|1]);
}
int query(int l,int r,int x,int L,int R){
	if(L<=l && r<=R) return w[x];
	int Ans=0;
	if(L<=mid) Ans=max(Ans,query(l,mid,x<<1,L,R));
	if(mid<R) Ans=max(Ans,query(mid+1,r,x<<1|1,L,R));
	return Ans;
}
int main(){
	freopen("shield.in","r",stdin);
	freopen("shield.out","w",stdout);
	scanf("%d",&n);
	scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
	for(int i=1;i<=n;++i){
		 scanf("%lf%lf",&c1,&c2);
		 s[i]=(dt){(c1*y2-c2*x2)/(x1*y2-y1*x2),(c1*y1-c2*x1)/(y1*x2-x1*y2)};
	}
	sort(s+1,s+1+n,cmp);
	for(int i=1;i<=n;++i) v[i]=s[i].b;
	sort(v+1,v+1+n); 
	for(int i=1;i<=n;++i) r[i]=lower_bound(v+1,v+1+n,s[i].b)-v;
	for(int i=1;i<=n;++i){ f[i]=query(0,n,1,0,r[i])+1; update(0,n,1,r[i],f[i]); } 
	printf("%d\n",w[1]);
}
但是被精度卡剩60pts

所以必须这样写:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#define D double
#define mid (l+r>>1)
using namespace std;
struct dt{ D a,b; int r; } s[200010];
int n,m,w[800080],f[200010]; 
D x1,Y1,x2,y2,c1,c2; 
inline bool cmp(dt a,dt b){ return fabs(a.a-b.a)<10e-7?a.r<b.r:a.a<b.a; }
inline bool cmp2(dt a,dt b){ return a.b<b.b; }
void update(int l,int r,int x,int p,int k){
	if(l==r){ w[x]=max(w[x],k); return; }
	if(p<=mid) update(l,mid,x<<1,p,k);
	  else update(mid+1,r,x<<1|1,p,k);
	w[x]=max(w[x<<1],w[x<<1|1]);
}
int query(int l,int r,int x,int L,int R){
	if(L<=l && r<=R) return w[x];
	int Ans=0;
	if(L<=mid) Ans=max(Ans,query(l,mid,x<<1,L,R));
	if(mid<R) Ans=max(Ans,query(mid+1,r,x<<1|1,L,R));
	return Ans;
}
int main(){
	freopen("shield.in","r",stdin);
	freopen("shield.out","w",stdout);
	scanf("%d",&n);
	scanf("%lf%lf%lf%lf",&x1,&Y1,&x2,&y2);
	for(int i=1;i<=n;++i){
		 scanf("%lf%lf",&c1,&c2);
		 s[i]=(dt){(D)(c1*y2-c2*x2)/(x1*y2-Y1*x2),(D)(c1*Y1-c2*x1)/(Y1*x2-x1*y2)};
	}
	sort(s+1,s+1+n,cmp2);
	for(int i=1;i<=n;++i) s[i].r=s[i].b-s[i-1].b<10e-7?s[i-1].r:s[i-1].r+1;
	sort(s+1,s+1+n,cmp);
	for(int i=1;i<=n;++i){ f[i]=query(0,n,1,0,s[i].r)+1; update(0,n,1,s[i].r,f[i]); } 
	printf("%d\n",w[1]);
}

点云语义分割:PointNet训练S3DIS数据集 文章目录一、数据准备1.1、数据下载二、训练三、测试 项目地址:pointnet 此次我们是用pointnet网络来做语义分割。代码在pointnet项目中的sem_seg文件夹下,里面也有README.md介绍了训练的过程。 一、数据准备 1.1、数据下载 原始数据下载 处理好的h5格式数据下载 二、训练 三、测试 ... 阅读详情

相关推荐

AstrBot插件开发全攻略:从零编写一个天气查询插件(Python实战)

本文提供了一份详细的AstrBot插件开发实战指南,手把手教你使用Python从零编写一个智能天气查询插件。内容涵盖插件系统核心设计、开发环境搭建、API调用与数据处理、自然语言交互实现以及插件打包发布全流程,帮助你快速掌握基于AstrBot框架的聊天机器人功能扩展技能。

weixin_29212867的博客 1082

Unity ShaderGraph力场交互效果案例

Unity ShaderGraph力场交互效果案例前言最终效果制作过程开启相机深度贴图找到与墙面交汇点将主节点改为透明关闭渲染物体的阴影修正Alpha并与菲涅尔效果叠加制作流动贴图效果贴图与效果合并暴露参数贴图素材 前言 好好学习,天天向上。 视频链接: https://www.youtube.com/watch?v=NiOGWZXBg4Y 最终效果 制作过程 开启相机深度贴图 将RenderPipelineAsset中的DepthTexture勾选,可以生成相机深度图。 找到与墙面交汇点 访问屏幕位

SlowFeather's blog 1203

为什么BGA焊点总在四个角先坏?一次热-振耦合仿真给你讲明白

本文通过Ansys Workbench进行热-振耦合仿真,深入分析了BGA焊点在四个角点先失效的机理。研究发现,角点焊点由于CTE失配、振动载荷放大及几何应力集中等因素,承受的等效塑性应变和动态应力显著高于中心区域,导致其疲劳寿命大幅降低。仿真数据揭示了角点焊点的应力分布和蠕变特性,为电子封装可靠性设计提供了重要依据。

weixin_42535461的博客 439

【JZOJ4877】【NOIP2016提高A组集训第10场11.8】力场护盾

题目描述 ZMiG成功粉碎了707的基因突变计划,为了人类的安全,他决定向707的科学实验室发起进攻!707并没有想到有人敢攻击她的实验室,一时间不知所措,决定牺牲电力来换取自己实验室的平安。 在实验室周围瞬间产生了一个无限大的力场护盾,它看上去无懈可击!不过ZMiG拥有惊人的双向观察能力,经过他的反复观察,找到了这个护盾的N个弱点,他本想逐一击破,却发现一股神秘力...

weixin_30655219的博客 135

Win11安装Office2021

windows11安装office2021。

1万+

深入解析EDID中Display Descriptor Block的配置技巧与实战应用

本文深入解析EDID中Display Descriptor Block的配置技巧与实战应用。通过剖析像素时钟、有效像素、消隐区与同步脉冲等核心参数,并结合1280x720@60Hz的实战配置案例,指导开发者如何正确为定制硬件或非标准显示器编写“身份证”,避免黑屏、分辨率异常等问题,确保显示设备完美点亮。

1a2s3d4f5g的博客 878

【NOIP2016提高A组集训第10场11.8】力场护盾

DescriptionZMiG成功粉碎了707的基因突变计划,为了人类的安全,他决定向707的科学实验室发起进攻!707并没有想到有人敢攻击她的实验室,一时间不知所措,决定牺牲电力来换取自己实验室的平安。 在实验室周围瞬间产生了一个无限大的力场护盾,它看上去无懈可击!不过ZMiG拥有惊人的双向观察能力,经过他的反复观察,找到了这个护盾的N个弱点,他本想逐一击破,却发现一股神秘力量阻止了他的

Facico的博客 912

SAP CO实战:如何用KKA2/CJ88结果分析码搞定项目收入成本匹配(附真实案例)

本文深入探讨了SAP CO模块中KKA2和CJ88结果分析码在项目收入成本匹配中的高阶应用。通过真实案例解析,详细介绍了这两种分析码在分阶段收入确认和终验法项目中的配置技巧与实战经验,帮助财务人员高效解决复杂业务场景下的财务数据处理难题。

weixin_29230773的博客 166

【jzoj4877】【力场护盾】【树状数组】

题目大意给出坐标系上一些点,每个点只能往一个给定小于180度的方向走,求最长路的长度。解题思路发现给定方向是90度就可以直接按x排序做最长不下降子序列,现在的问题是转化成直角。我们可以先变换一下坐标系,令 x 轴为其中一条向量(x1,y1),y 轴为另外一条向量(x2,y2)然后用这两个向量去合成原题中所给出的点(x,y),列出方程为x’(x1,y1)+y’(x2,y2)=(x,y)则有 x’*x1

inklutcuah’s blog 577

3D LUT Color Conversion之总体架构设计之三

摘要:本文提出了一种基于三维坐标一维化寻址的四面体网格编码方法。通过定义全局网格坐标P(R,G,B)=R+9G+81B和局部增量(ξ,η,ζ)∈{0,1},推导出偏移量Δ(ξ,η,ζ)=ξ+9η+81ζ的平移不变性质。该方法将6种坐标排序情况(Case)对应的固定偏移量三元组预先存储,其中V0和V3的偏移量恒定为0和91。硬件实现时只需根据Case选择对应常量组,无需实时计算坐标,显著提高了处理效率。该方案利用线性寻址公式的特性,确保相同局部结构在不同位置具有一致的偏移模式。(149字)

大熊 46

华为OD机考真题 新系统 9月23号 【世界杯徽章换购】多语言题解

华为OD机试真题 新系统【世界杯徽章换购】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【世界杯徽章换购】多语言题解。

qq_45776114的博客 685

[力场与能量]坚守的意义

无论你家里给你留下的矿井是否已经被"专家"判定为枯竭了,你都不要放弃或者出售,坚守这个矿井(特别是石油,天然气或者其它矿产,盐田,煤田)       无论国际石油价格跌到什么程度,类似巴库和大庆这种石油城市,我们都必须坚守,绝不撤离。。。        为什么? 因为由于地质活动和地球本身的再生能力,这些地下的资源会在停止采掘一段时间后,重新恢复资源的有效供给的........ 

dotedy的博客 414

一篇文章足够你学习Bluez,提供史上最全的Bluez教程,让你告别Bluez从入门到放弃

Bluez是真的难,说“入门到放弃”真的毫不夸张,Bluez的学习曲线陡峭,要求对Linux 系统/驱动概念、D-Bus 通信和蓝牙协议都有要求,加上网络上其实没有一个完整的介绍Bluez系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度。

朝气蓬勃 2530

shader力场ForceFiled冲击波效果

力场效果(本来就渣,录屏效果是更渣~~) (1)这里冲击波,主要是利用粒子particle系统,每次点击交互 发射一个粒子, (2)每个粒子在自己的生命周期中大小都是可以控制的: 由小变大 或者 由大变小 , 总之就是曲线可控。 (3)每个冲击波的大小 和 每个粒子的大小 同步, 粒子决定冲击波 效果中用到知识点 在前面的章节中已经详细介绍了 水波纹 三平面映射 溶解 流光原理 下面直接贴上代码: Shader "Unlit/ForceFiled_first_HitWave" { Prop

木马人 908

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【NOIP2016提高A组集训第10场11.8】时空传送

Description经过旷久的战争,ZMiG和707逐渐培养出了深厚的感♂情。他们逃到了另一块大陆上,决定远离世间的纷争,幸福地生活在一起。钟情707的neither_nor决心要把他们拆散,他要动用手中最大杀器之一——超时空传送仪来分开ZMiG和707。ZMiG和707所在的大陆可以被描述成N个点M条边的有向无环图。707和ZMiG自带魔法防御,neither_nor只可以用超时空传送仪把707

Facico的博客 842

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Shader】扭曲能量罩特效

Shader "Custom/ForceField" { Properties { _Color("Color", Color) = (0,0,0,0) _NoiseTex("NoiseTexture", 2D) = "white" {} // 扭曲程度 _DistortStrength("DistortStrength", Range(0,1)) = 0.2

Zok93 2023

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

NOIP提高A组集训第10场11.8 力场护盾

DescriptionZMiG成功粉碎了707的基因突变计划,为了人类的安全,他决定向707的科学实验室发起进攻!707并没有想到有人敢攻击她的实验室,一时间不知所措,决定牺牲电力来换取自己实验室的平安。 在实验室周围瞬间产生了一个无限大的力场护盾,它看上去无懈可击!不过ZMiG拥有惊人的双向观察能力,经过他的反复观察,找到了这个护盾的N个弱点,他本想逐一击破,却发现一股神秘力量阻止了他的

老臣 477

JZOJ4877. 力场护盾

题目大意 给出坐标系中的n个点和两个向量(x1,y1),(x2,y2)。找出一条路径使得路径上每一个点都在上一个点为源点,以两个向量为夹角的区域内。 求路径最多经过的点数。 Data Constraint n≤200000,向量夹角≤180°

Akakii的博客 511

Jzoj3467 最长上升子序列

维护一个序列,使它可以进行下面两种操作: 1.在末尾添加一个数字x 2.将整个序列变成第x次操作后的样子 在每次操作后,输出当前序列的最长上升子序列的长度 序列初始时为空 嗯,可持久化线段树的裸题 额这可是noip提高组难度的题,我们发现所有操作可以变成一棵树(离线做法老套路了) 让后每次最多修改数组上的一个值(考虑二分求LIS的过程)最后改回去就好了 注意dfs又卡栈(jzo

扩展の灰(Extended Ash/Cooevjnz) 3022

Jzoj4210 我才不是萝莉控呢

小Y:“小R你是萝莉控吗。”小R:“...”  为了避免这个尴尬的话题,小R决定给小Y做一道题。 有一个长度为n的正整数数组A,满足艾> =艾+ 1,现在构造一个数组B,令的Bi = ΣA[j] (j∈[i,n])。 现在,有一个N * N的网格图,左下角坐标是(1,1),右上角坐标是(N,N)。有一个小SB正在坐标为(n,1)的位置,每一时刻,如果他现在在(x,y),他可以选择走到(x?-

扩展の灰(Extended Ash/Cooevjnz) 1772

LOJ 6495~6497「雅礼集训 2018 Day1」

. 真是看懂std就秒的三道题,但是看懂就很难啊 (感谢superguymj和memset0两个大佬的代码) 稍微说一下题解 -------------------------------------------------------- 「雅礼集训 2018 Day1」树 这道题的正解被superguymj大佬吊打了,原来O(n⋅2n)O(n·2^n)O(n⋅2n)变成了O(n4)O(n^4)...

扩展の灰(Extended Ash/Cooevjnz) 1562

Jzoj4876 基因突变(红警系列)

邪恶的707刚刚从白垩纪穿越回来,心中产生了一个念头:我要统治人类!     但是统治人类是很庞大且复杂的一个工程,707尝试了洗脑,催眠,以及武装镇压都没能成功地统治人类,于是她决定从科学上对人类的基因进行研究从而达到他的目的。     707获取了人类的基因信息并尝试对基因进行实验。他发现可以把人类的基因看做一个只包含小写字母的字符串,并定义从头开始任意长度的基因为“源头基因”人类身上与源

扩展の灰(Extended Ash/Cooevjnz) 1436
上一篇: Jzoj4876 基因突变(红警系列)
下一篇: GD2016noip获奖名单
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值