NOIP2024 前集训:多校A层冲刺NOIP2024模拟赛 27 终结篇

news/2024/11/28 19:46:05/文章来源:https://www.cnblogs.com/Charlieljk/p/18575041

前言

点击查看代码
《蜂鸟》传说中人类在远早住于黑暗的地下之遥派出了娇小的蜂鸟找到通往光明的隧道飞过了一座一座岛好想有一个地方落脚把一个一个梦制造会不会有人能够听到寻找太阳的梦 自不量力说自己也变成太阳的念头有时候寂寞 几乎扛不动咽在喉咙里无人诉说我们到底在追求些什么为何一直不断往前冲捏出血的双手忘了也能够 稍微退后我们总是以为能够自由回过头那世界却依旧哎 爱它来的时候紧握的拳头 别忘了捉那个梦传说中愤怒的恶魔曾让这地球四处着火一只蜂鸟收集云朵火在雨中变成了彩虹我们在孤单中探索危险世界美丽的渴求就算这力量再微弱也想牵你手一起挣脱寻找太阳的梦 自不量力说自己也变成太阳的念头有时候寂寞 几乎扛不动咽在喉咙里无人诉说我们到底在追求些什么为何一直不断往前冲捏出血的双手忘了也能够 稍微退后我们总是以为能够自由回过头那世界却依旧哎 爱它来的时候紧握的拳头 别忘了捉那个梦 来到我的身旁 收拢世界的光我想要成为自己 也成为你的光我们到底在追求些什么为何不断往前冲捏出血的双手忘了也能够 稍微退后我们到底在追求些什么为何一直不断往前冲捏出血的双手忘了也能够 稍微退后我们总是以为能够自由回过头那世界却依旧哎 爱它来的时候紧握的拳头 别忘了捉那个梦我那个梦我那个梦寂寞中拍打的翅膀终于找到你一起飞翔渺小却带来了神话你看这世界开满了花

今天中午放的每日一歌,虽然放了好多次了,今天还是放上来了,算是唱出 OIer 们的心声了。

终结赛,没挂分是好的,因为本来也没多少分可以挂,暴力没打满,确切地说是没打完,T2 构造直接跳了,T3 一直想怎么优化 DP 没想过去推结论。

考完后高二放假高一不放,因为他们下周学考所以我们下周放的时间长,不过好像脑瘫老班不想让我们放,到时候再说吧反正我肯定是不接受的,回来就要补文化课了,可能到时候就要和好多人说再见了,所以《一期一会》等游记或补文化课的时候推。

NOIP rp++。

自觉忽略题目名称。

T1 【模板】分治FFT

发现每一种情况的结果都是一样的,所以直接乘上方案数即可,方案数为 \(\prod\limits_{i=2}^n\text{C}_i^2\)

点击查看代码
#include<bits/stdc++.h>
#define ll long long
#define endl '\n'
#define sort stable_sort
using namespace std;
const int N=1e5+10,P=998244353;
template<typename Tp> inline void read(Tp&x)
{x=0;register bool z=true;register char a=getchar_unlocked();for(;!isdigit(a);a=getchar_unlocked()) if(a=='-') z=0;for(;isdigit(a);a=getchar_unlocked()) x=(x<<1)+(x<<3)+(a^48);x=(z?x:~x+1);
}
template<typename T,typename ...Tp> inline void read(T &x,Tp &...y){read(x);read(y...);}
template<typename Tp> inline void wt(Tp x){if(x>9)wt(x/10);putchar_unlocked((x%10)+'0');}
template<typename Tp> inline void write(Tp x){if(x<0)putchar_unlocked('-'),x=~x+1;wt(x);}
template<typename T,typename ...Tp> inline void write(T x,Tp ...y){write(x);putchar_unlocked(' ');write(y...);}
int n,a[N]; ll ans,sum;
inline ll qpow(ll a,int b)
{ll res=1; for(;b;(a*=a)%=P,b>>=1) (b&1)&&((res*=a)%=P); return res;}
inline int mod(int x,int y) {return (x+=y)>=P?x-P:x;}
signed main()
{freopen("fft.in","r",stdin),freopen("fft.out","w",stdout);read(n); for(int i=1;i<=n;i++)read(a[i]),ans=mod(ans,a[i]*sum%P),sum=mod(sum,a[i]);sum=1; for(int i=2;i<=n;i++)(ans*=sum)%=P,(sum*=(i+1)*qpow(i-1,P-2)%P)%=P;return write(ans),puts(""),0;
}

T2 【模板】最近公共祖先

好像这种贪心加构造的题从来就没做出来过?

考虑跑出来一棵生成树,那么根据子节点有无非树边进行贪心,显然先选深度最大且有非树边的,没有非树边了之后就要和父亲连了,之后删掉这个点即可。

