当前位置:网站首页>D. Districts Connection
D. Districts Connection
2022-08-08 16:37:00 【秦小咩】
D. Districts Connection
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
There are nn districts in the town, the ii-th district belongs to the aiai-th bandit gang. Initially, no districts are connected to each other.
You are the mayor of the city and want to build n−1n−1 two-way roads to connect all districts (two districts can be connected directly or through other connected districts).
If two districts belonging to the same gang are connected directly with a road, this gang will revolt.
You don't want this so your task is to build n−1n−1 two-way roads in such a way that all districts are reachable from each other (possibly, using intermediate districts) and each pair of directly connected districts belong to different gangs, or determine that it is impossible to build n−1n−1 roads to satisfy all the conditions.
You have to answer tt independent test cases.
Input
The first line of the input contains one integer tt (1≤t≤5001≤t≤500) — the number of test cases. Then tt test cases follow.
The first line of the test case contains one integer nn (2≤n≤50002≤n≤5000) — the number of districts. The second line of the test case contains nn integers a1,a2,…,ana1,a2,…,an (1≤ai≤1091≤ai≤109), where aiai is the gang the ii-th district belongs to.
It is guaranteed that the sum of nn does not exceed 50005000 (∑n≤5000∑n≤5000).
Output
For each test case, print:
- NO on the only line if it is impossible to connect all districts satisfying the conditions from the problem statement.
- YES on the first line and n−1n−1 roads on the next n−1n−1 lines. Each road should be presented as a pair of integers xixi and yiyi (1≤xi,yi≤n;xi≠yi1≤xi,yi≤n;xi≠yi), where xixi and yiyi are two districts the ii-th road connects.
For each road ii, the condition a[xi]≠a[yi]a[xi]≠a[yi] should be satisfied. Also, all districts should be reachable from each other (possibly, using intermediate districts).
Example
input
Copy
4 5 1 2 2 1 3 3 1 1 1 4 1 1000 101 1000 4 1 2 3 4
output
Copy
YES 1 3 3 5 5 4 1 2 NO YES 1 2 2 3 3 4 YES 1 2 1 3 1 4
=========================================================================
可以说CF上ABCD里面遇见的所谓图论树连边问题,都是抓住一个点进行连接。本题要求不能把相同的连接到一起。那么我们就选两个不同的点,a,b 把b全部连到a,再把剩下的b之外的全部连到b
#include<iostream>
# include<algorithm>
using namespace std;
typedef long long int ll;
int a[5010];
bool book[5010];
int main ()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
book[i]=0;
}
int root1=0,root2=0;
int pos1,pos2;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(!root1)
{
root1=a[i];
pos1=i;
}
else if(root1&&a[i]!=root1)
{
root2=a[i];
pos2=i;
}
}
if(root2==0)
{
cout<<"NO"<<endl;
}
else
{
cout<<"YES"<<endl;
for(int i=1;i<=n;i++)
{
if(a[i]==root2)
{
cout<<pos1<<" "<<i<<endl;
book[i]=1;
}
}
for(int i=1;i<=n;i++)
{
if(i!=pos1&&!book[i])
{
cout<<pos2<<" "<<i<<endl;
}
}
}
}
return 0;
}
边栏推荐
- Patience sorting - specializing in quickly solving the longest increasing subarray
- 六、Jmeter定时器
- Building and Visualizing Sudoku Games with Pygame
- laravel数据库: 查询构造器
- ImportError: numpy.core.multiarray failed to import [cv2, matplotlib, PyTorch, pyinstaller ]
- 基于FTP协议的Excel文件上传与下载
- Charles MOCK 数据 htpps代理
- 论文解读(soft-mask GNN)《Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks》
- 元宇宙医疗或将改变医疗格局
- 一、搭建django自动化平台(实现一键执行sql)
猜你喜欢
随机推荐
MVCC,主要是为了做什么?
NSSCTF部分复现
在 Fedora 上使用 SSH 端口转发
bzoj1507 [NOI2003]Editor
产品经理常用的19类50+工具软件盘点
JVM-简介&垃圾回收&内存泄漏分析
论文解读(soft-mask GNN)《Soft-mask: Adaptive Substructure Extractions for Graph Neural Networks》
李沐:机器学习者进阶学习建议
ERROR Failed to compile with 1 error
题目:有序队列
mmdetection最新版食用教程(一):安装并运行demo及开始训练coco
Grafana配置LDAP认证
方程组解的情况与向量组相关性转化【线代碎碎念】
VIT:Transformer进军CV的里程碑
Spam accounts are a lot of trouble, and device fingerprints are quickly found
最新30系显卡搭建paddle飞浆环境|含CUDA下载安装
APICloud AVM 封装日期和时间选择组件
10.cuBLAS开发指南中文版--cuBLAS中的logger配置
redis设计与实现 笔记(一)
【入门PCB】立创eda的学习