博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #580 (Div. 2)-D. Shortest Cycle(思维建图+dfs找最小环)
阅读量:5009 次
发布时间:2019-06-12

本文共 1848 字,大约阅读时间需要 6 分钟。

You are given nn integer numbers a1,a2,,ana1,a2,…,an. Consider graph on nn nodes, in which nodes ii, jj (iji≠j) are connected if and only if, aiaiAND aj0aj≠0, where AND denotes the .

Find the length of the shortest cycle in this graph or determine that it doesn't have cycles at all.

Input

The first line contains one integer n(1n105)(1≤n≤105) — number of numbers.

The second line contains nn integer numbers a1,a2,,ana1,a2,…,an (0ai10180≤ai≤1018).

Output

If the graph doesn't have any cycles, output 1−1. Else output the length of the shortest cycle.

Examples
input
Copy
43 6 28 9
output
Copy
4
input
Copy
55 12 9 16 48
output
Copy
3
input
Copy
41 2 4 8
output
Copy
-1
Note

In the first example, the shortest cycle is (9,3,6,28)(9,3,6,28).

In the second example, the shortest cycle is (5,12,9)(5,12,9).

The graph has no cycles in the third example.

 代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define lson m<<1,l,mid#define rson m<<1|1,mid+1,r#define getmid(m) (tree[m].l+tree[m].r)>>1;const int maxn=1e5+5;typedef long long ll;using namespace std;pair
pp;vector
vec[65];vector
G[maxn];ll a[maxn];int vis[maxn];int endd;int minn=0x3f3f3f3f;void dfs(int sta,int dep){ vis[sta]=1; if(dep>=minn) { vis[sta]=0; return; } for(int t=0;t
1) { minn=min(minn,dep+1); } if(vis[u]==0) { dfs(u,dep+1); } } vis[sta]=0; } int main(){ int n; cin>>n; for(int t=0;t
=3) { puts("3"); return 0; } } for(int t=0;t<64;t++) { if(vec[t].size()==2) { int u=vec[t][0]; int v=vec[t][1]; G[u].push_back(v); G[v].push_back(u); } } for(int t=0;t

 

 

 

转载于:https://www.cnblogs.com/Staceyacm/p/11379619.html

你可能感兴趣的文章
上下文管理器之__enter__和__exit__
查看>>
android3.2以上切屏禁止onCreate()
查看>>
winform文件迁移工具
查看>>
delphi DCC32命令行方式编译delphi工程源码
查看>>
paip.输入法编程----删除双字词简拼
查看>>
or1200下raw-os学习(任务篇)
查看>>
ZOJ - 3939 The Lucky Week(日期循环节+思维)
查看>>
小花梨的取石子游戏(思维)
查看>>
Ubuntu 18.04安装arm-linux-gcc交叉编译器
查看>>
.net core i上 K8S(一)集群搭建
查看>>
django drf 深入ModelSerializer
查看>>
Android---Menu菜单
查看>>
【资源导航】我所用到过的工具及下载地址
查看>>
监控Tomcat
查看>>
剑指offer编程题Java实现——面试题4后的相关题目
查看>>
简单的社交网络分析(基于R)
查看>>
Http请求工具类 httputil
查看>>
html幻灯效果页面
查看>>
太可怕了!黑客是如何攻击劫持安卓用户的DNS?
查看>>
nginx在Windows环境安装
查看>>