D. Shortest Cycle

A[i]&A[j]!=0连边,

求图中最小环

N>128 时必有3环

其他暴力跑

folyd最小环

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define sc(x) scanf("%I64d",&x);
#define read(A) for(int i=0;i<n;i++) scanf("%I64d",&A[i]);
ll A[];
ll B[][];
ll dis[][];
ll N;
#define inf 1e18
ll floyd()
{
ll MinCost = inf;
for(int k=; k<=N; k++)
{
for(int i=; i<k; i++)
for(int j=i+; j<k; j++)
MinCost = min(MinCost,dis[i][j]+B[i][k]+B[k][j]);
for(int i=; i<=N; i++)
for(int j=; j<=N; j++)
dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
}
if(MinCost==inf)return -;
else return MinCost;
} int main()
{
// ll N;
sc(N);
ll _k=;
for(int i=; i<=N; i++)
{
sc(A[_k]);
if(A[_k]!=)_k++;
}
if(_k>=)
{
puts("");
} else
{
N=_k-;
for(int i=; i<=N; i++)
{
for(int j=; j<=N; j++)
{
if(i!=j&&(A[i]&A[j]))
{
B[i][j]=;
dis[i][j]=;
}
else if(i==j)
{
B[i][j]=;
dis[i][j]=;
}
else
{
B[i][j]=inf;
dis[i][j]=inf;
}
}
}
cout<<floyd()<<'\n'; } }

D. Shortest Cycle的更多相关文章

  1. CF 1206D - Shortest Cycle Floyd求最小环

    Shortest Cycle 题意 有n(n <= 100000)个数字,两个数字间取&运算结果大于0的话连一条边.问图中的最小环. 思路 可以发现当非0数的个数很大,比如大于200时, ...

  2. Codeforces 1206 D - Shortest Cycle

    D - Shortest Cycle 思路:n大于某个值肯定有个三元环,否则floyd找最小环. 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) ...

  3. D. Shortest Cycle(floyd最小环)

    D. Shortest Cycle time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  4. [Codeforces 1205B]Shortest Cycle(最小环)

    [Codeforces 1205B]Shortest Cycle(最小环) 题面 给出n个正整数\(a_i\),若\(a_i \& a_j \neq 0\),则连边\((i,j)\)(注意i- ...

  5. Codeforces Round #580 (Div. 2)-D. Shortest Cycle(思维建图+dfs找最小环)

    You are given nn integer numbers a1,a2,…,ana1,a2,…,an. Consider graph on nn nodes, in which nodes ii ...

  6. 并不对劲的复健训练-CF1205B Shortest Cycle

    题目大意 有\(n\)(\(n\leq 10^5\))个数\(a_1,...,a_n\)(\(a\leq 10^{18}\)).有一个图用这个方法生成:若\(a_i\)按位与\(a_j\)不为0,则在 ...

  7. 【题解】Shortest Cycle

    原题链接:CF1205B   题目大意   给定\(n\)个整数\(a_1,a_2,a_3, \dots ,a_n\),若\(i \neq j\)且\(a_i \land a_j \neq 0\),则 ...

  8. [CF580C]Shortest Cycle(图论,最小环)

    Description: 给 \(n\) 个点的图,点有点权 \(a_i\) ,两点之间有边当且仅当 \(a_i\ \text{and}\ a_j \not= 0\),边权为1,求最小环. Solut ...

  9. @codeforces - 1205B@ Shortest Cycle

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个长度为 n 的正整数序列 a1, a2, ..., an ...

随机推荐

  1. 【Linux内核】编译与配置内核(arm)

    ARM平台使用的内核 (1)清除原有的配置与中间文件 make distclean(2)配置内核 make menuconfig ARCH=arm(3)编译内核 make uImage ARCH=ar ...

  2. Python内置函数eval

    英文文档: eval(expression, globals=None, locals=None) The arguments are a string and optional globals an ...

  3. Docker网络大揭秘(单机)

    docker网络官网 https://docs.docker.com/network/ Docker容器和服务如此强大的原因之一是您可以将它们连接在一起,或将它们连接到非Docker工作负载.Dock ...

  4. SpringBoot、ActiveMQ整合阿里大鱼-----短信服务

    3.短信微服务 3.1需求分析 构建一个通用的短信发送服务(独立于优乐选的单独工程),接收activeMQ的消息(MAP类型)  消息包括手机号(mobile).短信模板号(template_code ...

  5. 在搭建Maven项目时导入elasticsearch架包时遇到的问题

    <!-- 使用elasticsearch 需要导入两个包,从网上复制的可能因为有特殊字符报 cvc-complex-type.2.3: Element 'dependency' cannot h ...

  6. Linux如何设置在当前目录下打开终端

    转:https://blog.csdn.net/iot_flower/article/details/71189816 1. sudo apt-get install nautilus-open-te ...

  7. POJ 3135 Polygons on the Grid(枚举+凸包)

    题目大意是让你用这n条边放在网格上构成凸包,并且边的两端点必须在网格上. 那么比较容易想到的就是枚举可能情况,因为这样的勾股数组成情况不多,因此可以直接枚举所有连出去的边反映在坐标轴上的所有情况,最后 ...

  8. A-问题收益率

    问题: 在金融中,我们有时会用内部收益率IRR来评价项目的投资财务效益,它等于使得投资净现值NPV等于0的贴现率.换句话说,给定项目的期数T.初始现金流CF0和项目各期的现金流CF1, CF2, …, ...

  9. 基于RSA的前后端登陆密码加密JAVA实现(转)

    RSA加密算法简介 SA加密算法是一种非对称加密算法.在公开密钥加密和电子商业中RSA被广泛使用.对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法愈 ...

  10. 剑指offer-二叉树中和为某一值的路径-python

    题目描述 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大 ...