9.16 CSP-S模拟22 改题记录

news/2025/9/17 20:16:23/文章来源:https://www.cnblogs.com/OrangeLand/p/19094892

HZOJ

写在前面

连着两天吃了两坨。。。好吧,那就一坨一坨地消化一下吧。话说如果这真是S组难度那我不真就废了?这场真是T1猜结论题,T2就来坨大的,不知道啥是二分图暴力都不会打。T3反正就是我是大春竹。T4上演忘记结论创造结论,然鹅实际上还是不会写。没有文件输入输,没有多少部分分,真是一场special的比赛呢。至于昨天的挂分场,就在挂分场的改题记录里骂吧。好了好了,初赛还有4天,第二轮还有四十多天,只能祈祷一切顺利,加把劲吧。

《Eight》 So are you happy now, 所以你现在幸福了吗,

Finally happy now, are you?
你现在终究是幸福了吗,

뭐 그대로야 난,
那什么 也就那样吧我,

다 잃어버린 것 같아,
像是弄丢了一切,

모든 게 맘대로 왔다가 인사도 없이 떠나,
一切都随心所欲地到来 又悄无声息地离开,

이대로는 무엇도 사랑하고 싶지 않아,
照这样下去 我可能不会再爱上什么了,

다 해질 대로 해져버린,
旅行在那已破败不堪的,

기억 속을 여행해,
记忆之中,

우리는 오렌지 태양 아래,
我们在橙色太阳之下,

그림자 없이 함께 춤을 춰,
一同起舞 无形无影,

정해진 이별 따위는 없어,
在那没有注定了的离别,

아름다웠던 그 기억에서 만나,
曾经美好的记忆之中相遇,

Forever young,
永远年轻,

이런 악몽이라면 영영 깨지 않을게,
若是这样的噩梦 我愿长眠于此,

섬 그래 여긴 섬 서로가 만든 작은 섬,
岛屿 是的 这里是岛屿 我们彼此造就的小岛,

예 음 forever young 영원이란 말은 모래성,
不错 forever young 永远这两个字不过是转瞬即逝的沙堡,

작별은 마치 재난문자 같지,
诀别仿佛灾难警报,

그리움과 같이 맞이하는 아침,
与想念一同迎来的早晨,

서로가 이 영겁을 지나,
我们都度过了这永恒的劫难,

꼭 이 섬에서 다시 만나,
一定要在这座岛屿上再次相遇,

지나듯 날 위로하던 누구의 말대로 고작,
正如谁安慰我所说的那句,

한 뼘짜리 추억을 잊는 게 참 쉽지 않아,
回忆不过丝缕 可要想忘掉还真没那么容易,

시간이 지나도 여전히,
纵然时光流逝,

날 붙드는 그곳에,
那个地方却依旧紧紧攥住我,

우리는 오렌지 태양 아래,
我们在橙色太阳之下,

그림자 없이 함께 춤을 춰,
一同起舞 无形无影,

정해진 안녕 따위는 없어,
在那没有注定离别的,

아름다웠던 그 기억에서 만나,
曾经美好的记忆之中相遇,

우리는 서로를 베고 누워,
我们枕在彼此身上,

슬프지 않은 이야기를 나눠,
分享着不算悲伤的故事,

우울한 결말 따위는 없어,
没有伤感的结局,

난 영원히 널 이 기억에서 만나,
我与你永远在那记忆中相遇,

Forever young,
永远年轻,

이런 악몽이라면 영영 깨지 않을게,
若是这样的噩梦 我愿长眠于此。

T1 木棍

显然猜结论题。注意到先用长度大的一定更优,因为长度小的灵活性更高,但每组成长度10消耗得也更多。

T2 环

至今没有搞懂题意。二分图是啥?——以鄙人粗浅的理解,二分图大概就是能将点分为两个部分的图,各部分内的点间不存在边,两部分间点间存在边。

读假题了。。。(虽然没读假也不会做)题意大概是给定一张二分图,左端的第\(i\) 个点连接右边的\(1 - a_i\) 个点。求问该二分图上存在多少个环。

