CF1206D Shortest Cycle
时间:2019-08-22
本文章向大家介绍CF1206D Shortest Cycle,主要包括CF1206D Shortest Cycle使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
思路
根据所谓的抽屉原理,当n特别大的时候,就会出现几个三元环,这时的答案就是3
其他的跑floyd暴力
#include <cstdio>
using namespace std;
const int sz = 2000000, maxn = 130, inf = 70000000;
char buf[sz], *p1 = buf, *p2 = buf;
inline char gc() { return p1==p2&&(p2=(p1=buf)+fread(buf,1,sz,stdin), p1==p2)?EOF:*p1++; }
inline long long read() {
long long x = 0;
int f = 1;
char ch = gc();
while(ch < '0' || ch > '9') { if(ch == '-') f = -1; ch = gc(); }
while(ch >= '0' && ch <= '9') x = (x<<3)+(x<<1)+(ch&15), ch = gc();
return x *= f;
}
inline int min(int a, int b) { return a < b ? a : b; }
long long a[maxn];
int f[maxn][maxn], m[maxn][maxn];
int main() {
int n = (int)read();
int ans = inf;
for(int i = 1; i <= n; i++) {
if(i >= 128) break;
a[i] = read();
if(!a[i]) {
n--; i--;
}
}
if(n >= 128) {
printf("3\n");
return 0;
}
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if((a[i] & a[j]) && (i != j))
f[i][j] = m[i][j] = 1;
else
f[i][j] = m[i][j] = inf;
for(int k = 1; k <= n; k++) {
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++) {
if(i == j || j == k || k == i) continue;
ans = min(ans, f[i][j]+m[i][k]+m[k][j]);
}
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(f[i][j] > f[i][k] + f[k][j])
f[i][j] = f[i][k] + f[k][j];
}
printf("%d\n", ans==inf?-1:ans);
return 0;
}
溜了溜了
原文地址:https://www.cnblogs.com/lyt020321/p/11394068.html
- 你的网站做好神马搜索优化了吗?神马搜索站长工具提交
- 应用程序的通信成本
- 这或许是对小白最友好的python入门了吧——18,定义函数
- 【深度学习】图片风格转换应用程序:使用CoreML创建Prisma
- 压力测试中存在的问题
- 这或许是对小白最友好的python入门了吧——18,用while循环处理列表
- 如何在js中将统计代码图标隐藏
- 警惕IT黑洞
- 这或许是对小白最友好的python入门了吧——17,while循环
- 泛型介绍(接上一篇,具体的事例随后呈上)
- PHP高级编程之守护进程
- 看到他我一下子就悟了-- 泛型(2)
- ExtJS4中设置tabpanel的tab高度问题
- Oracle写错误与文件离线
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【动手学深度学习笔记】之通过权重衰减法解决过拟合问题
- 【动手学深度学习笔记】之多层感知机实现
- Linux程序员效率工具:比man更好用的命令提示工具
- 我对torch中的gather函数的一点理解
- 冒泡排序的实现思路和优化方案
- Java Map转对象
- 59.Vue 使用webpack构建vue项目
- Android初学设置文字跑马灯效果
- 使用Zolom内存解析运行python脚本(不落地)
- 要点3:输入函数对比与自定义输入方式
- 性能测试必备命令(3)- lscpu
- 性能测试必备命令(2)- uptime
- Lua/luajit 点与冒号的区别
- vim的几种模式mode和按键映射map
- PHP parent 的注意点