参考的博客

在【有趣的思维题】里看到了这道题。

题意:

给出一个\(A\times B\)的矩阵,其中第i行第j列元素为\(d_{i,j}\),试构造一个有向图,满足:

  • 有向图点数\(\le 300\)

  • 没有重边和自环

  • 图中边有边权,边权\(\in [0,100]\)且是正整数。或者是未知数X或者Y

  • 对于所有\(x \in [1,A] \ y\in[1,B]\),满足未知数\(X=x,Y=y\)时,图中s到t的最短路为\(d_{x,y}\)

看清楚题目了,睁大眼睛。s和t是自己选定的,x和y是在区间内变化的,再读一遍题意。

分析:

当 \(s\) 与 \(t\) 之间的路径上有 \(i\) 个\(x\) ,\(j\) 个 \(y\) ,设 \(f_{i,j}\) 表示此时路径上其余边的最小可能长度。

\(d_{x,y}\ge ix+jy+f_{i,j}\) 。

有:\(d_{x,y}=\min \{ix+jy+f_{i,j}\}\)

尝试构造一种情况,

\(f_{i,j}=\max \{d_{x,y}-ix-jy\}\)

连两条长度为 \(100\) ,有 \(101\) 个点的链,一条链所有边权为 \(X\) ,另一条链所有边权为 \(Y\)

\(X\) 链的第 \(i\) 个节点和 \(Y\) 链的倒数第 \(j\) 个节点间连一条边权 \(f_{i,j}\) 的边。

如果 \(d_{x,y} \neq \min \{ix+jy+f_{i,j}\}\) 则是无解情况。

否则输出答案。

#include<bits/stdc++.h>
using namespace std;
const int inf=0x3f3f3f3f,N=310;
int n,m,f[N][N],d[N][N];
int bmin(int a,int b){ return (a<b)?a:b;}
int bmax(int a,int b){ return (a<b)?b:a;}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) for(int j=1;j<=m;j++)
scanf("%d",&d[i][j]);
for(int i=0;i<=100;i++) for(int j=0;j<=100;j++)
for(int x=1;x<=n;x++) for(int y=1;y<=m;y++)
f[i][j]=bmax(f[i][j],d[x][y]-i*x-j*y);
for(int x=1;x<=n;x++) for(int y=1;y<=m;y++){
int mn=inf;
for(int i=0;i<=100;i++) for(int j=0;j<=100;j++)
mn=bmin(mn,f[i][j]+i*x+j*y);
if(mn!=d[x][y]){ puts("Impossible"); return 0; }
}
puts("Possible"); printf("202 10401\n");
for(int i=1;i<=100;i++) printf("%d %d X\n",i,i+1);
for(int i=102;i<202;i++) printf("%d %d Y\n",i,i+1);
for(int i=0;i<=100;i++) for(int j=0;j<=100;j++)
printf("%d %d %d\n",i+1,202-j,f[i][j]);
puts("1 202");
return 0;
}

题解 AT3877 【[ARC089C] GraphXY】的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. 030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符

    030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符 本文知识点:Java中的条件运算符 条件运算符是Java当中唯一一个三目运算符 什么是三目运算 ...

  2. java多线程:线程池原理、阻塞队列

    一.线程池定义和使用 jdk 1.5 之后就引入了线程池. 1.1 定义 从上面的空间切换看得出来,线程是稀缺资源,它的创建与销毁是一个相对偏重且耗资源的操作,而Java线程依赖于内核线程,创建线程需 ...

  3. OpenCV计算机视觉学习(2)——图像算术运算 & 掩膜mask操作(数值计算,图像融合,边界填充)

    在OpenCV中我们经常会遇到一个名字:Mask(掩膜).很多函数都使用到它,那么这个Mask到底是什么呢,下面我们从图像基本运算开始,一步一步学习掩膜. 1,图像算术运算 图像的算术运算有很多种,比 ...

  4. Azure内容审查器之羞羞图审查

    上一篇 Azure 内容审查器之文本审查我们已经介绍了如果使用Azure进行文字内容的审核.对于社区内容,上传的图片是否含有羞羞内容也是需要过虑的.但是最为一般开发者自己很难实现这种级别的智能识别.但 ...

  5. 磁盘 IOPS(每秒读写次数) 的计算方法

    一.磁盘 I/O 的概念 I/O 的概念,从字义来理解就是输入输出.操作系统从上层到底层,各个层次之间均存在 I/O.比如,CPU 有 I/O,内存有 I/O, VMM 有 I/O, 底层磁盘上也有 ...

  6. 重装Windows系统 入门详解 - 基础教程

    重装Windows系统 入门详解 - 基础教程 JERRY_Z. ~ 2020 / 10 / 13 转载请注明出处!️ 目录 重装Windows系统 入门详解 - 基础教程 一.说明 二.具体步骤 ( ...

  7. 如何让矢量瓦片配图神器maputnik支持 geoserver

    关键词:maputnik.geoserver.矢量地图.矢量瓦片.mapbox.mapboxgl.地图配图.地图配色 一直想搞一个类似百度.高德地图那样的矢量地图配图工具 百度个性化地图配图工具: 高 ...

  8. SpringBoot整合Mybatis 编译失败:找不到符号 程序包不存在

    问题描述:jpa不好用,转用mybatis,配置多数据源  但是配置后无法编译mvn clean install  dao层这些报错,找不到entity的包     问题解决:罪魁祸首:热部署的部分 ...

  9. php安装kafka扩展

    https://blog.csdn.net/zsl10/article/details/78743335 https://blog.csdn.net/lw545034502/article/detai ...

  10. docker19.03限制容器使用的内存资源

    一,指定内存大小的参数: [root@localhost liuhongdi]# docker run -idt --name kafka2 --hostname kafka2 -m 200M --m ...