【BZOJ5470】[FJOI2018]所罗门王的宝藏()
【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]所罗门王的宝藏()相关推荐
- 中国石油大学 个人训练赛第五场C:所罗门王的宝藏(高斯消元)
题目描述 据古代传说记载,所罗门王既是智慧的代表,又是财富的象征.他建立了强大而富有的国家,聚集了大批的黄金象牙和钻石,并把这些价值连城的珍宝藏在一个神秘的地方,这就是世人瞩目的"所罗门王的 ...
- 【BZOJ5470】【FJOI2018】—所罗门王的宝藏(BFS)
传送门 考虑每一颗绿宝石xxx向yyy连边,把一次加看做一个点的点值加 只需要看每个环上是否恒等,bfs即可 #include<bits/stdc++.h> using namespace ...
- 其他-私人♂收藏(比赛记录 Mar, 2019)
OwO 03.03 [USACO19JAN] A. Redistricting 题意:给 \(g\) ,求 \(f(n)\) . \(f(i)=f(j)+[g(i)\ge g(j)],j \in (i ...
- yyb省选前的一些计划
突然意识到有一些题目的计划,才可以减少大量查水表或者找题目的时间. 所以我决定这样子处理. 按照这个链接慢慢做. 当然不可能只做省选题了. 需要适时候夹杂一些其他的题目. 比如\(agc/arc/cf ...
- 华为手机里的“麦田守望者”
为了一个理由, 有人英勇地死去, 为了一个理由, 有人坚韧地生存. 华为手机里的"麦田守望者" 文 | 史中 (零)秋日故事 2020年10月,秋日的深圳暖阳轻抚,一位老大爷缓缓走 ...
- 算法学习之道,应有三重境界
https://www.toutiao.com/a6712297555167805966/ 王国维先生在<人间词话>中写道:古今之成大事业.大学问者,必经过三种境界:"昨夜西风凋 ...
- 学好算法,有三重境界
王国维先生在<人间词话>中写道:古今之成大事业.大学问者,必经过三种境界:"昨夜西风凋碧树.独上高楼,望尽天涯路."此第一境也."衣带渐宽终不悔,为伊消得人憔 ...
- 旅行大数据 -- 全球24个时区国家在同一天的生活
耐心看完,可以对全球国家的分布有一个初步了解. 早上6点,东萨摩亚岛的人还在沉睡,这是位于南太平洋的隶属于美国的小岛屿,面积仅有199平方公里,人口5万多人. 这里的经济来源主要是金枪鱼罐头出口,当地 ...
- 1.4亿围观!宝藏副教授火速走红:如果不喜欢我的研究方向,我可以改!
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 "叫我'小邹'就行, 如果不喜欢我的研究方向, 我可以改& ...
- 竞赛比完,代码、模型怎么处理?Kaggle 大神:别删,这都是宝藏
选自 | medium 作者 | Vladimir Iglovikov 转自 | 机器之心 那些被遗忘的竞赛项目代码.权重可能也是一笔宝藏. 很多人可能参加过许多比赛,做过许多项目,但比赛或项目结束之 ...
最新文章
- C++_reference
- Spring Boot Serverless 实战系列“部署篇” | Mall 应用
- thinkphp路由配置 php7.0,thinkphp3.2 路由设置方法
- HP 3055 恢复出厂
- OpenGL之简单渲染一个三角形
- UIImage 压缩
- 分词消除歧义_角色标题消除歧义
- oracle中值集限定词为灰色,《Oracle从入门到精通》读书笔记第四章 SQL语言基础之一...
- deeplearning4j的学习
- 我的世界java种子 要塞,我的世界:稀奇种子,恐龙骨架出现在要塞,你绝对没见过...
- 做个PC端打字小游戏
- 什么是代理IP(代理服务器)如何正确使用代理IP(代理服务器)
- 一级b仅html格式保存,一级B考试模拟试题-第一套,DOS版本:6.0
- js 编码解码 escape,encodeURI,encodeURIComponent
- 网页AB Testing的七个原则(半成品)
- php中getopt函数的使用
- 【天梯赛练习题(c语言)】
- 生产计划体系完整解决方案(2) : 复杂大规模问题之 - 分区规划
- IncorrectResultSizeDataAccessException: Incorrect result size: expected 1, actual 2
- Facebook ATC弱网环境搭建