赛时没有任何思路,那就直接上题解思路吧。不大看得懂,就随便把自己不一定正确的理解写一下吧。首先显然点的位置与连的边没有必然联系,为了方便寻找规律和统计答案,我们可以先将\(a_i\) 从小到大排序。既然\(a_i\) 有了顺序,那就考虑dp。设计状态\(dp_{i,j}\) 表示前\(i\) 个点\(j\) 条有向路径的方案数。形成回路那路径数就为1,那对答案的贡献就为\(dp_{i,1}\)。考虑转移。转移就需要建出新点,再将路径进行合并。统计答案在建点之后,注意减去未形成环部分的贡献。正反向路径应该只算一条,所以最后答案要除以2。

代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=5e3+10,mod=998244353;
int jc[maxn],ny[maxn],n,a[maxn],dp[maxn][maxn];
inline int qpow(int x,int y){int res=1;while(y){if(y&1) res=1ll*res*x%mod;x=1ll*x*x%mod;y>>=1;}return res;
}
inline int C(int x,int y){if(x<y) return 0;return 1ll*jc[x]*ny[y]%mod*ny[x-y]%mod;
}
int main(){cin>>n;jc[0]=ny[0]=1;for(int i=1;i<=n;i++) cin>>a[i],jc[i]=1ll*jc[i-1]*i%mod,ny[i]=qpow(jc[i],mod-2);sort(a+1,a+n+1);dp[0][0]=1;int ans=0;for(int i=1;i<=n;i++){int d=a[i]-a[i-1];//新增点数/边数 for(int j=0;j<=a[i];j++)for(int k=max(0,j-d);k<=j;k++) dp[i][j]=(dp[i][j]+1ll*dp[i-1][k]*C(d,j-k)%mod)%mod;// 添加点/边 ans=(1ll*ans+dp[i][1]-a[i]+mod)%mod;// 添加贡献并减去未形成环部分的贡献 for(int j=0;j<=a[i];j++) dp[i][j]=(dp[i][j]+1ll*dp[i][j+1]*j%mod*(j+1)%mod)%mod;// 选择路径合并 }cout<<1ll*ans*qpow(2,mod-2)%mod;//正向反向路径只能算一次,故要除以2 return 0;
}

T3 传令

题意是有一棵树,可选\(k\) 个点作为起点染色。每秒被染色的点可将其相邻的点染色。问最小的将所以节点染色的时间是多少。

赛时日常犯糖,唐人思路没啥意义就不写了吧。可以考虑二分+贪心。二分结束时间,每次将深度最深的节点的\(k\) 级祖先染色。删去所有被染色的点后继续上一步操作。如果将整棵树染完色主动染色次数不大于\(k\) 即合法。(赛时没这么写是因为没想到如何check。。。)

具体来说每次check进行树形dp。记录两个值:\(depmx_x\) 记录当前子树内最深没被染色的点的深度,\(g_x\) 记录当前点(包括)最多可以向外扩展的点数。在遍历子树时取最大值即可。当某个节点的\(depmx_x-dep_x\) 不大于 \(g_x\),说明其子树中的某个点可以将该点子树中未被染色的点全染上色,不必再主动染色,将\(depmx_x\) 赋值为0即可。如果前者大于后者并且\(depmx_x-dep_x\) 已经等于阈值了,就代表这个点必须进行主动染色,将操作次数加一并将\(depmx_x\) 赋值为0并将\(g_x\) 赋值为阈值即可。剩余的情况就是最深的未被染色的节点没有大于阈值,后续某个被主动染色的节点可能会将其染色,故只向上传值即可。

Warnings:
1.\(g_x\) 初始要赋为极小值且不能为0,因为为0就会导致从叶节点到根节点每个节点自己将自己被动染色。
2.更新\(g_x\) 时记得减1。
3.注意特判根节点未被覆盖的情况,将操作数加一。

代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
int n,k;
int tot,to[maxn<<1],nxt[maxn<<1],h[maxn];
inline void adde(int x,int y){to[++tot]=y;nxt[tot]=h[x];h[x]=tot;
}
int depmx[maxn],g[maxn];
int sum,mid;
inline void dfs(int x,int dp,int f){depmx[x]=dp;g[x]=-1e9;for(int i=h[x];i;i=nxt[i]){int y=to[i];if(y==f) continue;dfs(y,dp+1,x);depmx[x]=max(depmx[x],depmx[y]);g[x]=max(g[x],g[y]-1);}if(g[x]>=depmx[x]-dp) depmx[x]=0;else if(depmx[x]-dp==mid) ++sum,depmx[x]=0,g[x]=mid;
}
inline bool check(){sum=0;dfs(1,1,0);if(depmx[1]) ++sum;return sum<=k;
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n>>k;for(int i=1,u,v;i<n;i++) cin>>u>>v,adde(u,v),adde(v,u);int l=0,r=n;while(l<=r){mid=(l+r)>>1;if(check()) r=mid-1;else l=mid+1;}cout<<l;return 0;
}

T4 序列

题意是给定一个序列,给定一个对于合法的定义:存在一段长度为\(k\) 的区间值域为\(1-k\) 的连续段。求问所有长度为\(n\) 的彩色序列中给定序列共出现了多少次(包括重叠的)。

直接上题解思路吧。考虑正难则反和分类讨论。

当给定序列满足合法序列要求

该类包括该序列是合法的或者该序列的子序列是合法的。该种情况下可以随便填。方案数就为枚举填的数和枚举序列出现的位置。对于一个序列多贡献漏算,会有重复序列的贡献补上。

当给定序列不含重复对

分别计算向前和向后扩展的方案数,然后用总方案数减去不合法方案数即可。

当给定序列包含重复对

先算出给定序列的最长不重复前后缀,然后计算。

(写这么水是因为一些原因所以我写这么水)

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

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

相关文章

AT_agc058_b [AGC058B] Adjacent Chmax

转化为对某个区间染色,然后设 \(f_{i, j}\) 为前 \(i\) 种颜色染了 \([1, j]\) 的方案数,简单转移即可。

Jenkins CVE-2018-1000600漏洞利用与SSRF攻击分析

本文详细分析了Jenkins GitHub插件CVE-2018-1000600漏洞的利用方法,通过CSRF漏洞和权限缺失实现凭证窃取与完全响应SSRF攻击,包含PoC代码和影响版本范围说明。Jenkins - CVE-2018-1000600 PoC 来源博客文章 https://blog.orange.tw/2019/01/hacking-jenkins-part-1-play-with…

NOIP 集训日记(学术)

workwork学术版。 9.9 P4117 [Ynoi2018] 五彩斑斓的世界 分块神题。 拿到题以后发现不能直接做,然后你就开始观察。 设区间最大值为 \(maxn\) ,查询的数为 \(x\) 一个显然的性质:把所有小于等于 \(x\) 的数加上 \(x\) ,然后区间减 \(x\) ,得到的结果不变。然后我们思考一下…

linux中mysql如何远程连接

linux中mysql如何远程连接 两个步骤: 第一:让root允许远程登录 update user set host = % where user = root;第二:给予root用户最大数据库权限 grant all privileges on *.* to root@% identified by 123456; flush privileges;实操: [root@bogon ~]# mysql -uroot -p1234…

详细介绍:Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测

详细介绍:Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

深入解析:PYcharm——pyqt音乐播放器

深入解析:PYcharm——pyqt音乐播放器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important…

威联通NAS如何导入本地docker镜像

威联通NAS如何导入本地docker镜像 【前言】:有一段时间没有维护NAS docker了,笔记本电脑坏了更换后重新配置开发环境,也就没去折腾这些,有些命令忘记了,重新整理一下,输出驱动输入,还可能帮助到。欢迎大家一起友好讨论, 祝好: 【摘要】:本文主要围绕威联通NAS如何导入…

基本数据类型题目

1、列表的操作可变的数据类型,增删改查等操作都可以进行1、案例1fruits=[苹果, 香蕉, 橙子, 葡萄, 西瓜]向列表中添加两种新水果:菠萝和芒果从列表中删除香蕉元素将列表中的橙子改为柑橘检查葡萄是否在列表中,并返回其索引fruits = [apple, banana, apple, orange, banana, …

2025.9.17

卷2选择 位运算 位运算的优先级很低,没有括号时运算顺序靠后。

mysql库缺失

mysql库缺失libncurses.so.5和libtinfo.so.5 报错信息: mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory;mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared obj…

flask简单路由(视图函数)

简单路由(视图函数) 简单返回html @app.route(/tmp) def tmp_page(): # 函数名为tmp_page,对应url_for(tmp_page)return render_template(tmp.html)@app.route(/Custom_routing) def Custom_routing_page(): return render_template(/Custom_routing/index.html) # Custom…

【学习笔记】拉格朗日插值

EZ、什么是拉格朗日插值? 众所周知,\(n+1\) 个点可以唯一确定一个 \(n\) 次多项式。 拉格朗日插值法要解决的就是给定 \(n+1\) 个点确定一个多项式 \(f(x)\),求出在自变量 \(x=k\) 时多项式的取值。 拉格朗日插值法的思想和 CRT 非常像——把每一个维度独立拆开来。 考虑对一…

一种基于动作指令交互的动态活体检测技术,提升人脸识别安全性

在当今数字化时代,人脸识别技术已广泛应用于金融支付、门禁考勤、手机解锁等关键场景,其便捷性深受用户青睐。然而,随之而来的安全风险也日益凸显:高精度的照片、屏幕翻拍、甚至3D面具等攻击手段层出不穷,令传统的静态人脸识别技术面临严峻挑战。为了构筑更加坚固的安全防…

[系统] Windows 已有office版本和visio不兼容的解决方案

最近IC相关论文想用VISIO来画图,但是遇到了如下痛点:VISIO软件的安装必须与现有Office一致,例如现有word等均为32bit,VISIO也必须使用32bit的安装包; 同为32/64bit安装时报错“Office 16 Click-to-Run Extensibility Component”,这种情况需要输入regedit,打开注册表,依…

CF 2127F Hamed and AghaBalaSar

通过枚举破除限制,贡献拆分,等价思考,容斥怎么拆贡献又把自己拆乱了,我也是完蛋了。 首先考虑这个 \(f(a)\) 是什么。 发现跳(仅限第一个操作)的时候形如 \(x\to nxt(x)\to nxt(nxt(x))\to \cdots\),贡献就为 \((a_{nxt(x)} - a_x) + (a_{nxt(nxt(x))} - a_{nxt(x)})\)。…

AT_agc055_b [AGC055B] ABC Supremacy

一眼为学了 trick 不会用。 这种题考虑钦定代表元两边往中间靠。 你思考一下发现任意一个 \(ABC, BCA, CAB\) 可以在序列里任意乱跑,于是你可以把起始状态和最终状态的这种东西全部提前,我们只需要看剩下的部分是否一样就好。 属于是脑电波题。

“Sequential Thinking MCP Server 和codex等AI工具本身任务拆解功能对比

从你提供的文件内容来看,这个工具是一个名为“Sequential Thinking MCP Server”的工具,它用于通过结构化的思考过程解决问题。以下是对它与Codex或Claude Code CLI本身任务拆解功能的不同之处的分析: 功能定位Sequential Thinking MCP Server:专注于通过动态和反思性的思考…

基于错误xsleak 悬空标记 运用css利用帧计数 -- Pure leak ASIS CTF 2025

基于错误xsleak 悬空标记 运用css利用帧计数 -- Pure leak ASIS CTF 2025pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courie…

网易伏羲:当算法遇见社交,解码游戏世界的连接密码

日前,2025游戏安全与创新大会圆满召开,大会以“AI融合创新”与“全链路安全防护”为双主线,聚焦游戏策划与运营核心问题,深度解析AI与游戏结合的提效、玩法及体验升级路径;同时直面开发、运营、发行、支付、出海等阶段的关键挑战,涵盖作弊、合规、欺诈等议题,助力从业者…