点击查看代码
#include<bits/stdc++.h>
#define ll long long
#define endl '\n'
#define sort stable_sort
using namespace std;
const int N=3e5+10;
template<typename Tp> inline void read(Tp&x)
{x=0;register bool z=true;register char a=getchar_unlocked();for(;!isdigit(a);a=getchar_unlocked()) if(a=='-') z=0;for(;isdigit(a);a=getchar_unlocked()) x=(x<<1)+(x<<3)+(a^48);x=(z?x:~x+1);
}
template<typename T,typename ...Tp> inline void read(T &x,Tp &...y){read(x);read(y...);}
template<typename Tp> inline void wt(Tp x){if(x>9)wt(x/10);putchar_unlocked((x%10)+'0');}
template<typename Tp> inline void write(Tp x){if(x<0)putchar_unlocked('-'),x=~x+1;wt(x);}
template<typename T,typename ...Tp> inline void write(T x,Tp ...y){write(x);putchar_unlocked(' ');write(y...);}
int n,m,tot=1,head[N],nxt[N<<1],to[N<<1]; bool vis1[N],vis2[N<<1];
struct aa {int x,y,z;}; vector<aa>ans; vector<int>e[N];
inline void add(int x,int y) {nxt[++tot]=head[x],to[tot]=y,head[x]=tot;}
inline bool dfs(int x,int t)
{if(vis1[x]) return 1; vis1[x]=1;for(int i=head[x],y;y=to[i];i=nxt[i]) if(y!=t&&!vis2[i]){vis2[i]=vis2[i^1]=1; if(dfs(y,x)) e[x].push_back(y);}for(int i=1;i<e[x].size();i+=2) ans.push_back({e[x][i],x,e[x][i-1]});if(!(e[x].size()&1)) return 1;if(t) ans.push_back({e[x].back(),x,t}); return 0;
}
signed main()
{freopen("lca.in","r",stdin),freopen("lca.out","w",stdout);read(n,m); for(int i=1,x,y;i<=m;i++) read(x,y),add(x,y),add(y,x);for(int i=1;i<=n;i++) if(!vis1[i]) dfs(i,0);write(ans.size()),puts(""); for(auto x:ans) write(x.x,x.y,x.z),puts("");
}

T3 【模板】普通平衡树

这是真结论题了,虽然结论很好证,但赛时光想着优化 DP 了,所以有时候 DP 做不了的要想想别的。

因为 \(x\) 互不相同啊,手玩一下发现答案就是 \(\sum\limits_{i=2}^{len-1}[a_{i-1}<a_i\wedge a_i>a_{i+1}]+[a_{i-1}>a_i\wedge a_i<a_{i+1}]\),这个东西可以线段树直接维护,具体的,分别维护两个左右端点,全是单点查所以没有 pushup 只有 pushdown,考虑 pushdown 下去的东西的一定在接在之前的后面,所以直接转移即可,特判 \(len<2\) 的情况。

点击查看代码
#include<bits/stdc++.h>
#define ll long long
#define endl '\n'
#define sort stable_sort
#define mid (l+r>>1)
#define ls (mid<<1)
#define rs (mid<<1|1)
using namespace std;
const int N=3e5+10;
template<typename Tp> inline void read(Tp&x)
{x=0;register bool z=true;register char a=getchar_unlocked();for(;!isdigit(a);a=getchar_unlocked()) if(a=='-') z=0;for(;isdigit(a);a=getchar_unlocked()) x=(x<<1)+(x<<3)+(a^48);x=(z?x:~x+1);
}
template<typename T,typename ...Tp> inline void read(T &x,Tp &...y){read(x);read(y...);}
template<typename Tp> inline void wt(Tp x){if(x>9)wt(x/10);putchar_unlocked((x%10)+'0');}
template<typename Tp> inline void write(Tp x){if(x<0)putchar_unlocked('-'),x=~x+1;wt(x);}
template<typename T,typename ...Tp> inline void write(T x,Tp ...y){write(x);putchar_unlocked(' ');write(y...);}
int n,m;
inline bool check(int x,int y,int z) {return (x<y&&y>z)||(x>y&&y<z);}
struct aa
{int len,num,l1,l2,r1,r2;inline aa() {len=num=l1=l2=r1=r2=0;}inline aa(int x) {len=1,num=0,l1=l2=r1=r2=x;}inline void operator += (aa const &a){if(!a.len) return ; if(!len) return *this=a,void();num+=(len>1&&check(r1,r2,a.l1)),num+=(a.len>1&&check(r2,a.l1,a.l2));len==1&&(l2=a.l1),r1=a.len==1?r2:a.r1,num+=a.num,len+=a.len,r2=a.r2;}
}t[N<<1];
inline void spread(int p,int l,int r) {t[ls]+=t[p],t[rs]+=t[p],t[p]=aa();}
inline void add(int p,int l,int r,int vl,int vr,int d)
{if(vl<=l&&vr>=r) return t[p]+=aa(d),void(); spread(p,l,r);if(vl<=mid) add(ls,l,mid,vl,vr,d); if(vr>mid) add(rs,mid+1,r,vl,vr,d);
}
inline int ask(int p,int l,int r,int x)
{if(l==r) return min(t[p].num+2,t[p].len); spread(p,l,r);return x<=mid?ask(ls,l,mid,x):ask(rs,mid+1,r,x);
}
signed main()
{freopen("odt.in","r",stdin),freopen("odt.out","w",stdout);for(read(n,m);m;m--){int op,l,r,x; read(op);if(op&1) read(l,r,x),add(1,1,n,l,r,x);else read(x),write(ask(1,1,n,x)),puts("");}
}

