OI 笑传 #29

news/2025/11/16 23:24:42/文章来源:https://www.cnblogs.com/hm2nsite/p/19229368

今天是 mx 的 NOIP2025 模拟 2。写了前两题。

Luogu P14520 战争游戏

打gen来

第一眼猜答案前半部分是 \(0\),后半部分是 \(1\),看了看大样例发现猜对了。

然后想想造成这个的原因大概是两人都倾巢对拼,然后哪边多哪边赢。

然后这就是个前缀和吧,写一写。

然后被第二个大样例卡了。

想了想又发现 L 可以先手吃一个 K 的格子,但是 K 也有可能吃回来。

这样的话好像就不能确定了啊,但是别急,我们继续猜俩人顶多互吃一次。

然后这样如果 L 吃了一个还能接着吃,K 就要把这个退回去防止被吃。

如果 L 吃了一个结果 K 能吃回来,那么 L 就不能往前吃。

如果 L 不能吃,那么 L 应该把自己退回来。

然后这样 L 可能会一直退到自己老家 \(1\) 号格子,然后这时候 K 只能倾巢对拼数量了,这种情况对于 K 也一样。这证明我们猜对了。

于是前缀和写写就行了。赛时因为忘了 K 还能退挂了 8pts,竟然只挂了 8pts。

92pts code

Show me the code
#define rd read()
#define mkp make_pair
#define ls p<<1
#define rs p<<1|1
#define rep(i,a,b) for( int i=(a); i<=(b); ++i)
#define per(i,a,b) for( int i=(a); i>=(b); --i)
#include<bits/stdc++.h>
using namespace std;
typedef long long i64;
typedef unsigned long long u64;
typedef unsigned int u32;
typedef __int128 i128;
i64 read(){i64 x=0,f=1;char c=getchar();while(c>'9'||c<'0'){if(c=='-') f=-1;c=getchar();}while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}return x*f;
}
void init(){}
int a[200005];
void solve(){int n;cin>>n;i64 sum=0;for(int i=1;i<=n;i++){a[i]=rd;sum+=a[i];}i64 ps=0;int lk=0;for(int i=1;i<n;i++){ps+=a[i];i64 p2=ps;if(a[i]>a[i+1]){i64 t1=a[i]+a[i+1];if(a[i+2]>=t1){p2-=a[i];}else p2+=a[i+1];}if(p2<=sum-p2&&!lk)cout<<0;else {lk=1;cout<<1;}}cout<<'\n';return ;
}
int main(){int T;cin>>T;while(T--){init();solve();}return 0;
}

100pts code

Show me the code
#define rd read()
#define mkp make_pair
#define ls p<<1
#define rs p<<1|1
#define rep(i,a,b) for( int i=(a); i<=(b); ++i)
#define per(i,a,b) for( int i=(a); i>=(b); --i)
#include<bits/stdc++.h>
using namespace std;
typedef long long i64;
typedef unsigned long long u64;
typedef unsigned int u32;
typedef __int128 i128;
i64 read(){i64 x=0,f=1;char c=getchar();while(c>'9'||c<'0'){if(c=='-') f=-1;c=getchar();}while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}return x*f;
}
void init(){}
int a[200005];
void solve(){int n;cin>>n;i64 sum=0;for(int i=1;i<=n;i++){a[i]=rd;sum+=a[i];}i64 ps=0;int lk=0;for(int i=1;i<n;i++){ps+=a[i];i64 p2=ps;if(a[i]>a[i+1]&&a[i]+a[i+1]>a[i+2]){p2+=a[i+1];}if(p2<=sum-p2&&!lk)cout<<0;else {lk=1;cout<<1;}}cout<<'\n';return ;
}
int main(){int T;cin>>T;while(T--){init();solve();}return 0;
}

Luogu P14521 加减乘除

长且了,于是建议评绿,于是:

其实赛时想的挺快的,就是钦定用 \(1\) 开始从根开始走走走,每到一个点加一下,过一个边就能根据相对大小算出能到这个的初值范围。

然后能到这个点的前提是之前也能到,于是处理完范围之后再从初始点开始跑 DFS,过程把区间取个交即可。

