2025.10.23考试记录

news/2025/10/23 18:53:35/文章来源:https://www.cnblogs.com/Fallinggardenia/p/19161409

T1

题意

将给定的正整数 \(n\),表示为只包含数字 \(1\) 的加数的和,每个加数可正可负。

分析

看起来是一道构造题,令 \(a_i\) 表示由 \(i\)\(1\) 组成的正整数,注意到每个 \(a_i\) 的使用次数都可以通过增加 \(a_{i+1}\) 的使用次数来减少,暴力 \(dfs\) 是否利用 \(a_{i+1}\) 优化即可,考场上想出正解,期望得分 \(100pt\),实际得分 \(100pt\)

Code

#include<iostream>
#include<vector>
#include<algorithm>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
long long n,ans=0x3f3f3f3f3f3f3f3f;
vector<long long>num={0,1,11,111,1111,11111,111111,1111111,11111111,111111111,1111111111,11111111111,111111111111,1111111111111,11111111111111,111111111111111,1111111111111111};
void Dfs(int dep,long long t,long long sum)
{if(!dep){ans=min(ans,(t?0x3f3f3f3f3f3f3f3f:sum));return;}int tmp=lower_bound(num.begin(),num.end(),t)-num.begin();Dfs(dep-1,(num[tmp]-t)%num[dep],sum+(num[tmp]-t)/num[dep]*dep+tmp),Dfs(dep-1,t%num[dep],sum+t/num[dep]*dep);
}
int main()
{freopen("one.in","r",stdin);freopen("one.out","w",stdout);IOS,cin>>n,Dfs(16,n,0),cout<<ans<<'\n';return 0;
}

T2

题意

给定一棵 \(n\) 个节点的树,\(m\) 次操作,每次操作删除一条边或查询以某个点为起点的最长路径长度。

分析

删边不好写,考虑并查集经典应用,把操作离线下来,删边改成加边,而询问操作其实是在问 \(x\) 所在子图的直径端点,因为最长路径另一段一定是直径两端点之一。

那么问题转向如何在合并操作时维护集合的直径,注意到合并后新集合的直径端点必然也是原本两集合中的直径端点,故只需要对这四个点两两求路径长度即可。求路径长度必然要使用 \(LCA\),这里可以直接使用原树上的 \(LCA\),原因是树上路径唯一,只要 \(x,y\) 两点连通,那二者在任意时刻的 \(LCA\) 一定是原树上的 \(LCA\)。考场上写的 \(O(1)\) 修改 \(dfs\) 暴力查询加上链的特判,期望得分 \(40pt\),实际得分 \(80pt\),猜测可能是因为删边操作让每次 \(dfs\) 需要遍历的连通块大小变小,跑不满 \(O(n)\),当然可能也有数据过水的原因。

Code