T4 【模板】平面最近点对

2-sat,不改。

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

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

相关文章

【论文精读】Lora

【论文精读】 Lora:Low-rank adaptation of large language models论文地址:Lora:Low-rank adaptation of large language models 年份:2021 引用量:8000+ 关键词:LLM的高效微调目录【论文精读】Lora:Low-rank adaptation of large language models1. 背景2. Lora方法3. 实…

2024-0xGame-WEB方向全题解

0xGame Round1 ez_rce 源码: from flask import Flask, request import subprocessapp = Flask(__name__)@app.route("/") def index():return open(__file__).read()@app.route("/calc", methods=[POST]) def calculator():expression = request.form.ge…

【开发】计算机延迟指标全解析:深入理解系统性能瓶颈

在计算机的世界里,“速度”一直是我们不懈追求的目标。从早期的计算机到如今的高性能设备,每一次技术进步都伴随着对速度的极致渴望。无论是处理器的运算速度,还是数据的传输与存储速度,都直接影响着我们使用计算机的体验。那你是否曾好奇,计算机中的“快”究竟是如何衡量…

SKILL脚本的加密与解密及使用

SKILL脚本一般是用.il 和 .ile 结尾的文件,一般设置为 .ile 结尾的文件是加密的,调用的时候需要密码。 SKILL脚本的加密: 用encrypt函数加密脚本,格式如下: encrypt("/apps/SC/skill-script/migrateDesign/MigrateDesign.il" "/apps/SC/skill-script/migr…

家具组装的智慧引导:智能工具与产品说明书的高效协作

在家具市场中,消费者在购买家具后往往需要自行组装。然而,传统的产品说明书往往存在信息表述不清、步骤繁琐等问题,给消费者的组装过程带来诸多不便。为了帮助消费者更轻松地完成家具组装,将HelpLook与家具产品的产品说明书相结合,成为了一个切实可行的解决方案。一、家具…

为何不呢?

你很强吗? 你很菜吗? 你紧张吗? 你会输吗? 你能别挂分吗? 你可以别焦虑吗? 你能对得起父母吗? 你能对得起自己吗? 你对自己有自信吗? 你能保持头脑清醒吗? 你能做到不留遗憾吗? 你能把该拿的分都拿到吗? 你能真正的投入到比赛中吗? 你能把自己的水平发挥出来吗? …

三角比简介 (单位圆,弧度,毕达哥拉斯三角恒等式的证明)

定理直角三角形的三角比倒数三角比 我们还要考虑这3个 1. 2. 3. 例子: 单位圆 -0.5是cos,0.87是sin 弧度简介 弧度和度数 例子: 度数到弧度(弧数到度数) 例子: 弧度角和象限 毕达哥拉斯三角恒等式的证明 例子:逆时针方向: 通常表示正角。 顺时针方向: 通常表示负角…

20222407 2024-2025-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 1.1 本周内容总结 使用了Metasploit框架,其是一个功能强大的渗透测试框架。在使用的过程当中,Metasploit 提供了种类繁多的攻击模块,涵盖了远程代码执行、服务拒绝、提权等多种攻击方式,支持对多种 操作系统和应用程序进行测试。除了漏洞利用,它还具备强大的后…

Mac打开指定路径的文件夹

访达中cmd+shift+G直接输入路径终端输入 open . 直接打开当前文件夹作者:iBrake出处:http://www.cnblogs.com/Brake/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

20222404 2024-2025-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 总结一下本周学习内容 了解了信息搜集在网络攻防中的重要性, 认识不同的信息搜集方法如WHOIS 查询、DNS 查询(dig、nslookup 等) 了解一些查询工具:dig 工具、nslookup 基于网络的信息搜集可以使用nmap,可使用端口、SYN、UDP等不通类型扫描。 2.实验过程 2.1获…

浅谈AXI协议及搭建自己的AXI IP核-01(协议解读)

一、什么是AXI协议? AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,AMBA包括以下几个部分:Advanced High-performance Bus (AHB):高性能总线,用于连接高性能主设备…