当前位置: 首页 > news >正文

青岛专业网站建设公司排名wordpress电脑进不去

青岛专业网站建设公司排名,wordpress电脑进不去,网站建设及维护服务技术指标,网站在建设中是什么意思小 K 的农场 题目描述 小 K 在 MC 里面建立很多很多的农场,总共 n n n 个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共 m m m 个),以下列三种形式描述:…

小 K 的农场

题目描述

小 K 在 MC 里面建立很多很多的农场,总共 n n n 个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共 m m m 个),以下列三种形式描述:

  • 农场 a a a 比农场 b b b 至少多种植了 c c c 个单位的作物;
  • 农场 a a a 比农场 b b b 至多多种植了 c c c 个单位的作物;
  • 农场 a a a 与农场 b b b 种植的作物数一样多。

但是,由于小 K 的记忆有些偏差,所以他想要知道存不存在一种情况,使得农场的种植作物数量与他记忆中的所有信息吻合。

输入格式

第一行包括两个整数 n n n m m m,分别表示农场数目和小 K 记忆中的信息数目。

接下来 m m m 行:

  • 如果每行的第一个数是 1 1 1,接下来有三个整数 a , b , c a,b,c a,b,c,表示农场 a a a 比农场 b b b 至少多种植了 c c c 个单位的作物;
  • 如果每行的第一个数是 2 2 2,接下来有三个整数 a , b , c a,b,c a,b,c,表示农场 a a a 比农场 b b b 至多多种植了 c c c 个单位的作物;
  • 如果每行的第一个数是 3 3 3,接下来有两个整数 a , b a,b a,b,表示农场 a a a 种植的的数量和 b b b 一样多。

输出格式

如果存在某种情况与小 K 的记忆吻合,输出 Yes,否则输出 No

样例 #1

样例输入 #1

3 3
3 1 2
1 1 3 1
2 2 3 2

样例输出 #1

Yes

提示

对于 100 % 100\% 100% 的数据,保证 1 ≤ n , m , a , b , c ≤ 5 × 1 0 3 1 \le n,m,a,b,c \le 5 \times 10^3 1n,m,a,b,c5×103

分析

差分约束模型,把每个都分析一下:

  1. 农场 a a a 比农场 b b b 至少多种植了 c c c 个单位的作物: x a − c ≥ x b x_a-c \ge x_b xacxb,构成(a,b,-c)
  2. 农场 a a a 比农场 b b b 至多多种植了 c c c 个单位的作物: x b + c ≥ x a x_b+c \ge x_a xb+cxa,构成(b,a,c)
  3. 农场 a a a 与农场 b b b 种植的作物数一样多: x a = x b → x a ≥ x b , x b ≥ x a x_a=x_b \to x_a \ge x_b,x_b \ge x_a xa=xbxaxb,xbxa,构成(a,b,0),(b,a,0)

代码

#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e8+5,M=1e6;
vector<pair<int,int> > edges[M];
int dis[M];
int n,m,s;
int cnt[M];
bool inQueue[MAXN];
int q[MAXN],f=1,t=1;
void add(int u,int v,int w){edges[u].emplace_back(v,w);}
void read(){cin>>n>>m;for(int i=1,u,v,w,opt;i<=m;i++) {cin>>opt>>u>>v;if(opt<3) cin>>w;if(opt==1) add(u,v,-w);if(opt==2) add(v,u,w);if(opt==3) {add(u,v,0);add(v,u,0);} }
}
bool spfa(int s=0)
{memset(dis,0x3f,sizeof(dis));dis[s]=0;q[t++]=s;inQueue[s]=true;while(f<t){int x=q[f++];inQueue[x]=false;for(auto& edge:edges[x]){if(dis[edge.first]<=dis[x]+edge.second) continue;dis[edge.first]=dis[x]+edge.second;if(!inQueue[edge.first]){q[t++]=edge.first;inQueue[edge.first]=true;cnt[edge.first]++;if(cnt[edge.first]>=n+1) return false;}}}return true;
}
void solve(){for(int i=1;i<=n;i++) add(0,i,0);if(!spfa()) cout<<"No"; else cout<<"Yes";
}
int main()
{read();solve();return 0;
}

分析

1.超级源点
void solve(){for(int i=1;i<=n;i++) add(0,i,0);if(!spfa()) cout<<"No"; else cout<<"Yes";
}

差分约束需要超级源点,需要与每个点构成一条边,权值为0,因为spfa可以有效判断负环,if(cnt[edge.first]>=n+1) return false;需要注意,此处为n+1,因为有超级源点

2.效率问题

STL库中的queue效率低下,常数较高,在不开O2的前提下容易tle,推荐手打队:

  1. q.push(x) → \to q[tail++]=x;
  2. q.pop() → \to head++;
  3. q.top() → \to q[head]
http://www.15wanjia.com/news/175356.html

相关文章:

  • 深圳有哪些网站开发公司温州的网站设计
  • wordpress评论点赞优化seo方案
  • 百度站长查询工具网站开发主要语言
  • 很简单的网站郑州网站seo优
  • 哈尔滨网站制作方案定制个人网站设计论文的结论
  • 建地方门户网站wordpress怎么弄垂直分类
  • 怎么学习网站建设做网站公司教程
  • 广东工程建设监理协会网站平面设计网站灵感
  • 12306网站开发投资win7 iis新建网站
  • 郑州高端建站如何查一个网站有没有做外链
  • 专门做效果图的网站城乡建设网站证件查询系统
  • 简单建优化网站无需技术个人免费网站
  • 网站建设需注意点百度企业信用
  • 百度推广网站怎么做iis7安装wordpress
  • 网站界面类型js 获取 网站路径
  • 济南物流公司网站建设商务网站建设项目的技术可行性
  • 网站会员体系织梦系统如何做网站
  • 网站如何做网站解析东莞企业制作网站
  • 优化企业网站排名要多少钱想学Wordpress建站
  • 宁波网站制作 收费网站制作案例流程图
  • 网站建设与运营wordpress编辑功能
  • 黄冈网站推广软件武器系统软件开发文档
  • 网站开发文件夹网站服务器租赁多少钱
  • icp备案查询网官网seo需要会网站建设吗
  • 甘肃省建设工程网上投标网站文创产品设计步骤
  • 太原网站建设推广公司推荐装修公司名称大全
  • 网站建设绿茶科技wordpress now 1.5
  • 做网站用的小图标wordpress数据库里的主题痕迹
  • 做的好的大学生旅行有哪些网站好asp网站后台模板
  • 如何建设好营销网站域客士单页网站