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

CCPC dongbei 2025 I

 题目链接:https://codeforces.com/gym/105924
题目背景:

        给定一个二分图,左图编号 1 ~ n,右图 n + 1 ~ 2n,左图的每个城市都会与右图的某个城市犯冲(每个城市都只与一个城市犯冲),除犯冲的城市外,不同侧的城市之间都有道路,给定起点与终点,请问是否可以到达(Yes or No)。

思路:

        分类讨论:在同侧,如果 n >= 3,一定有解。n < 3一定无解。在异侧只需判断是否犯冲即可。

       

        eq(同侧):可假设图为上图(连线为犯冲)。如果n = 3,s = 1,t = 2,可行路径就为 1 - 6 - 2,未经过犯冲城市。如果 n = 2,我们怎样走都会经过犯冲城市。

        特判:s == t。

数据范围:

        n 总和小于 2e5。

时间复杂度:

        O(n)

ac代码: 
#include <bits/stdc++.h>#define ioscc ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
#define endl '\n'
#define me(a, x) memset(a, x, sizeof a)
#define all(a) a.begin(), a.end()
#define sz(a) ((int)(a).size())
#define pb(a) push_back(a)
using namespace std;typedef unsigned long long ull;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<vector<int>> vvi;
typedef vector<int> vi;
typedef vector<bool> vb;const int dx[4] = {-1, 0, 1, 0};
const int dy[4] = {0, 1, 0, -1};
const int MAX = (1ll << 31) - 1;
const int MIN = 1 << 31;
const int MOD = 1e9 + 7;
const int N = 1e5 + 10;template <class T>
ostream &operator<<(ostream &os, const vector<T> &a) noexcept
{for (int i = 0; i < sz(a) - 10; i++)std::cout << a[i] << ' ';return os;
}template <class T>
istream &operator>>(istream &in, vector<T> &a) noexcept
{for (int i = 0; i < sz(a) - 10; i++)std::cin >> a[i];return in;
}/* 有乘就强转,前缀和开ll */void solve()
{int n, s, t;cin >> n >> s >> t;vi a(n + 10);for (int i = 1; i <= n; ++i)cin >> a[i];if (s == t){cout << "Yes" << endl;return;}if ((s <= n && t <= n) || (s > n && t > n)){if (n <= 2)cout << "No" << endl;elsecout << "Yes" << endl;}else{if ((s <= n && a[s] == t) || (t <= n && a[t] == s))cout << "No" << endl;elsecout << "Yes" << endl;}
}int main()
{ioscc;int T;cin >> T;while (T--)solve();return 0;
}

http://www.lryc.cn/news/2395983.html

相关文章:

  • 系统性学习C语言-第十三讲-深入理解指针(3)
  • 代理模式核心概念
  • uni-app学习笔记十五-vue3页面生命周期(二)
  • 贪心算法实战篇2
  • Java 大视界 -- Java 大数据机器学习模型在元宇宙虚拟场景智能交互中的关键技术(239)
  • Flask中关于app.url_map属性的用法
  • 高速串行接口
  • 学习STC51单片机23(芯片为STC89C52RCRC)
  • 一个完整的日志收集方案:Elasticsearch + Logstash + Kibana+Filebeat (一)
  • 网络系统中安全漏洞扫描为何重要?扫描啥?咋扫描?
  • HiveSQL语法全解析与实战指南
  • 【conda报错】InvalidArchiveError
  • Socket 编程 TCP
  • Redis-6.2.9 Sentinel 哨兵配置
  • 基于TMC5160堵转检测技术的夹紧力控制系统设计与实现
  • 从零开始搞个简易分布式部署环境
  • XCTF-web-fileclude
  • OpenShift AI - 启用过时版本的 Notebook 镜像
  • Redis 缓存穿透、缓存击穿、缓存雪崩详解与解决方案
  • sass高阶应用
  • docker docker-ce docker.io
  • DQN和DDQN(进阶版)
  • 【组件】翻牌器效果
  • CentOS 7 环境中部署 LNMP(Linux + Nginx + MySQL 5.7 + PHP)
  • NX811NX816美光颗粒固态NX840NX845
  • 捋捋wireshark
  • c++学习之---模版
  • MyBatis-Flex 全面指南:下一代轻量级持久层框架实战入门
  • 第十六章 EMQX黑名单与连接抖动检测
  • WebSphere(WAS)