如果无根树还可做吗?问题出在可以在某些点横跳攒值。

询问离线即可。最初写了一版还以为询问都很小,结果一打开大样例直接傻眼了,还好写的代码加上离散化就行了。

然后就要从 \(-10^{18}\) 开始走了。

又要用 __int128,然后大样例大的离谱上了快读。

读题这一块。

code

Show me the code
#define rd read()
#define mkp make_pair
#define ls p<<1
#define rs p<<1|1
#define rep(i,a,b) for( int i=(a); i<=(b); ++i)
#define per(i,a,b) for( int i=(a); i>=(b); --i)
#include<bits/stdc++.h>
using namespace std;
typedef long long i64;
typedef unsigned long long u64;
typedef unsigned int u32;
typedef __int128 i128;
i64 read(){i64 x=0,f=1;char c=getchar();while(c>'9'||c<'0'){if(c=='-') f=-1;c=getchar();}while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}return x*f;
}
const int N=5e5+1145;
struct edge{int v;i64 l,r;
};
pair<i128,i128> rg[N];
vector<edge> e[N];
char op[N];
i64 dt[N];
vector<i64> ql,dis;
vector<i64>::iterator rb;
void dfs(int u,int fa,i128 d){if(op[u]=='+'){d+=dt[u];}else d-=dt[u];for(edge s:e[u]){int v=s.v;if(v==fa)continue;i64 l=s.l;i64 r=s.r;if(d<l){i128 rel=(i128)(-1e18)+(l-d);i128 rer=rel+r-l;rg[v].first=rel;rg[v].second=rer;}else if(l<=d&&d<=r){i128 rel=(i128)-1e18;i128 rer=rel+r-d;rg[v].first=rel;rg[v].second=rer;}else{rg[v].first=(i128)1e30;rg[v].second=(i128)-1e30;}dfs(v,u,d);}return ;
}
i64 det[1000999];
void dfs2(int u,int fa,i128 l,i128 r){l=max(l,rg[u].first);r=min(r,rg[u].second);int llb,rrb;llb=lower_bound(dis.begin(),rb,l)-dis.begin();rrb=upper_bound(dis.begin(),rb,r)-dis.begin()-1;if(llb<=rrb){det[llb]++;det[rrb+1]--;}for(edge s:e[u]){int v=s.v;if(v==fa)continue;dfs2(v,u,l,r);}return ;
}
int main(){int n,q;cin>>n>>q;for(int i=2;i<=n;i++){int v;i64 l,r;v=rd;l=rd;r=rd;e[i].push_back(edge{v,l,r});e[v].push_back(edge{i,l,r});  }for(int i=1;i<=n;i++){cin>>op[i]>>dt[i];}for(int i=1;i<=q;i++){i64 mr=rd;ql.push_back(mr);dis.push_back(mr);}sort(dis.begin(),dis.end());rb=unique(dis.begin(),dis.end());rg[1].first=(i64)-1e18;rg[1].second=(i64)1e18;dfs(1,0,-1e18);dfs2(1,0,-1e18,1e18);for(int i=0;i<=q;i++){det[i]=det[i-1]+det[i];}for(i64 v:ql){int wp=lower_bound(dis.begin(),rb,v)-dis.begin();cout<<det[wp]<<'\n';}return 0;
}

再找个时间写写昨晚的猎奇 ABC,还要去背一下 pbds 科技。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/967484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年 11 月广播设备厂家推荐排行榜,视讯广播,SI广播,数字IP广播,智能广播系统,定压功放,广播周边,广播话筒,广播机柜,SIP网络广播系统,公共广播系统公司推荐

2025年广播设备行业深度解析:技术演进与优质厂家推荐指南 随着信息技术与通信技术的深度融合,广播设备行业正经历着从传统模拟向数字化、网络化、智能化的全面转型。视讯广播、SI广播、数字IP广播、智能广播系统等新…

2025 年 11 月全自动智能点胶机厂家推荐排行榜,视觉定位点胶机,饰品/纽扣/拉链头/商标/钥匙扣/五金/徽章/线圈/硅胶/UV胶点胶设备公司精选

