一道简单构造题,一次性 AC。

一种想法是将所有值一样的点全部连到同一个不同值的点上,这样就是所有同一种值的点都有同一个父亲,即可避免连在一起的问题,无解的情况就是只有一种值。

时间复杂度 O(n2)O(n^2)O(n2)

AC code:

#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
const int maxn=1e6+5;
int t,n,a[maxn],c[maxn];
void solve(){
cin>>n;
int cnt=0;\
unordered_map<int,unordered_map<int,int>>pm;//去重数组
for(int i=1;i<=n;i++){
cin>>a[i];
}
bool flag=0;
for(int i=1;i<=n;i++){//枚举每个点
int pos=0;//找到的位置
for(int j=1;j<=n;j++){
if(a[j]!=a[i]){//第一个不同的值
pos=j;
break;
}
}
if(pos==0){//没找到,即全是一个值
cout<<"NO"<<endl;//无解
return;
}
for(int j=1;j<=n;j++){
if(a[j]==a[i]){//找与 i 相同的值
if(flag==0){//没有输出 YES
cout<<"YES"<<endl;//输出
flag=1;//标记
}
if(pm[pos][j]==1){//去重
continue;
}
cout<<pos<<' '<<j<<endl;//pos 与 j 是父子关系
pm[pos][j]=pm[j][pos]=1;//标记去重数组
}
}
} }
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>t;
while(t--){
solve();
}
return 0;
}

题解:CF1433D Districts Connection的更多相关文章

  1. Codeforces Round #677 (Div. 3) D. Districts Connection思维1200

    题目链接 Problem - 1433D - Codeforces 题目 美好的一天,从看不懂题目开始~~ Example input 4 5 1 2 2 1 3 3 1 1 1 4 1 1000 1 ...

  2. Codeforces Round #677 (Div. 3) D/1433D Districts Connection

    https://codeforces.com/contest/1433/problem/D 找两个不同权值的节点A.B连起来,所有与A不同权值的连到A上,相同的连到B上. #include<io ...

  3. Codeforces Round #677 (Div. 3) 题解

    Codeforces Round #677 (Div. 3) 题解 A. Boring Apartments 题目 题解 简单签到题,直接数,小于这个数的\(+10\). 代码 #include &l ...

  4. Codeforces Round #677 (Div. 3)【ABCDE】

    比赛链接:https://codeforces.com/contest/1433 A. Boring Apartments 题解 模拟即可. 代码 #include <bits/stdc++.h ...

  5. LeetCode编程训练 - 合并查找(Union Find)

    Union Find算法基础 Union Find算法用于处理集合的合并和查询问题,其定义了两个用于并查集的操作: Find: 确定元素属于哪一个子集,或判断两个元素是否属于同一子集 Union: 将 ...

  6. 算法与数据结构基础 - 合并查找(Union Find)

    Union Find算法基础 Union Find算法用于处理集合的合并和查询问题,其定义了两个用于并查集的操作: Find: 确定元素属于哪一个子集,或判断两个元素是否属于同一子集 Union: 将 ...

  7. 1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区(题解第二弹)

    1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit:  ...

  8. 1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区(题解第一弹)

    1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit:  ...

  9. 算法(第四版)C# 习题题解——1.5

    写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 ...

  10. Connections in Galaxy War (逆向并查集)题解

    Connections in Galaxy War In order to strengthen the defense ability, many stars in galaxy allied to ...

随机推荐

  1. linxu7下安装pacemaker+corosync集群-01

    1.yum仓库的配置-自行配置 2.安装软件包: yum -y install pacemaker* corosync* pcs* psmisc yum -y install pcs fence-ag ...

  2. 配置计算节点之间的SSH

    本文分享自天翼云开发者社区<配置计算节点之间的SSH>,作者:y****n 如果在管理程序之间调整或迁移实例,可能会遇到SSH(拒绝权限)错误.请确保每个节点都配置了SSH密钥验证,以便C ...

  3. q-analog 学习笔记(待整修)

    联考题考这个不会就来学了 首先给出对其的定义. 对于一个对象 \(u\),构造关于 \(q\) 的某表达式 \(f(q)\),使得: \[\lim_{q\to 1}f(q)=u \] 然而这个可能没有 ...

  4. TextEdit 使用Mask验证输入格式为邮箱

    设置Mask代码如下: <dxe:TextEdit Text="{Binding Email}" MaskType="RegEx" Mask=" ...

  5. c# 删除文件夹最快的函数方法 无视占用 直接删除

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/17270147.html 代码如下,直接通过cmd调用dos命令进行删除 public stat ...

  6. Linux服务器快速卸载安装node环境(简单上手)

    这篇文章主要介绍了Linux服务器快速卸载安装node环境(简单上手) 1.先卸载npm sudo npm uninstall npm -g 2.卸载node yum remove nodejs np ...

  7. xpath 定位表格里面内容

    向上找页面唯一元素,依次为: 表格体/第一行/第14列 实现代码 Xpath==//tbody/tr[1]/td[11]

  8. 错误修正记录:对应的VMware Tools脚本未能成功运行

    起因 装了台式机,想把笔记本里的vmware虚拟机迁移过来:复制过来后开机就出现这种情况,点开机.挂起.关机等操作会报错,然后无法挂起(再点一次就行) 或者使用下方的选项,而非上方包装过的功能,似乎也 ...

  9. docker部署ceph集群

    1. 创建Ceph专用网络 sudo docker network create --driver bridge --subnet 172.20.0.0/16 ceph-network 2. 拉取搭建 ...

  10. V8引擎静态库及其调用方法

    V8引擎静态库下载地址由于包含了x86和x64的debug和release静态库,所以资源较大,需要耐心下载. 案例编译工具:VS2019 v8开头的即为V8引擎静态库(附送其它开源静态库libuv. ...