NOIP2025模拟1

news/2025/11/4 20:59:14/文章来源:https://www.cnblogs.com/countryhuman/p/19191404

T1:公司的供应链(dag)

思路:

大概就是推出性质但是没写出来。

我们不难发现,对于一个环来说,把环内全部的边删掉是合法的。

然后我们就从一个点开始搜,如果没有环,就把经过的边都标记一下,这是要保留的。然后再记录一下走过的边数,保证每个环只经过一次。

代码:

$code$
#include<iostream>
#include<vector>
using namespace std;
const int N=600000+5;
int n,m,cnt[N],f[N],x[N],y[N],ans;
bool vis[N];
vector<pair<int,int>> v[N];
inline int dfs(int x){if(vis[x]) return x;//有环 vis[x]=1;while(cnt[x]<(int)v[x].size()){int flag=dfs(v[x][cnt[x]].second);if(!flag) f[v[x][cnt[x]].first]=-1;//标记保留的边 cnt[x]++;//走过的边数 if(flag!=x&&flag){//后面有个小环 vis[x]=0;return flag;}}vis[x]=0;return 0;//无环 
}
int main(){
//	freopen("dag.in","r",stdin);
//	freopen("dag.out","w",stdout);ios::sync_with_stdio(false);cin>>n>>m;for(int i=1;i<=m;i++){cin>>x[i]>>y[i];v[x[i]].push_back(make_pair(i,y[i]));//建边 }for(int i=1;i<=n;i++) if(cnt[i]<(int)v[i].size()) dfs(i);//还有边没走 for(int i=1;i<=m;i++) if(f[i]==-1) ans++;cout<<ans<<'\n';for(int i=1;i<=m;i++) if(f[i]==-1) cout<<x[i]<<" "<<y[i]<<'\n';return 0;
}

T2:宇宙的卷积(juanji)

思路:

大概就是赛时两眼一闭数组就开 \(20\) 然后挂了 \(60 ~ pts\) 吧。

有没有大佬给我讲讲 \(T2\) 啊!!真的不会啊!!

T3:舰队的远征(far)

思路:

看眼式子有点像李超,但是马上自我否定了。最后选择跑了 \(n^2\)\(dij\)

其实就是把路径分为三部分:

\[s→x=>y→t \]

\(x,y\) 之间的边是我们新建的特殊边。

怎么求答案呢?

正着跑一边最短路求出到 \(s\) 的最短路,反着求一遍最短路到 \(t\) 的最短路,然后维护一下 \((x-y)^2\)

然后答案是什么呢?

\[dis1_x+dis2_y+(x-y)^2 \]

整理一下,可得

\[dis1_x+x^2+dis2_y+y^2-2*x*y \]

我们枚举每一个 \(x\) ,因此 \(dis1_x+x^2\) 为定制,所以我们只需要维护 \(dis2_y+y^2-2*x*y\) 就好了。

用什么维护呢?用我否定了的李超线段树。【对不起】

然后呢?

然后就没了。

感谢 Wx_y大侠 的博客(就是能不能换个题目🥺)

代码:

