BZOJ1202 [HNOI2005]狡猾的商人&&BZOJ3436小K的农场
差分约束第三题
很明显的差分约束,d[y]-d[x-1]>=v d[y]-d[x-1]<=v
根据这个建图然后跑bellman-ford就可以了。
//BZOJ 1202
//by Cydiater
//2016.9.2
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <queue>
#include <map>
#include <cstring>
#include <string>
#include <algorithm>
#include <iomanip>
#include <cmath>
#include <ctime>
using namespace std;
#define ll long long
#define up(i,j,n) for(int i=j;i<=n;i++)
#define down(i,j,n) for(int i=j;i>=n;i--)
;
const int oo=0x3f3f3f3f;
inline int read(){
,f=;
;ch=getchar();}
+ch-';ch=getchar();}
return x*f;
}
,dis[MAXN];
struct edge{
int x,y,v;
}e[MAXN];
namespace solution{
inline void insert(int x,int y,int v){e[++len].x=x;e[len].y=y;e[len].v=v;}
void init(){
N=read();M=read();len=;
up(i,,M){
,y=read(),v=read();
insert(x,y,-v);
insert(y,x,v);
}
}
bool Bellman_Ford(){
up(i,,N)dis[i]=oo;
up(i,,N-){
;
up(j,,len)if(dis[e[j].y]>dis[e[j].x]+e[j].v){
dis[e[j].y]=dis[e[j].x]+e[j].v;
flag=;
}
if(flag)break;
}
up(j,,len);
;
}
}
int main(){
//freopen("input.in","r",stdin);
using namespace solution;
T=read();
while(T--){
init();
if(Bellman_Ford())puts("true");
else puts("false");
}
;
}
差分约束第四题
和上一道题基本一样
//BZOJ 3436
//by Cydiater
//2016.9.2
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <iomanip>
#include <algorithm>
#include <queue>
#include <map>
#include <ctime>
#include <cmath>
using namespace std;
#define ll long long
#define up(i,j,n) for(int i=j;i<=n;i++)
#define down(i,j,n) for(int i=j;i>=n;i--)
;
const int oo=0x3f3f3f3f;
inline int read(){
,f=;
;ch=getchar();}
+ch-';ch=getchar();}
return x*f;
}
,dis[MAXN];
struct edge{
int x,y,v;
}e[MAXN];
namespace solution{
inline void insert(int x,int y,int v){e[++len].x=x;e[len].y=y;e[len].v=v;}
void init(){
N=read();M=read();
while(M--){
int flag=read(),x,y,v;
){
x=read();y=read();
insert(x,y,);
insert(y,x,);
}
){
x=read();y=read();v=read();
insert(x,y,-v);
}
){
x=read();y=read();v=read();
insert(y,x,v);
}
}
}
bool Bellman_Ford(){
up(i,,N)dis[i]=oo;
up(i,,N-){
;
up(j,,len)if(dis[e[j].y]>dis[e[j].x]+e[j].v){
dis[e[j].y]=dis[e[j].x]+e[j].v;
flag=;
}
if(flag)break;
}
up(j,,len);
;
}
}
int main(){
//freopen("input.in","r",stdin);
using namespace solution;
init();
if(Bellman_Ford())puts("Yes");
else puts("No");
;
}
BZOJ1202 [HNOI2005]狡猾的商人&&BZOJ3436小K的农场的更多相关文章
- [BZOJ1202][HNOI2005]狡猾的商人
[BZOJ1202][HNOI2005]狡猾的商人 试题描述 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i= ...
- bzoj3436小K的农场
bzoj3436小K的农场 题意: n个数,知道m条关系:a-b≥c.a-b≤c或a==b.问是否存在满足所有关系的情况.n≤10000,m≤10000. 题解: 差分约束.因为只要求是否满足,因此最 ...
- BZOJ1202 [HNOI2005]狡猾的商人 【并查集】
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 4180 Solved: 2015 [Submit][S ...
- bzoj1202: [HNOI2005]狡猾的商人(并查集 差分约束)
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4127 Solved: 1981[Submit][Sta ...
- bzoj1202: [HNOI2005]狡猾的商人(差分约束)
1202: [HNOI2005]狡猾的商人 题目:传送门 题解: 据说是带权并查集!蒟蒻不会啊!!! 可是听说lxj大佬用差分约束A了,于是开始一通乱搞. 设s[i]为前i个月的总收益,那么很容易就可 ...
- BZOJ1202 [HNOI2005]狡猾的商人 并查集维护前缀和
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1935 Solved: 936[Submit][Stat ...
- [bzoj3436]小K的农场_差分约束
小K的农场 bzoj-3436 题目大意:给定n个点,每个节点有一个未知权值.现在有m个限制条件,形如:点i比点j至少大c,点i比点j至多大c或点i和点j相等.问是否可以通过给所有点赋值满足所有限制条 ...
- BZOJ3436: 小K的农场(差分约束裸题&DFS优化判环)
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2111 Solved: 986[Submit][Status][Discus ...
- bzoj3436: 小K的农场(差分约束)
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1575 Solved: 690[Submit][Status][Discus ...
随机推荐
- Linq连接查询之左连接、右连接、内连接、全连接、交叉连接、Union合并、Concat连接、Intersect相交、Except与非查询
内连接查询 内连接与SqL中inner join一样,即找出两个序列的交集 Model1Container model = new Model1Container(); //内连接 var query ...
- 如何解决Windows 10系统下设备的声音问题
如何解决Windows 10系统下设备的声音问题? 请阅读下面的说明来解决Windows 10设备上的声音问题. 1. 检查设备管理器 打开开始菜单,键入设备管理器, 从出现的结果中选择并打开它. 在 ...
- C# 利用反射动态将字符串转换成属性对应的类型值
/// <summary> /// 为指定对象分配参数 /// </summary> /// <typeparam name="T">对象类型& ...
- 很简单的多线程访问python嘿嘿嘿
import urllib import socket from threading import * url = "http://www.baidu.com/s?ie=UTF-8& ...
- oracle 学习笔记
--2.2 进入和退出oracle数据库--在windows中输入cmd打开命令窗口 然后输入 sqlplu / as sysdba--验证数据库是否安装成功 --select status from ...
- 71 fdisk-Linux 的磁盘分区表操作工具。
语法: fdisk [-l] 装置名称 选项与参数: -l :输出后面接的装置所有的分区内容.若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来. 实例 列出所有分区 ...
- Beta--项目冲刺第六天
胜利在望-- 队伍:F4 成员:031302301 毕容甲 031302302 蔡逸轩 031302430 肖阳 031302418 黄彦宁 会议内容: 1.站立式会议照片: 2.项目燃尽图 3.冲刺 ...
- extJs学习基础 容器的介绍
Viewport: 一个专门的容器用于可视应用领域(浏览器窗口). Viewport渲染自身到网页的documet body区域, 并自动将自己调整到适合浏览器窗口的大小,在窗口大小发生改变时自动适应 ...
- KVM 内存虚拟化
内存虚拟化的概念 除了 CPU 虚拟化,另一个关键是内存虚拟化,通过内存虚拟化共享物理系统内存,动态分配给虚拟机.虚拟机的内存虚拟化很象现在的操作系统支持的虚拟内存方式,应用程序看到邻近的内存 ...
- Java面试常考知识点
1. 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Jav ...