2025 年 11 月全自动智能点胶机厂家推荐排行榜,视觉定位点胶机,饰品/纽扣/拉链头/商标/钥匙扣/五金/徽章/线圈/硅胶/UV胶点胶设备公司精选 随着工业自动化水平的不断提升,全自动智能点胶设备在制造业中的应用日益广…

2025 年 11 月 Q355B/Q345B/16Mn 圆钢厂家推荐排行榜,低合金高强度圆钢,结构用圆钢,合金钢圆钢公司精选

2025 年 11 月 Q355B/Q345B/16Mn 圆钢厂家推荐排行榜,低合金高强度圆钢,结构用圆钢,合金钢圆钢公司精选 行业背景分析 低合金高强度结构钢作为现代工业制造的重要基础材料,在建筑、机械制造、桥梁工程等领域发挥着…

2025 年 11 月磨粉机厂家推荐排行榜,雷蒙磨粉机,环辊磨粉机,摆式磨粉机,矿石磨粉机,超细磨粉机,高压磨粉机,大型磨粉机公司推荐

2025年11月磨粉机厂家推荐排行榜:雷蒙磨粉机、环辊磨粉机、摆式磨粉机、矿石磨粉机、超细磨粉机、高压磨粉机、大型磨粉机公司推荐 行业背景 随着工业化进程的不断推进,磨粉设备在矿山、建材、冶金、化工等领域的应用…

2025 年 11 月冠晶石厂家推荐排行榜,外墙冠晶石,内墙冠晶石,防霉冠晶石,水包水冠晶石,水包砂冠晶石,耐污冠晶石,自洁冠晶石公司推荐

2025 年 11 月冠晶石厂家推荐排行榜:外墙冠晶石、内墙冠晶石等产品权威指南 随着建筑行业对高性能装饰材料需求的不断增长,冠晶石作为一种多功能涂料,凭借其优异的耐候性、装饰性和环保特性,在内外墙装饰领域占据重…

2025 年 11 月试验机厂家推荐排行榜,拉力试验机,江都试验机,管材环刚度试验机,电子万能试验机,橡胶试验机,压缩试验机公司推荐

2025年11月试验机厂家推荐排行榜:专业选购指南与权威品牌分析 行业背景与发展现状 试验机作为材料检测领域的关键设备,在工业生产、质量控制和科研创新中扮演着不可或缺的角色。随着制造业转型升级的深入推进,试验机…

2025 年 11 月家居智能制造系统厂家推荐排行榜:家居ERP,家居MES,家居CRM,家居ERP系统,家居MES软件,家居CRM产品公司推荐

2025年11月家居智能制造系统厂家推荐排行榜:家居ERP,家居MES,家居CRM,家居ERP系统,家居MES软件,家居CRM产品公司推荐 随着家居行业数字化转型进程加速,智能制造系统已成为企业提升竞争力的核心驱动力。家居ERP系…

Daibitx.EFCore.AutoMigrate:模块化架构下安全、可控的 EF Core 迁移方案

Daibitx.EFCore.AutoMigrate:模块化架构下更安全、可控的 EF Core 自动迁移方案 在实际项目中,数据库迁移是一个绕不开的环节。 尤其是在 模块化架构、微服务、多团队协作 的场景下,EF Core 自带的迁移机制在灵活性…

2025 年 11 月西服定制厂家推荐排行榜,兰州西服定制,婚纱/结婚/职业/男士/女士/团体/职场/新郎/定做/西装/礼服/工作服/职业装/公务员西服定制公司推荐

2025年11月西服定制厂家推荐排行榜:兰州西服定制专业指南 在当今注重形象与专业度的社会环境中,西服定制已成为企业团体、公务人员及个人消费者的普遍需求。兰州作为西北地区重要城市,西服定制市场呈现出专业化、细…

2025 年 11 月防水网厂家推荐排行榜,防水网,味头防水网,专业防水网源头厂家实力解析与选购指南

2025 年 11 月防水网厂家推荐排行榜,防水网,味头防水网,专业防水网源头厂家实力解析与选购指南 随着电子设备防水防尘需求的日益增长,防水网行业迎来了快速发展。防水网作为电子产品防护的关键组件,其性能直接影响…