#include<iostream>
#include<utility>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
const int N=5e5+5;
const int LogN=20;
int n,m,head[N],nxt[N<<1],to[N<<1],cnt=0,dep[N],father[N][LogN],leader[N],ans[N];
bool vis[N];
pair<int,int>Edge[N];
struct Node
{int pa,pb,dia;
}Tree[N];
struct Data
{int opt,x;
}Ques[N];
void Add(int u,int v)
{to[++cnt]=v;nxt[cnt]=head[u];head[u]=cnt;
}
void Dfs(int u,int fa)
{dep[u]=dep[fa]+1,father[u][0]=fa;for(int i=1;i<LogN;i++)father[u][i]=father[father[u][i-1]][i-1];for(int i=head[u];i;i=nxt[i]){int v=to[i];if(v==fa) continue;Dfs(v,u);}
}
int LCA(int u,int v)
{if(dep[u]<dep[v]) swap(u,v);for(int i=LogN-1;i>=0;i--)if(dep[father[u][i]]>=dep[v])u=father[u][i];if(u==v) return u;for(int i=LogN-1;i>=0;i--)if(father[u][i]!=father[v][i])u=father[u][i],v=father[v][i];return father[u][0];
}
int Dis(int u,int v)
{return dep[u]+dep[v]-2*dep[LCA(u,v)];
}
int Find(int k)
{if(leader[k]!=k) return leader[k]=Find(leader[k]);return k;
}
void Merge(int u,int v)
{int fu=Find(u),fv=Find(v);leader[fu]=fv;Node res=(Tree[fu].dia>Tree[fv].dia?Tree[fu]:Tree[fv]);int maxx=Dis(Tree[fu].pa,Tree[fv].pa);if(res.dia<=maxx)res=(Node){Tree[fu].pa,Tree[fv].pa,maxx};maxx=Dis(Tree[fu].pa,Tree[fv].pb);if(res.dia<=maxx)res=(Node){Tree[fu].pa,Tree[fv].pb,maxx};maxx=Dis(Tree[fu].pb,Tree[fv].pa);if(res.dia<=maxx)res=(Node){Tree[fu].pb,Tree[fv].pa,maxx};maxx=Dis(Tree[fu].pb,Tree[fv].pb);if(res.dia<=maxx)res=(Node){Tree[fu].pb,Tree[fv].pb,maxx};Tree[fv]=res;
}
int main()
{freopen("tree.in","r",stdin);freopen("tree.out","w",stdout);IOS;cin>>n>>m;for(int i=1;i<n;i++){int u,v;cin>>u>>v;Add(u,v),Add(v,u);Edge[i]={u,v};}for(int i=1;i<=m;i++){cin>>Ques[i].opt>>Ques[i].x;if(Ques[i].opt==1) vis[Ques[i].x]=true;}Dfs(1,0);for(int i=1;i<=n;i++)leader[i]=i,Tree[i]={i,i,0};for(int i=1;i<n;i++)if(!vis[i]) Merge(Edge[i].first,Edge[i].second);for(int i=m;i>=1;i--){if(Ques[i].opt==1) Merge(Edge[Ques[i].x].first,Edge[Ques[i].x].second);else ans[i]=max(Dis(Ques[i].x,Tree[Find(Ques[i].x)].pa),Dis(Ques[i].x,Tree[Find(Ques[i].x)].pb));}for(int i=1;i<=m;i++)if(Ques[i].opt==2) cout<<ans[i]<<'\n';return 0;
}

T3

题意

给定正整数 \(n\),构造 \(n\) 个节点的无向连通图,令第 \(i\) 个点到点 \(1\) 的距离为 \(d_i\),满足 \(\forall i \in [1,n-1],d_i < d_n\),求满足条件的图的数量。

分析

考虑把 \(n\) 个点分布在 \(k\) 层上,第 \(i\) 层与点 \(1\) 的距离是 \(i\),第 \(0\) 层只有点 \(1\),第 \(k\) 层只有点 \(n\),这样就保证了 \(d_n\) 严格最大。

那么剩下的就是一个组合问题,把 \(n-2\) 个点分布至 \(k-1\) 层,保证每层不为空,且层与层之间至少有一条连边的连边方案数。由于层内连边不影响最短路径的长度,所以在这一点上不加以限制。设置状态 \(f_{s,x}\) 表示已经放了 \(s\) 个点,最后一层点数为 \(x\) 的方案数,那么考虑由 \(f_{s,x}\)\(f_{s+y,y}\) 的转移,从剩下的点里选出 \(y\) 个点的方案数是 \(C_{n-2-s}^y\) 种,层内连边 \(2^{C_y^2}\) 种方案,两层之间共可以连 \(xy\) 条边,层间连边方案数 \(2^{xy}-1\) (保证至少连一条边),使用乘法原理计算。那么答案就是 \(\Sigma_{i=1}^{n-2} f_{n-2}^i \times (2^{n-2}-1)\)。考场上想到正解,期望得分 \(100pt\) 实际得分 \(100pt\)

Code

#include<iostream>
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0),cout.tie(0)
using namespace std;
const int MOD=1e9+7;
const int N=1005;
int n;
long long fac[N],inv[N],pow2[N],pow2C[N],a[N][N],f[N][N],ans=0;
long long quick_pow(long long a,long long b)
{long long res=1,base=a;while(b){if(b&1) res=res*base%MOD;base=base*base%MOD;b>>=1;}return res;
}
void init(int maxx)
{fac[0]=1;for(int i=1;i<=maxx;i++)fac[i]=fac[i-1]*i%MOD;inv[maxx]=quick_pow(fac[maxx],MOD-2);for(int i=maxx-1;i>=0;i--)inv[i]=inv[i+1]*(i+1)%MOD;pow2[0]=1;for(int i=1;i<=maxx;i++)pow2[i]=pow2[i-1]*2%MOD;for(int i=0;i<=maxx;i++)pow2C[i]=quick_pow(2,i*(i-1)/2);for(int i=1;i<=maxx;i++){long long base=(pow2[i]-1+MOD)%MOD;a[i][1]=base;for(int j=2;j<=maxx;j++)a[i][j]=a[i][j-1]*base%MOD;}
}
int main()
{freopen("graph.in","r",stdin);freopen("graph.out","w",stdout);IOS;cin>>n;init(n-2);f[0][1]=1;for(int s=1;s<=n-2;s++){for(int x=1;x<=s;x++){long long tmp=0;for(int y=1;y<=n-2;y++)if(s-x>=0) tmp=(tmp+a[x][y]*f[s-x][y])%MOD;f[s][x]=pow2C[x]*inv[x]%MOD*tmp%MOD;}}for(int i=1;i<=n-2;i++)ans=(ans+f[n-2][i])%MOD;cout<<ans*fac[n-2]%MOD<<'\n';return 0;
}

