Acwing 第 163 场周赛

news/2025/2/2 21:27:28/文章来源:https://www.cnblogs.com/guiyou/p/18697105

A

将数据存入数组,根据下标取最小值

B

根据题意,相邻的两个都是朋友,给出朋友关系,构造满足所有关系的排列

假如此时 2 3 1 4 5 满足朋友关系,那么5之后的第一个数字一定是4的朋友,以此递推,就可以得到排列

所以现在的问题在于,如何得到这个最初始的排列?

由于数据较小,我们以1为其他4个数字的朋友,全排列所有的可能,一个一个去检验即可


#include<bits/stdc++.h>using namespace std;const int maxn=1e5+10;
int n;
vector<int >q[maxn];
int nt[5],ans[maxn];
bool book[5],used[maxn];int get(int x,int a,int b,int c){for(int v:q[x]){if(v!=a && v!=b && v!=c) return v;}return -1;
}
bool check(){ans[2]=1;int d[5]={0,1,3,4};for(int i=0;i<4;++i) ans[d[i]]=q[1][nt[i]];//排列输入答案for(int i=5;i<n+5;++i){ans[i]=get(ans[i-2],ans[i-4],ans[i-3],ans[i-1]);//递推后面if(ans[i]==-1) return 0;//出现不可能的构造}for(int i=0;i<5;++i)if(ans[i]!=ans[n+i]) return false;//后5个应该与前5个重叠memset(used,0,sizeof used);for(int i=0;i<n;++i){//判重,出现重复的即有错int t=ans[i];if(used[t]) return 0;used[t]=1;}for(int i=0;i<n;++i) printf("%d ",ans[i]);return 1;
}
bool dfs(int u){//全排列if(u==4) return check();for(int i=0;i<4;++i)if(!book[i]){nt[u]=i;book[i]=1;if(dfs(u+1)) return true;book[i]=0;}return 0;
}
int main(){scanf("%d",&n);for(int i=0;i<n*2;++i){int u,v;scanf("%d %d",&u,&v);q[u].push_back(v);q[v].push_back(u);}if(!dfs(0)) puts("-1");return 0;
}

C

经典模型

并查集染色

对于一个区间[l,r]的奶农都被其中的x打败,所以用ans记录他们被谁打败

而被打败的奶牛,用并查集f[]指向后一头牛,由于路径压缩,那么区间内的每头牛都会指向r+1,这样下次涉及该区间操作时,就会跳过该区间

该题中第x头牛会被保留,所以删除的区间是[l,x-1],[x+1,r]

#include<bits/stdc++.h> using namespace std;const int maxn= 300010;int n,m;
int f[maxn], ans[maxn];int find(int x)
{if(f[x] != x)  return f[x] = find(f[x]);return f[x];
}int main()
{scanf("%d%d", &n, &m);for (int i=1; i<=n+1; i++) f[i]=i;while (m--){int l, r, x;scanf("%d%d%d", &l, &r, &x);for(int i=find(l);i<x;i=find(i)){if (i<x){f[i]=i+1;ans[i]=x;}}for(int i=find(x+1);i<=r;i=find(i)){if (i<=r){f[i]=i+1;ans[i]=x;}}}for (int i=1;i<=n;i++) printf("%d ", ans[i]);return 0;
}

类似题疯狂的馒头

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

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

相关文章

AvaloniaUI 的甘特图组件.

https://github.com/xiejiang2014/XieJiang.Gantt.Avalonia Gantt chart component for AvaloniaUI(UNDER CONSTRUCTION).

快速入门 DeepSeek-R1 大模型

国内最新的神级人工智能模型已经正式发布,没错,它就是备受瞩目的DeepSeek-R1大模型。今天,我们将对DeepSeek进行一个简单的了解,并探索如何快速使用和部署这个强大的工具。值得一提的是,DeepSeek已经开源,您可以随意下载和使用它。 DeepSeek的官方网站地址如下:https://…

CompletableFuture 超时功能有大坑!使用不当直接生产事故!

CompletableFuture 超时功能有大坑!使用不当直接生产事故! 本文未经允许禁止转载! 上一篇文章《如何实现超时功能(以CompletableFuture为例)》中我们讨论了 CompletableFuture 超时功能的具体实现,从整体实现来说,JDK21前的版本有着内存泄露的bug,不过很少对实际生产有影…

2024.2.2 鲜花

P2305 [NOI2014] 购票aLIEz 決めつけばかり 自惚れを着たチープな hokori で 音荒げても 棚に隠した哀れな 恥に濡れた鏡の中 都合の傷だけひけらかして 手軽な強さで勝取る術を どれだけ磨いでも気はやつれる ふらついた思想通りだ 愛-same-CRIER 愛撫-save-LIAR Eid-聖-Risin…

昆明理工大学25考研冶金工程预计调剂145人

冶金工程考研809冶金物理化学有色冶金学有色金属冶金冶金过程及设备F002钢铁冶金学

8.数据结构

空气在他的呼吸间化作赤红烈焰,烈火在他掌中咆哮翻涌,如同猛兽般肆虐纵横,每一缕火舌都在嘶吼着征服与毁灭。他以战神的姿态掌控炽炎,以焚天煮海之势,在这场杀戮盛宴中肆意狂舞!数据结构 开题顺序: \(WHABCEI\) \(A\) CF2042D Recommendations扫描线维护 \(\le l\) 的最…

ollama mac使用

教程地址:https://www.youtube.com/watch?v=SRroLOci0CA 安装完成后,常用命令。 启动服务:ollama run deepseek-r1:8B 使用:停止服务:本文来自博客园,作者:NeverLateThanBetter,转载请注明原文链接:https://www.cnblogs.com/do-it-520/p/18697037韶华易逝,不能虚度年…

07. 文件操作

一、文件的查找我们可以使用 find 命令 从指定目录向下递归地遍历其各个子目录,将满足的文件显示在终端中。 find [搜索范围] [选项]其中,选项的可选值如下:-name 文件名:按照指定的文件名查找文件,如果不知道文件的全名,可以使用 * 进行模糊匹配。 -user 用户名:查找属…

《计算机网络》笔记——第五章 运输层

计算机网络(第7版)谢希仁目录第5章 运输层概述运输层的两个主要协议端口用户数据报协议UDPUDP的首部格式传输控制协议TCPTCP的连接可靠传输的工作原理停止等待协议连续ARQ协议TCP报文段的首部格式TCP可靠传输的实现滑动窗口超时重传时间(RTO)的选择选择确认SACKTCP的流量控制…

[Paper Reading] DeepSeek-V3 Technical Report

目录DeepSeek-V3 Technical Report解读TL;DR优势训练数据参数量Method架构MLA(Multi-Head Latent Attention)DeepSeekMoEMoEDeepSeekMoEMTP(Multi-Token Prediction)基建FP8训练部署PrefillingDecodingPre-TrainingDataLong Context ExtensionPost-TrainingSFTReinforcement Le…

表单标签3

如何点击用户名来唤醒对应光标 中for id 两者的对象一致