2025 年 11 月保洁公司推荐排行榜,驻场保洁,钟点保洁,开荒保洁,外包保洁,商场/办公楼/工厂/医院/企业保洁服务公司精选

2025年11月保洁服务行业深度分析与优质供应商推荐 行业现状与发展趋势 随着现代服务业的高速发展,保洁行业作为企业后勤保障的重要环节,正经历着深刻的变革与升级。在2025年的市场环境下,保洁服务已从传统的基础清洁…

2025 年 11 月防腐工程厂家推荐排行榜,喷砂,热喷锌,热喷铝,油漆涂装,热喷耐磨材料,防腐工程公司精选

2025 年 11 月防腐工程厂家推荐排行榜,喷砂,热喷锌,热喷铝,油漆涂装,热喷耐磨材料,防腐工程公司精选 在工业制造和基础设施建设领域,腐蚀防护一直是关乎设备寿命和安全运行的关键环节。随着材料科学和表面处理技…

算法-回溯算法思想

算法-回溯算法思想 1. 回溯算法的基本概述 什么是回溯算法?回溯算法,本质上就是回溯 = 递归 + 状态恢复 + 剪枝 它是一种暴力搜索的优化形式,通过“尝试 -> 撤销”来穷举所有可能解,并在过程中剪枝无效分枝2. 回…

2025 年 11 月中医师承确有专长权威推荐榜:师承教育、专长医师资格考核与合法执业路径深度解析

2025 年 11 月中医师承确有专长权威推荐榜:师承教育、专长医师资格考核与合法执业路径深度解析 一、中医师承确有专长行业背景与发展现状 随着《中医药法》的深入实施和中医药发展战略的持续推进,中医师承教育作为传…

[LangChain] 19. 持久化记忆

目前我们所使用的 Memory,大多只存在于内存中,一旦进程关闭、用户刷新页面,所有历史对话都会丢失。实际项目中,我们常常希望:让用户“第二次回来”还能接着上次对话继续聊 将多轮聊天记录保存在本地或数据库中,用…

2025 年 11 月 Q355B/Q345B/16Mn 冷拉圆钢厂家推荐排行榜,高强度结构钢,低合金圆钢,精密冷拉钢材公司精选

2025 年 11 月 Q355B/Q345B/16Mn 冷拉圆钢厂家推荐排行榜 行业背景分析 随着我国制造业向高质量发展转型,高强度结构钢和低合金圆钢在机械制造、汽车工业、重型装备等领域的应用日益广泛。Q355B、Q345B和16Mn作为典型…

2025 年 11 月 Q355B/Q345B/16Mn 冷拉方钢厂家推荐排行榜,高强度结构钢,建筑机械用冷拉方钢,优质钢材厂家精选

2025 年 11 月 Q355B/Q345B/16Mn 冷拉方钢厂家推荐排行榜,高强度结构钢,建筑机械用冷拉方钢,优质钢材厂家精选 行业背景与发展现状 冷拉方钢作为重要的工业基础材料,在建筑机械、重型装备、工程结构等领域发挥着关…

*题解:P11364 [NOIP2024] 树上查询

原题链接 困难题。 解析 考虑处理出形如 \((u,v,d)\) 的三元组表示编号从 \(u\) 到 \(v\) 的点的 LCA 深度为 \(d\),且区间 \([u,v]\) 是极长的。怎么处理呢?肯定要利用子树信息,我们尝试进一步合并子树已经合并出的…

oj第一题python解法

用pyhon实现自动识别输入截止功能 一、 序言与题目引入 对于新接触编程语言如python和c的新同学来说,学校的oj平台上有很好配套练习,既有一定难度,又不会像LeetCode等程序员公用的成熟平台那样太难上手,不过学长学…

11.16方法

11.16方法 1. 方法 是什么? 方法(method)是程序中最小的执行单元 有什么用? 重复的代码、具有独立功能的代码可以抽取到方法中。方法可以提高代码的复用性、可以提高代码的可维护性 2.方法的格式 方法就是把一些代…