$code$
#include<iostream>
#include<queue>
#define int long long
using namespace std;
const int N=2e6+5,inf=1e18;
int n,m,s,t,x,y,z,dis1[N],dis2[N],ans=1e18,cnt1,cnt2,head1[N],head2[N],tr[N<<1];
bool vis1[N],vis2[N];
struct flower{int to,nxt,val;
}a[N],b[N];
struct css{int k,b;
}line[N];
inline void add1(int x,int y,int z){a[++cnt1].to=y;a[cnt1].val=z;a[cnt1].nxt=head1[x];head1[x]=cnt1;
}
inline void add2(int x,int y,int z){b[++cnt2].to=y;b[cnt2].val=z;b[cnt2].nxt=head2[x];head2[x]=cnt2;
}
inline void dij1(int s){priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> q;	for(int i=1;i<=n;i++) dis1[i]=1e18,vis1[i]=0;dis1[s]=0;q.push({0,s});while(!q.empty()){int x=q.top().second;q.pop();if(vis1[x]) continue;vis1[x]=1;for(int i=head1[x];i;i=a[i].nxt){int y=a[i].to;if(dis1[y]>dis1[x]+a[i].val){dis1[y]=dis1[x]+a[i].val;if(!vis1[y]) q.push(make_pair(dis1[y],y));}}}
}
inline void dij2(int s){priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> q;for(int i=1;i<=n;i++) dis2[i]=1e18,vis2[i]=0;dis2[s]=0;q.push({0,s});while(!q.empty()){int x=q.top().second;q.pop();if(vis2[x]) continue;vis2[x]=1;for(int i=head2[x];i;i=b[i].nxt){int y=b[i].to;if(dis2[y]>dis2[x]+b[i].val){dis2[y]=dis2[x]+b[i].val;if(!vis2[y]) q.push(make_pair(dis2[y],y));}}}
}
inline int calc(int id,int x){return line[id].k*x+line[id].b;
} 
inline void insert(int rt,int l,int r,int id){if(!tr[rt]){tr[rt]=id;return ;}if(l==r){if(calc(tr[rt],l)>calc(id,l)) tr[rt]=id;return ;}int mid=(l+r)>>1;if(calc(id,mid)<calc(tr[rt],mid)) swap(id,tr[rt]);if(calc(id,l)<calc(tr[rt],l)) insert(rt<<1,l,mid,id);if(calc(id,r)<calc(tr[rt],r)) insert(rt<<1|1,mid+1,r,id);
}
inline int query(int rt,int l,int r,int x){if(l==r) return calc(tr[rt],x);int ans=calc(tr[rt],x);int mid=(l+r)>>1;if(x<=mid) ans=min(ans,query(rt<<1,l,mid,x));else ans=min(ans,query(rt<<1|1,mid+1,r,x));return ans;
}
signed main(){freopen("far.in","r",stdin);freopen("far.out","w",stdout);ios::sync_with_stdio(false);cin>>n>>m>>s>>t;for(int i=1;i<=m;i++){cin>>x>>y>>z;add1(x,y,z);add2(y,x,z);}dij1(s);dij2(t);line[0]=(css){0,inf};for(int i=1;i<=n;i++) line[i]=(css){-2*i,i*i+dis2[i]};for(int i=1;i<=n;i++) insert(1,1,n,i);for(int i=1;i<=n;i++) ans=min(ans,query(1,1,n,i)+i*i+dis1[i]);cout<<ans<<'\n';return 0;
}

T4:军团的阵列线(team)

显然不会

后言

$songs$

皇家海军过战场

日不落帝国踏汪洋

女王手指向何方

东印度之殇

百年玫瑰战争狂

铁甲舰掀起了殖民浪

黄金浇筑的徽章

是荣耀的过往

灯塔的火焰犹闪亮

合众国航母在启航

自由的军队出边疆

烈火燃他乡

卫星画满苍穹上

五大洲遍布我的军港

手握着北约的缰绳

雄鹰依旧翱翔

圣母院钟声绕梁

凡尔赛宫映朝阳

第三帝国军魂游荡

凝视这群羊

钢铁洪流凛寒冰镶

核潜艇游荡在北冰洋

喀秋莎掠过的寒光

照亮了红场

寒冰埋葬了沙皇

双头鹰军号不再回响

冬宫门前回眸望

苏维埃荣光

尘封过五帝与三皇

历经了夏商和汉唐

百年蛰伏不卑不亢

华夏迎曙光

五千年岁月沧桑

文脉传承至今威万邦

共和国乘风破浪

征途再起航

翻手为云覆手为霜

执天下牛耳喜怒五常

肩扛世界格局

筑山河恒久辉煌

社稷固若金汤

千百年送走多少列强

未曾浴血染沙场

怎配踏八荒

普天下星辰未央

谁妄想撼动我的权杖

五常眼眸尽琳琅

看天下兴亡

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

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

相关文章

文生视频时代,RustFS如何成为AI资产库的最佳底座?

文生视频时代,RustFS如何成为AI资产库的最佳底座?随着Sora、Pika等文生视频模型引爆2025年AI领域,存储正取代计算成为制约创新的关键瓶颈——处理一段3分钟1080P视频产生的数据量,相当于50万张标准图片的存储需求。…

HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践

核心定位与结论 目标读者 企业网络架构、数据平台与安全合规团队 核心结论 协议选型原则:HTTP 代理:优先用于 Web 爬取与 API 调用等应用层流量 SOCKS5 代理:优先用于多协议、TCP/UDP、长连接或非 Web 流量 架构策略…

NOIP2025 游记

11.4 开坑。考完 CSP 像在坐过山车,T3 随时可以挂 40 分,10 号之前睡不好觉。 上午 dmy,打你大坝。 每次考试摸完鱼,只有暴力分,还要给 pyb 编理由真的太难了。 丝之歌拿到了飞针,代价是掉了一千念珠,没关系每关…

