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

石家庄做网站排名公司/企业宣传册

石家庄做网站排名公司,企业宣传册,wordpress 主页插件,多与pR值高的网站做链接题目地址: https://www.luogu.com.cn/problem/P1993 题目描述: 小K在MC里面建立很多很多的农场,总共nnn个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共mmm个&#xf…

题目地址:

https://www.luogu.com.cn/problem/P1993

题目描述:
小K在MC里面建立很多很多的农场,总共nnn个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共mmm个),以下列三种形式描述:
农场aaa比农场bbb至少多种植了ccc个单位的作物;
农场aaa比农场bbb至多多种植了ccc个单位的作物;
农场aaa与农场bbb种植的作物数一样多。
但是,由于小K的记忆有些偏差,所以他想要知道存不存在一种情况,使得农场的种植作物数量与他记忆中的所有信息吻合。

输入格式:
第一行包括两个整数nnnmmm,分别表示农场数目和小K记忆中的信息数目。
接下来mmm行:
如果每行的第一个数是111,接下来有三个整数a,b,ca,b,ca,b,c,表示农场aaa比农场bbb至少多种植了ccc个单位的作物;
如果每行的第一个数是222,接下来有三个整数a,b,ca,b,ca,b,c,表示农场aaa比农场bbb至多多种植了ccc个单位的作物;
如果每行的第一个数是333,接下来有两个整数a,ba,ba,b,表示农场aaa种植的的数量和bbb一样多。

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

数据范围:
对于100%100\%100%的数据,保证1≤n,m,a,b,c≤5×1031 \le n,m,a,b,c \le 5 \times 10^31n,m,a,b,c5×103

差分约束问题,可以用最短路或者最长路来解决。考虑有n+1n+1n+1个点的最短路问题,点的编号为0,1,...,n0,1,...,n0,1,...,n000是超级源点,以其为源点考虑最短路问题。对于111类型的不等式,即有a−b≥ca-b\ge cabc,等价于b≤a+(−c)b\le a+(-c)ba+(c),可以从点aaa到点bbb连一条长度为−c-cc的有向边;对于222类型的不等式,即有a−b≤ca-b\le cabc,等价于a≤b+ca\le b+cab+c,可以从bbbaaa连一条长度为ccc的有向边;对于333类型的不等式,即有a=ba=ba=b,可以将aaabbb之间互相连一条长度为000的有向边。最后从超级源点000向其余每个点连一条长度为000的有向边,最后解以000为源点的最短路问题即可。如果存在负环,则不存在最短路,说明无解,否则说明有解。判断负环的问题可以用SPFA,并且将队列改为栈更适合判断负环。代码如下:

#include <iostream>
#include <cstring>
#include <stack>
using namespace std;const int N = 5e3 + 10, M = N << 1;
int n, m;
int h[N], e[M], ne[M], w[M], idx;
int dist[N], cnt[N];
bool vis[N];void add(int a, int b, int c) {e[idx] = b, ne[idx] = h[a], w[idx] = c, h[a] = idx++;
}bool spfa() {stack<int> stk;for (int i = 1; i <= n; i++) {stk.push(i);vis[i] = true;}while (stk.size()) {int t = stk.top(); stk.pop();vis[t] = false;for (int i = h[t]; ~i; i = ne[i]) {int v = e[i];if (dist[v] > dist[t] + w[i]) {dist[v] = dist[t] + w[i];cnt[v] = cnt[t] + 1;if (cnt[v] > n - 1) return false;if (!vis[v]) {stk.push(v);vis[v] = true;}}}}return true;
}int main() {memset(h, -1, sizeof h);scanf("%d%d", &n, &m);for (int i = 1; i <= m; i++) {int type, a, b, c;scanf("%d", &type);if (type == 3) {scanf("%d%d", &a, &b);add(a, b, 0), add(b, a, 0);} else {scanf("%d%d%d", &a, &b, &c);if (type == 1) add(a, b, -c);else add(b, a, c);}}if (spfa()) puts("Yes");else puts("No");
}

时间复杂度O(nm)O(nm)O(nm),空间O(n)O(n)O(n)

http://www.jmfq.cn/news/4795633.html

相关文章:

  • b2b电子商务网站网址/怎么做网络营销推广
  • 静态网站用什么做最快/sem推广计划
  • 浙江公司网站建设制作/武汉百度推广电话
  • 百度新疆网站建设/seo黑帽技术
  • 免费建立个人网站/青岛网站建设方案服务
  • 百度快照 如何抓取网站/百度认证营销推广师
  • 给网站做路由/外链链接平台
  • 连云港网站制作公司哪家好/国家重大新闻
  • 农业公司网站建设/海外新闻app
  • 无锡企业网站制作哪家好/汽车营销活动策划方案
  • 在线代理访问网站的网址/中国宣布取消新冠免费治疗
  • 一个网站要怎么做的/建个网站费用大概多少钱一年
  • 长网页网站/seo1域名查询
  • 制作网站教程/爱客crm
  • 长沙做网站建设/建站seo推广
  • 做网站要钱么/北京seo不到首页不扣费
  • 网站开发只要/国际局势最新消息今天
  • 发票内容能写网站建设吗/关键词排名怎么查
  • wordpress运行流程/百度seo如何快速排名
  • 股票群彩票网站做慈善/浙江seo关键词
  • 丰县住房与城乡建设部网站/百度搜索推广采取
  • 如何做网络推广优化/搜索引擎优化的流程是什么
  • 父亲节网页制作素材/seo包年优化
  • 宝安做网站哪家好/手机版怎么用百度快照
  • 哈尔滨专门做网站/中国新闻最新消息今天
  • 用什么做网站 优化/seo排名优化
  • 网站视频插件怎么做/百度地图导航2022最新版
  • 电脑网络设计干什么的/seo站长优化工具
  • 东莞专业做淘宝网站建设/seo标题生成器
  • 怎么用自己的服务器做网站/网上怎么做广告