题目大意:给定一个有向图,其中边有边权。求点数最少的正环的点数。

题解:建立矩阵,处理其二进制上每一位的状态。时间O(n^3*log(n))。

代码:

#include<cstdio>
#include<algorithm>
using namespace std;
#define N 305
#define ll long long
#define inf 0x7fffffff
int n,m;
struct jz
{
ll s[N][N];
bool check()
{
for(int i=;i<=n;i++)
if(s[i][i])return ;
return ;
}
jz operator * (jz a)
{
jz b;
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
b.s[i][j]=-inf;
for(int k=;k<=n;k++)
{
b.s[i][j]=max(b.s[i][j],s[i][k]+a.s[k][j]);
}
}
}
return b;
}
}p[],p0,p1; int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(i!=j)
p[].s[i][j]=-inf;
for(int a,b,c,d,i=;i<=m;i++)
{
scanf("%d%d%d%d",&a,&b,&c,&d);
p[].s[a][b]=c;
p[].s[b][a]=d;
}
for(int i=;i<=;i++)
p[i]=p[i-]*p[i-];
if(!p[].check())
{
printf("0\n");
return ;
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(i!=j)
p0.s[i][j]=-inf;
int ans = ;
for(int i=;i>=;i--)
{
p1=p0*p[i];
if(!p1.check())
{
p0=p1;
ans|=(<<i);
}
}
printf("%d\n",ans+);
return ;
}

CF147B Smile House的更多相关文章

  1. NOIP前的水题记录

    CF147B Smile House 二分+矩阵快速幂,注意一下储存矩阵相乘结果的矩阵,初始化时,a[i][i]=-inf(而其他都可以a[i][i]=0,为了保证答案的可二分性). CF715B C ...

  2. Smile with face. Smile with mind.

    Smile with face. Smile with mind.微笑不仅是挂在脸上的,更是发自心底的.

  3. Codeforces 147B Smile House(DP预处理 + 倍增)

    题目链接  Smile House 题意  给定一个$n$个点的有向图,求一个点数最少的环,使得边权之和$>0$,这里的环可以重复经过点和边.   满足  $n <= 300$ 首先答案肯 ...

  4. hdu-6638 Snowy Smile

    题目链接 Snowy Smile Problem Description There are n pirate chests buried in Byteland, labeled by 1,2,-, ...

  5. HDU 6638 - Snowy Smile 线段树区间合并+暴力枚举

    HDU 6638 - Snowy Smile 题意 给你\(n\)个点的坐标\((x,\ y)\)和对应的权值\(w\),让你找到一个矩形,使这个矩阵里面点的权值总和最大. 思路 先离散化纵坐标\(y ...

  6. 2019杭电多校第六场hdu6638 Snowy Smile(线段树+枚举)

    Snowy Smile 题目传送门 解题思路 先把y离散化,然后把点按照x的大小进行排序,我们枚举每一种x作为上边界,然后再枚举其对应的每一种下边界.按照这种顺序插入点,这是一个压维的操作,即在线段树 ...

  7. If you see someone without smile

    If you see someone without smile, give them one of yours. 难怪我每次和不认识的人说话都放肆大笑.

  8. smile——Java机器学习引擎

    资源 https://haifengl.github.io/ https://github.com/haifengl/smile 介绍 Smile(统计机器智能和学习引擎)是一个基于Java和Scal ...

  9. Codeforces 147 B. Smile House

    题目链接:http://codeforces.com/contest/147/problem/B 求有向图的最小正权环的大小   ${n<=300}$ 非常显然的有${n^{3}log^2}$的 ...

随机推荐

  1. 转:IIS MVC 发布错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容

    访问网址:http://blog.csdn.net/csethcrm/article/details/37820135 有两个地方需要配置: 1.web.config中的节点: <system. ...

  2. 2-17 numpy模块使用

    #CURD import numpy as np data1 = np.array([1,2,3,4,5]) print(data1) data2 = np.array([[1,2], [3,4]]) ...

  3. Java多线程系列七——ExecutorService

    java.util.concurrent.ExecutorService接口提供了许多线程管理的方法 Method 说明 shutdown 拒绝接收新的任务,待已提交的任务执行后关闭,且宿主线程不阻塞 ...

  4. bzoj 3470: Freda’s Walk【拓扑排序+期望dp】

    dfs会T,只好正反两遍拓扑了-- #include<iostream> #include<cstdio> #include<queue> #include< ...

  5. springboot(九) Cache缓存和Redis缓存

    1. Cache缓存 1.1 缓存的概念&缓存注解 Cache 缓存接口,定义缓存操作.实现有:RedisCache.EhCacheCache.ConcurrentMapCache等 Cach ...

  6. 原生JavaScript实战之搜索框筛选功能

    成品图如下所示: 先搭建HTML结构: <div class="wrapper"> <div class="sWrapper"> < ...

  7. phpstudy 集成的mysql 无法启动

    问题产生: 安装好phpstudy后,Apache可以启动,Mysql无法启动.  解决方法: 之前已经装过Mysql,要把系统服务里面的MySQL删除,留下MySQLa服务. 在cmd命令行下输入: ...

  8. python_数据类型基本操作(2)

    概览: 第1章 基础数据类型宏观的初识第2章 int 第3章 bool 第4章 str 4.1 python体现形式 4.2 引号用法 4.3 字符串运算 4.3.1 字符串相加 4.3.2 字符串相 ...

  9. Uediter的引用和取值

    页面应用Uediter控件,代码如下: <tr> <td align="center" class="xwnr_j"> <asp: ...

  10. 一段js实现复制文本内容到剪切板

    <script type="text/javascript"> function copyUrl2() { var Url2=document.getElementBy ...