用 CodeBuddy CLI + Prompt,从零到可运行:前后端混合管理强大的系统的高效实战

用 CodeBuddy CLI + Prompt,从零到可运行:前后端混合管理强大的系统的高效实战pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

最小二乘问题详解8:Levenberg-Marquardt方法

本文系统讲解了Levenberg-Marquardt方法的原理、算法流程与C++实现,阐明其如何通过自适应阻尼在Gauss-Newton与梯度下降之间智能切换,从而高效稳健地求解非线性最小二乘问题。1 引言 对于非线性最小二乘问题的求解来…

20251104周二日记

20251104周二日记补充一下昨晚和师姐聊天收获:不要一篇篇复现,先总体调研。现在的DIFFGS很好,跑着看看。可以当baseline,从其他文章里找创新点和性能突破点。别怕算力限制,可以training free,而且在算力受限情况…

P16.土堆说卷积(可选看)

P16.土堆说卷积(可选看)16.1torch.nn.functional.conv2d的参数(官网)点击查看代码 input:input tensor of shape (minibatch,in_channels,iH,iW) weight:filters of shape (out_channels,in_channelsgroups,kH,k…

25.11.4联考题解

CF1905F 首先判断特殊情况:\(\forall i,p_i=i\) 答案一定是 \(n-2\)。然后考虑一个位置如果已经满足条件我们先统计到答案中,对于不满足条件的位置,考虑去进行交换的贡献。如果存在一个位置满足 \(p_i=i\) 并且前面…

d11.4t4 answer

d11.4t4 answer 题目 题目描述 小 ∗ 有一条地铁线路。 有 \(n\) 个嘟嘟要乘坐地铁。第 \(i\) 个嘟嘟会在第 \(l_i\)站上车,第 \(r_i\) 站下车。为了方便,我们假定有 \(2n\) 个地铁站,且 \(l_i\) , \(r_i\) 互不相…

详细介绍:当AI化身数据炼金术士:初级Python开发者如何将创意炼成黄金代码?—— 老码农的炼金术指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【学习笔记】kafka权威指南——第3章 kafka生产者—向kafka写入资料

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

P15.神经网路的基本骨架——nn.Module的使用

P15.神经网路的基本骨架——nn.Module的使用打开PyTorch官网 1.找到troch.nn的Containers2.打开pycharm:代码-生成-重写方法-选择第一个要初始化的方法__init__3.pycharm运行代码如下点击查看代码 import torch from …

AGC052做题记录

A 其实是简单题,但我是唐诗。 \(2n\) 很简单,前 \(n\) 个和后 \(n\) 个全选 \(0/1\) 即可。可以感觉到正解只需要在这基础上改进,但是胡思乱想了很多没有任何进展。最后意识到最后凑个 \(0\) 即可。 B 做完 T1 ,就…

软工团队第一次作业

作业所属课程 软件工程作业要求 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13573作业目标 根据真实的需求调研结果,确定具有创新性与实用价值的软件开发项目选题,确保能将智能体合理地…

Windows11-GPT

Windows11-GPT导航 (返回顶部)1. 基于UEFI/GPT的硬盘分区 2. 分区要求2.1 启动分区(ESP) 2.2 微软保留分区(MSR) 2.3 Windows分区(OS) 2.4 恢复工具分区(WinRE) 2.5 数据分区(Other)3. 默认分区布局表 4. 其他实用分区…

1. markdown转word 第一步: markdown转html

1. 简介 最近因为项目需求需要将AI输出的结果导出到word中, 但AI输出的格式为markdown格式,因为word展示内容的时候需要有相应的格式(标题, 段落, 列表, 表格等), 所以不能直接将markdown输出到word中, 否则word中展示…

P14.Dataloader的使用

P14.Dataloader的使用14.1Pytorch官网打开torch.utils.data.DataLoader14.2在pycharm使用DataLoader它返回img和target代码如下:点击查看代码 import torchvision from torch.utils.data import DataLoader #from tor…

docker换源

创建/编辑 /etc/docker/daemon.json {"registry-mirrors": ["https://docker.1ms.run","https://docker-0.unsee.tech","https://docker.m.daocloud.io"],"live-restore…

pypinyin很好用

pypinyin很好用〔https://gitee.com/mirrors/python-pinyin#id4〕 〔https://github.com/mozillazg/pypinyin-dict〕 pip install就噌噌地装上了。 到灵格斯词典网站下载了成语、文化等词典,过几天出个1~2万词的用户…

小九源码-springboot078-java物业管理架构

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …