【BZOJ5470】[FJOI2018]所罗门王的宝藏()

题面

BZOJ
洛谷

有\(n+m\)个变量,给定\(k\)组限制,每次告诉你\(a_i+b_j=c_k\),问是否有可行解。

题解

一道很呆的题目,我都不知道应该算什么类型了。。。
把行列拆开,对于一个限制\(x,y,c\),连边\(x\)行到\(y\)列,边权为\(c\)。
然后\(dfs\)一遍,如果存在环的话显然必须要环上存在合法解,那么随便令一个东西为\(x\),记录每个值为\(ax+b\)的形式,检查二分图是否合法。

#include<iostream>
#include<cstdio>
using namespace std;
#define MAX 2020
inline int read()
{int x=0;bool t=false;char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')t=true,ch=getchar();while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();return t?-x:x;
}
int n,m,K;
int a[MAX],b[MAX];bool vis[MAX];
struct Line{int v,next,w;}e[MAX];
int h[MAX],cnt=1;
inline void Add(int u,int v,int w){e[cnt]=(Line){v,h[u],w};h[u]=cnt++;}
bool Flag;
void dfs(int u)
{vis[u]=true;if(!Flag)return;for(int i=h[u];i;i=e[i].next){int v=e[i].v,w=e[i].w;if(!vis[v])a[v]=-a[u],b[v]=w-b[u],dfs(v);else if(a[v]+a[u]!=0||b[u]+b[v]!=w){Flag=false;return;}}
}
int main()
{int T=read();while(T--){n=read();m=read();K=read();cnt=1;for(int i=1;i<=K;++i){int x=read(),y=read(),d=read();Add(x,y+n,d);Add(y+n,x,d);}Flag=true;for(int i=1;Flag&&i<=n;++i)if(!vis[i])a[i]=1,b[i]=0,dfs(i);puts(Flag?"Yes":"No");for(int i=1;i<=n+m;++i)vis[i]=false,h[i]=0;}return 0;
}

转载于:https://www.cnblogs.com/cjyyb/p/10447085.html

【BZOJ5470】[FJOI2018]所罗门王的宝藏()相关推荐

  1. 中国石油大学 个人训练赛第五场C:所罗门王的宝藏(高斯消元)

    题目描述 据古代传说记载,所罗门王既是智慧的代表,又是财富的象征.他建立了强大而富有的国家,聚集了大批的黄金象牙和钻石,并把这些价值连城的珍宝藏在一个神秘的地方,这就是世人瞩目的"所罗门王的 ...

  2. 【BZOJ5470】【FJOI2018】—所罗门王的宝藏(BFS)

    传送门 考虑每一颗绿宝石xxx向yyy连边,把一次加看做一个点的点值加 只需要看每个环上是否恒等,bfs即可 #include<bits/stdc++.h> using namespace ...

  3. 其他-私人♂收藏(比赛记录 Mar, 2019)

    OwO 03.03 [USACO19JAN] A. Redistricting 题意:给 \(g\) ,求 \(f(n)\) . \(f(i)=f(j)+[g(i)\ge g(j)],j \in (i ...

  4. yyb省选前的一些计划

    突然意识到有一些题目的计划,才可以减少大量查水表或者找题目的时间. 所以我决定这样子处理. 按照这个链接慢慢做. 当然不可能只做省选题了. 需要适时候夹杂一些其他的题目. 比如\(agc/arc/cf ...

  5. 华为手机里的“麦田守望者”

    为了一个理由, 有人英勇地死去, 为了一个理由, 有人坚韧地生存. 华为手机里的"麦田守望者" 文 | 史中 (零)秋日故事 2020年10月,秋日的深圳暖阳轻抚,一位老大爷缓缓走 ...

  6. 算法学习之道,应有三重境界

    https://www.toutiao.com/a6712297555167805966/ 王国维先生在<人间词话>中写道:古今之成大事业.大学问者,必经过三种境界:"昨夜西风凋 ...

  7. 学好算法,有三重境界

    王国维先生在<人间词话>中写道:古今之成大事业.大学问者,必经过三种境界:"昨夜西风凋碧树.独上高楼,望尽天涯路."此第一境也."衣带渐宽终不悔,为伊消得人憔 ...

  8. 旅行大数据 -- 全球24个时区国家在同一天的生活

    耐心看完,可以对全球国家的分布有一个初步了解. 早上6点,东萨摩亚岛的人还在沉睡,这是位于南太平洋的隶属于美国的小岛屿,面积仅有199平方公里,人口5万多人. 这里的经济来源主要是金枪鱼罐头出口,当地 ...

  9. 1.4亿围观!宝藏副教授火速走红:如果不喜欢我的研究方向,我可以改!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 "叫我'小邹'就行, 如果不喜欢我的研究方向, 我可以改& ...

  10. 竞赛比完,代码、模型怎么处理?Kaggle 大神:别删,这都是宝藏

    选自 | medium 作者 | Vladimir Iglovikov 转自 | 机器之心 那些被遗忘的竞赛项目代码.权重可能也是一笔宝藏. 很多人可能参加过许多比赛,做过许多项目,但比赛或项目结束之 ...

最新文章

  1. C++_reference
  2. Spring Boot Serverless 实战系列“部署篇” | Mall 应用
  3. thinkphp路由配置 php7.0,thinkphp3.2 路由设置方法
  4. HP 3055 恢复出厂
  5. OpenGL之简单渲染一个三角形
  6. UIImage 压缩
  7. 分词消除歧义_角色标题消除歧义
  8. oracle中值集限定词为灰色,《Oracle从入门到精通》读书笔记第四章 SQL语言基础之一...
  9. deeplearning4j的学习
  10. 我的世界java种子 要塞,我的世界:稀奇种子,恐龙骨架出现在要塞,你绝对没见过...
  11. 做个PC端打字小游戏
  12. 什么是代理IP(代理服务器)如何正确使用代理IP(代理服务器)
  13. 一级b仅html格式保存,一级B考试模拟试题-第一套,DOS版本:6.0
  14. js 编码解码 escape,encodeURI,encodeURIComponent
  15. 网页AB Testing的七个原则(半成品)
  16. php中getopt函数的使用
  17. 【天梯赛练习题(c语言)】
  18. 生产计划体系完整解决方案(2) : 复杂大规模问题之 - 分区规划
  19. IncorrectResultSizeDataAccessException: Incorrect result size: expected 1, actual 2
  20. Facebook ATC弱网环境搭建

热门文章

  1. 以下描述中最不适合用计算机编程来处理的是,以下描述中最适合用计算机编程来处理的问题是( ?)。...
  2. 百度高德经纬度-离线一键批量纠偏工具
  3. 日程安排工具Calendso
  4. python 题目 给出一个整数数组 nums 和一个整数 k
  5. 两个向量叉乘表示什么意思_为什么向量积(叉乘)的这两个概念是这样的?
  6. 扫雷游戏(可展开,可标记)C语言实现
  7. 必须知道的C语言知识细节:单引号和双引号正确用法
  8. oracle单引号和双引号用法
  9. SiamRPN 论文理解
  10. 教育云助武汉大学实现校园信息化