ATcoder 做题记录
ABC277 F
首先我们可以发现行与行、列与列之间的相对大小关系是不会相互影响的。换言之,两种操作是互相独立的。
对于两种操作,我们分别来考虑。
- 行操作:我们找到每一行和每一列的最小值和最大值,将其排序后检查是否符合要求即可。
- 列操作:这个相对而言就要麻烦一些了,这题可以转化为图论模型。对于第
列,如果存在一列 满足 ,但是存在 使得 我们就从 向 连一条有向边,表示第 列应该要换到第 列的后面。如果建出来的图有环,则显然无解,反之则有解。
但是第二种操作的建图时间和空间都是我们没有办法承受的,我们考虑优化建图。
我们不管权值为
ABC273 F
- 简要题意
一个人要沿数轴从
- 简要题解
区间
ABC272 F
- 简要题意
给定两个长度为
问有多少二元组
- 简要题解
将两个字符串都拉两倍后拼在一起跑
ABC270 F
- 简要题意
- 对于每个点
,你可以花费 在该点修机场。两点如果都有机场,那这两点可以互相到达。 - 对于每个点
,你可以花费 在该点修港口。两点如果都有港口,那这两点可以互相到达。 - 有
条道路,第 条道路连接 ,你可以花费 让开通这条道路,开通后,道路的两个端点可以互相到达。
- 简要题解
看着就很像一个最小生成树的题目,对于在点上有代价的,我们可以通过新建点再向该点连边的方式来实现。
具体的,对于机场,我们连边
点击查看代码
#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int N=2e5+5;
const LL inf=0x3f3f3f3f3f3f3f3f;
inline int read() {
int x=0,w=0; char ch=getchar();
while(!isdigit(ch)) w|=(ch=='-'), ch=getchar();
while(isdigit(ch)) x=x*10+(ch^48), ch=getchar();
return w?-x:x;
}
struct edge { int x,y,z; bool friend operator<(edge x,edge y) { return x.z<y.z; } }e[N<<2];
int n,m,idx,a[N],b[N],u[N],v[N],w[N],fa[N];
LL ans=inf;
inline int Get(int x) { return fa[x]==x?x:fa[x]=Get(fa[x]); }
inline LL Kruskal(int n) {
for(int i=1;i<=n;i++) fa[i]=i;
sort(e+1,e+1+idx);
LL res=0,cnt=0;
for(int i=1,fx,fy;i<=idx && cnt<n-1;i++) {
fx=Get(e[i].x); fy=Get(e[i].y);
if(fx^fy) fa[fx]=fy, ++cnt, res+=e[i].z;
}
return cnt==n-1?res:inf;
}
int main() {
n=read(); m=read();
for(int i=1;i<=n;i++) a[i]=read();
for(int i=1;i<=n;i++) b[i]=read();
for(int i=1;i<=m;i++) u[i]=read(), v[i]=read(), w[i]=read();
for(int k=0,node;k<4;k++) {
node=n; idx=0;
if(k&1) { ++node; for(int i=1;i<=n;i++) e[++idx]=edge{i,node,a[i]}; }
if(k&2) { ++node; for(int i=1;i<=n;i++) e[++idx]=edge{i,node,b[i]}; }
for(int i=1;i<=m;i++) e[++idx]=edge{u[i],v[i],w[i]};
ans=min(ans,Kruskal(node));
}
cout<<ans<<endl;
return 0;
}
ABC243 F
- 简要题意:
共
- 简要题解
设考虑完
ABC238 F
考虑按照第一次考试的排名从前往后排序。我们设
转移比较容易。
显然有
如果满足 这个人第二次考试的排名比
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现