T4

题意

定义序列大小的比较方式,对在 \(A,B\) 两个序列中出现的元素从小到大考虑,对于元素 \(x\),若其在 \(A\) 中出现的次数大于在 \(B\) 中出现的次数,则序列 \(A\) 更大,反之亦然。对于给定的长度为 \(n\) 的序列,求其排名为 \(k\) 的子序列。

分析

据说是道黑题,考场上写了个暴力排序,期望得分 \(40pt\),实际得分 \(40pt\),小数据范围给的分意外的多,看题解写的是随机二分,目前还没订正。

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

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

相关文章

低代码如何成为业务与IT的沟通桥梁?破解数字化转型中的协作难题

在企业数字化转型的漫长旅途中,最令人疲惫的或许不是技术的复杂度,而是沟通的摩擦力。业务部门用“市场语言”描绘着一幅宏伟蓝图,而IT部门用“技术语言”回应着一串现实约束。双方都在为同一个目标努力,却仿佛说着…

2025铁氟龙/极细铁氟龙/UL系列高温线厂家推荐明秀电子,专业耐用品质保障!

2025铁氟龙/极细铁氟龙/UL系列高温线技术突破与行业趋势分析 在电子设备日益精密化、微型化的今天,高温线材作为关键连接组件,其性能表现直接影响整个系统的可靠性和使用寿命。铁氟龙高温线、极细铁氟龙线以及UL1006…

LIS 略解

这是一个非常经典的问题。 有两种解法,一种是 \(\mathcal O(n ^ 2)\) 的动态规划做法,一种是 \(\mathcal O(n \log n)\) 的贪心做法。动态规划做法设 \(dp_i\) 为以第 \(i\) 个数字结尾的最长单调增加序列。 然后枚举…

低代码如何引爆全员创新?揭秘技术民主化背后的蒲公英效应

创新,对于许多企业而言,曾是一种奢侈的、被集中管理的资源。它通常被禁锢在特定的研发部门或创新实验室里,依赖于少数“天才”的灵光一现。然而,在当今瞬息万变的市场环境中,这种“中心化”的创新模式已显得力不从…

低代码如何重塑IT部门价值?

在传统的企业财务报表上,IT部门常常被归类为“成本中心”。这个标签背后,是无数个日夜的加班运维、应对不完的业务需求、以及难以量化的价值输出。IT团队深陷于开发“救火”和系统“补漏”的循环中,虽有苦劳,却难论…

2025工业冰水机/冷水机厂家推荐东莞市凯诺机械,高效制冷稳定运行

2025工业冰水机/冷水机厂家推荐:高效制冷稳定运行新标杆 当前工业温控设备领域的技术挑战与突破 工业冰水机、工业冷水机作为现代制造业不可或缺的温控设备,正面临着前所未有的技术挑战。根据行业数据显示,传统工业…

2025小型低温/工业/风冷/一体式螺杆冷冻机厂家推荐:东莞凯诺机械专业制冷解决方案

2025小型低温/工业/风冷/一体式螺杆冷冻机厂家推荐:东莞凯诺机械专业制冷解决方案 在工业制冷领域,小型低温冷冻机、工业风冷机组和一体式螺杆冷冻机正面临着前所未有的技术挑战。随着2025年制造业升级的加速推进,这…

2025水冷螺杆/风冷螺杆冷水机厂家推荐东莞市凯诺机械,高效制冷稳定可靠

