当前位置: 首页 > news >正文

Order Capital Round 1 (Codeforces Round 1038, Div. 1 + Div. 2) C、D

C. Manhattan Pairs

如果是一维的那就好办了,直接排序然后首尾元素相配对,直接贪心即可,但要注意这里是二维空间我们不妨将上述想法移用一下 A.左上 B.左下 C.右上 D.右下

于是就有

A+B=C+D

A+C=B+D

解方程有

A=D

B=C

可得正好配对的方案:先对x排序,再分别对前半段与后半段的y进行排序,再进行配对即可

Code:

#include<bits/stdc++.h>
using namespace std;
const int N=2e6+10;
struct node{int x, y,pos;
}a[N];
bool cmp1(node u,node v) {return u.x<v.x;
}
bool cmp2(node u,node v) {return u.y<v.y;
}
void solve() {int n;cin>>n;for(int i=1;i<=n;i++) {cin>>a[i].x>>a[i].y;a[i].pos=i;}sort(a+1,a+1+n,cmp1);sort(a+1,a+n/2+1,cmp2);sort(a+1+n/2,a+n+1,cmp2);for(int i=1;i<=n/2;i++) {cout<<a[i].pos<<" "<<a[n-i+1].pos<<endl;}
}
int main() {int T;cin>>T;while(T--) {solve();}return 0;
}

D. Traffic Lights

采用dp思路:dp[t,x],表示时间t时候到x点需要停留的最短时间,这里外层枚举时间内层更新转移dp即可

Code:

#include<bits/stdc++.h>
using namespace std;
void solve() {int n,m;cin>>n>>m;vector<vector<int>> adj(n);for(int i=1;i<=m;i++) {int x,y;cin>>x>>y;x--;y--;adj[x].push_back(y);adj[y].push_back(x);}vector<int> dp(n,0x3f3f3f3f);dp[0]=0;for(int t=0;t<2*n;t++) {vector<int> tmp(n,0x3f3f3f3f);for(int u=0;u<n;u++) {int v=adj[u][t%adj[u].size()];tmp[v]=min(tmp[v],dp[u]);tmp[u]=min(tmp[u],dp[u]+1);}dp=tmp;if(dp[n-1]!=0x3f3f3f3f) {cout<<t+1<<" "<<dp[n-1]<<endl;return;}}
}
int main() {int T;cin>>T;while(T--) {solve();}return 0;
} 

http://www.xdnf.cn/news/1155637.html

相关文章:

  • 讲解Mysql OnlineDDL的算法
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘lxml’问题
  • docker Neo4j
  • 【RK3576】【Android14】显示屏MIPI开发调试
  • 【图文详解】Transformer架构详细解析:多头自注意力机制、qkv计算过程、encoder架构、decoder架构以及mask的意义
  • Qwen3-8B 与 ChatGPT-4o Mini 的 TTFT 性能对比与底层原理详解
  • 网鼎杯2020青龙组notes复现
  • springboot websocket 自动重启方案
  • 彩虹云商城全源码 - 全新客服系统上线
  • CAN通讯理论与实践:调试和优化全讲解
  • 移动端开发的package命名规范
  • 《突破 GIL 限制:Python 多线程的真相与最佳实践》
  • “人工智能+”视域下计算思维与语文写作融合的跨学科教学设计模式探究
  • OpenTelemetry学习笔记(九):Elastic 对 OTLP 的原生支持
  • 二、Spark 开发环境搭建 IDEA + Maven 及 WordCount 案例实战
  • Golang的微服务链路追踪
  • 7. 命令模式
  • 5G NR PDCCH之CRC处理
  • GaussDB 数据库架构师修炼(七) 安全规划
  • 【Docker-Day 7】揭秘 Dockerfile 启动指令:CMD、ENTRYPOINT、ENV、ARG 与 EXPOSE 详解
  • 常用框架知识
  • Python基础-列表
  • 【Lua】大G表
  • 06 51单片机之矩阵键盘
  • 【Kafka】深入理解 Kafka MirrorMaker2 - 实战篇
  • 链表的基本操作
  • 费曼学习法
  • 吴恩达机器学习笔记(3)—线性代数回顾(可选)
  • 嵌入式硬件篇---按键
  • Nginx的location匹配规则