2024.10.24 The 2021 ICPC Northwestern Russia Regional Contest
Solved:8/14
Penalty:909
Rank:23
前五道签到题 ABCHL。
K. Kaleidoscopic Route
题意
给一张带边权的图,求一条1到n的路径,使经过的边数最少的同时边的极差最大。
题解
求出最短路图,然后DAG上dp:f和g分别表示从1到这个点能经过的最大边权和最小边权。然后每转移一条边(x,y,z)就用g[x]-z和z-f[x]分别更新答案。输出方案就分别记一下f和g转移的前一个点就行。
经典说起来容易写起来难。。
D. Day Streak
题意
给一个数组
题解
首先本质不同的
当
因此我们需要支持单点修改和维护最长连续段。
连续段可以用【珂朵莉树】来维护。即维护一个 set<pair<int,int>>,存储所有连续段。每次单点修改等于插入一个点和删除一个点,插入即合并左右两个连续段(如果有),删除即把它所在的连续段拆成两短。额外再维护一个set存所有连续段的长度。
int n,m,a[N]; map<int,vector<int>> mp; map<int,int> val; set<pii> s; multiset<int> len; void insert(int x){ auto it=s.lower_bound(pii(x,x)); int L=x,R=x; vector<pii> tmp; if(it!=s.end()&&it->first==x+1)R=it->second,tmp.push_back(*it); if(it!=s.begin()){ --it; if(it->second==x-1)L=it->first,tmp.push_back(*it); } for(auto p:tmp)s.erase(p),len.erase(len.find(p.second-p.first+1)); s.insert(pii(L,R)),len.insert(R-L+1); } void erase(int x){ auto it=s.lower_bound(pii(x+1,-1)); --it; int L=it->first,R=it->second; s.erase(it),len.erase(len.find(R-L+1)); if(L<x)s.insert(pii(L,x-1)),len.insert(x-L); if(R>x)s.insert(pii(x+1,R)),len.insert(R-x); } void solve(){ cin>>n>>m; mp.clear(); val.clear(); s.clear(); len.clear(); for(int i=1;i<=n;++i){ cin>>a[i]; if(a[i]%m)mp[m-a[i]%m].push_back(i); a[i]/=m; if(!val[a[i]])insert(a[i]); ++val[a[i]]; } int ans=*len.rbegin(),anst=0; for(auto [x,e]:mp){ for(int i:e){ --val[a[i]]; if(!val[a[i]])erase(a[i]); if(!val[a[i]+1])insert(a[i]+1); ++val[a[i]+1]; } if(ans<*len.rbegin())ans=*len.rbegin(),anst=x; } cout<<ans<<' '<<anst<<'\n'; }
E. Extreme Problem
题意
给定函数在
题解
玩数(值)分(析)玩的!
只有八种数据,直接手玩构造:
无重复极值,无平台:x+y
无重复极值,有平台:0
有重复极小值,无平台:令重复极小值为 (-1,0) 和 (1,0),为了让两个都是极小再加一个极值点 (0,0)。对x的偏导数是
有重复极大值,无平台:上面的取负号。
有重复极小值,有平台:令重复极小值为 (-2,0) 和 (2,0),平台是 (0,0) 周围五个数。那么 x 方向需要有三个零点 -1,0,1,因此有因子
有重复极大值,有平台:上面的取负号。
有重复极大极小值,无平台:令重复极值为 (-2,0),(-1,0),(1,0),(2,0),同上。结果是
有重复极大极小值,有平台:令重复极值为 (-3,0),(-2,0),(2,0),(3,0),同上。结果是
7 发罚时有一半都是被前缀表达式格式偷袭的。。。偷懒不写表达式转换器是这样的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现