2025水冷螺杆/风冷螺杆冷水机厂家推荐东莞市凯诺机械,高效制冷稳定可靠 在工业制冷领域,水冷螺杆和风冷螺杆冷水机作为关键温控设备,其性能表现直接关系到生产效率和能源消耗。随着2025年能效标准的逐步实施,行业面…

(例题)HTTPS 电商商品页抓包与关键数据提取

HTTPS 电商商品页抓包与关键数据提取 实践目标 1.成功抓取京东商品详情页的 HTTPS 请求 2.从响应体中提取商品名称、库存关键数据 前置条件 1.Fiddler 已完成 HTTPS 证书配置(根证书安装并信任) 2.电脑浏览器代理已指…

qoj.4878 Easy Problem 做题记录

高手。link 惯性思维很容易想到 Hall 定理 + 线段树 去处理,我一直想了 2h+,事实上有另外一种思路。 由于保留的所有区间都覆盖了位置 \(i\),我们考虑贪心做最大匹配:从左到右扫描每个位置,优先用 \(r\) 小的区间…

LLM学习笔记DAY10

📘 大语言模型全面学习笔记 一、大语言模型评测体系 1.1 常见评测指标任务类型 评测指标 说明分类任务 精确率、召回率、F1 基于混淆矩阵计算语言建模 困惑度(PPL) 衡量文本建模概率文本生成 BLEU、ROUGE 衡量与参…

日志级别

日志级别日志级别(Log Levels) 🔊 五种日志级别(从低到高):级别 含义说明 使用场景TRACE 追踪,最详细 用于追踪程序执行的每一步,如方法入参、变量变化。DEBUG 调试,用于诊断问题 记录流程细节,如“用户登录…

noipd8t2 - Slayer

要理解这段代码,需结合题目要求和题解的逆变换 + 辗转相除思路,逐部分分析:题目核心与题解思路 回顾题目要求:给定两个线性变换 \(T1((x,y))=(x+y,y)\)、\(T2((x,y))=(x,x+y)\),对于每个查询向量 \((x,y)\),统计…

OJ模拟面试3(异步判题架构)

1、请详细描述一条判题消息从生产到消费的完整生命周期。你在生产者端、Broker端和消费者端分别做了哪些具体配置和编码保证? 这是一个考察消息队列端到端可靠性的经典问题。我的设计目标是:消息绝不能丢。生产者端 …

Edge浏览器网页设置深色模式(仅搜索结果界面)

偶然清除了Edge的浏览数据后发现搜索结果界面变成了白色,很不适应,于是在网络搜索,基本都非常相似,主要分为两种方法Edge浏览器网页设置深色模式/暗模式的小技巧_网页深色模式-CSDN博客①在Edge浏览器打开edge://f…

2025 年 AI 编程工具 TOP5 排名:谁在重新定义研发效率?

当 “写代码” 从 “手动敲” 变成 “AI 帮你想”,研发效率的天花板被彻底打破。2025 年最新出炉的 AI 编程工具排名,不仅是技术实力的较量,更是企业降本增效的 “选型指南”—— 这 5 款工具,已经帮数万家企业实现…

请求中断的原理与分类

本文分享自天翼云开发者社区《请求中断的原理与分类》.作者:尹****聪 1 中断的原理 在nginx中所有的http请求是流式的处理逻辑,当client发出一个请求后,nginx把请求代理到upstream上。如果upstream已经返回了200 OK…

LLM学习笔记DAY9

大语言模型学习笔记 一、大语言模型的局限性 1.1 规划能力不足示例:汉诺塔问题中步骤错误,缺乏校验与修正机制。 需引入规划策略与反思检查策略。1.2 知识时效性与计算能力不足示例:GPT-4回答“美国总统”错误,数值…

【Go】go学习笔记

# 一、Go基础 ## 1. 编译运行 ``` go // 构建二进制文件 go build hello.go ./hello.gogo run hello.go ```## 2. 数据类型 - 布尔型 - 数字类型 - 字符串 - 派生类型- 指针 pointer- 数组- 结构化类型 struct- channe…

破局内容运营效率:2025 微信编辑器 10 款深度测评

破局内容运营效率:2025 微信编辑器 10 款深度测评2025微信编辑器AI革命:全链路解决方案重塑内容生产 一、引言:运营者的效率焦虑与工具迭代机遇 2025年新媒体行业进入“精耕细作”阶段,一篇爆款推文不仅需要优质内…