传送门

考虑一个位置答案传递性,如果某个位置的红宝石转动确定了,那么会引起连锁反应:

如图,绿色的转动确定了,那么那两个蓝色的转动也确定了

自己手玩一下,发现如果有解那么随便找一个开始然后一路玩下去最后一定会有解,如果一旦有冲突那么之后不管怎么调整也都一定无解,(因为调整最后又会绕回自己继续冲突)

然后就直接BFS搜就好了

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>
using namespace std;
inline int read()
{int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); }while(ch>='0'&&ch<='9') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }return x*f;
}
const int N=20007;
int fir[N],from[N],to[N],val[N],cntt;
inline void add(int a,int b,int c)
{from[++cntt]=fir[a];fir[a]=cntt; to[cntt]=b; val[cntt]=c;
}
int T,n,m,K;
int del[N];
bool vis[N],GG;
void BFS(int st)
{queue <int> q;q.push(st); vis[st]=1;while(!q.empty()){int x=q.front(); q.pop();for(int i=fir[x];i;i=from[i]){int &v=to[i],&w=val[i];if(vis[v]){if(del[v]!=w-del[x]) { GG=1; return; }continue;}del[v]=w-del[x]; vis[v]=1;q.push(v);}}
}
int main()
{int a,b,c;T=read();while(T--){memset(vis,0,sizeof(vis)); memset(del,0,sizeof(del));memset(fir,0,sizeof(fir)); cntt=0; GG=0;n=read(); m=read(); K=read();for(int i=1;i<=K;i++){a=read(); b=read(); c=read();add(a,b+n,c); add(b+n,a,c);}for(int i=1;i<=n+m;i++){if(!vis[i]) BFS(i);if(GG) break;}if(GG) printf("No\n");else printf("Yes\n");}return 0;
}

转载于:https://www.cnblogs.com/LLTYYC/p/10611281.html

P4578 [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. Linux下软件安装方法汇总
  2. mysql 多表查询or_MySQL 多表查询
  3. java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
  4. python画图颜色表示大小变化_python画图(线条颜色、大小、类型:点、虚线等)(图文详细入门教程四)...
  5. html不支持ie7,解决IE6/IE7/IE8不支持before,after问题
  6. 养成这8个好习惯 开车会很安全的
  7. 无法使用集合初始化_Java集合类解析之Hashtable
  8. (30)FPGA面试技能提升篇(基尔霍夫定律)
  9. 这家总资产排名第一的银行,为什么叫“小”摩?
  10. Linux工作笔记024---Centos7 下查看本机公网IP
  11. 错误代码: 1066 Not unique table/alias: #39;c#39;
  12. cocos2d-x瓦片地图制作详解
  13. 你真的了解 MySQL 数据库的运行状况吗?
  14. 对医疗类网站的seo优化方法细致探讨
  15. [Unity]Curvy插件随机生成装饰物
  16. 重装系统找不到固态_安装Win10系统没有固态硬盘(双硬盘找不到固态硬盘)怎么解决?...
  17. WordPress插件|ThnBoV1.3.0-缩略图美化插件
  18. 【GXOI/GZOI2019】与或和【单调栈】
  19. python中一个函数调用另一个函数中的变量
  20. 为什么加了@WebFilter注解,Spring却没有给我自动注入该过滤器?

热门文章

  1. pycharm 安装pip 详细步骤
  2. round函数几位小数c语言,Excel中利用round函数保留两位小数实例详解
  3. 免费且快速搭建个人www服务器的教程
  4. 开学季,如何申请免费学生云服务器
  5. 安装ansys时出现问题 MS.NET Framework would you like to retry?的解决办法:
  6. 自学java后都是怎么找的工作?
  7. 手把手教你如何自学计算机,绝对的干货满满!!!
  8. pytorch 安装教程
  9. c语言 节日,农历阳历之间转换和节气节日查询C语言编程
  10. vscode 程序员鼓励师_把软萌程序猿鼓励师装进VScode?最强交互彩虹屁,GitHub2.5k星标...