【洛谷P3275】糖果【差分约束】【负环】

【芯片设计- RTL 编译与仿真 1.2 -- Visualizer 常用使用命令】 打开波形后,如果想要看到所有信号的数据,可以点击下图中红框中的按钮,因为默认verdi 默认并不是显示所用信号。如果想统计某一个信号中有多少笔数据时,可以使用 Expression->Edege Count 功能。如下图所示,如果没有打开前导0的功能时,当某一笔数据位0时,只会显示1个0。如果需要将波形的数据导出到文本文件时,可以按照下面步骤进行。打开前导0功能之后,会根据数据位宽来显示对应0的个数。 阅读详情

题目大意:

题目链接:https://www.luogu.org/problemnew/show/P3275
有 n n n个小朋友和 m m m个要求,其中要求的格式如下:

  • 1   A   B 1\ A\ B 1 A B, 表示第 A A A 个小朋友分到的糖果必须和第 B B B 个小朋友分到的糖果一样多;
  • 2   A   B 2\ A\ B 2 A B, 表示第 A A A 个小朋友分到的糖果必须少于第 B B B 个小朋友分到的糖果;
  • 3   A   B 3\ A\ B 3 A B, 表示第 A A A 个小朋友分到的糖果必须不少于第 B B B 个小朋友分到的糖果;
  • 4   A   B 4\ A\ B 4 A B, 表示第 A A A 个小朋友分到的糖果必须多于第 B B B 个小朋友分到的糖果;
  • 5   A   B 5\ A\ B 5 A B, 表示第 A A A 个小朋友分到的糖果必须不多于第 B B B 个小朋友分到的糖果;

求至少要多少个糖果使得每个小朋友都可以分到糖果并且所有要求都满足。


思路:

这道题的查封约束十分的明显。可以直接列出来:

  1. 需要满足 x = y x=y x=y,为了写成 a ≤ b a\leq b a≤b的形式,可以改成 x ≤ y x\leq y x≤y且 y ≤ x y\leq x y≤x
  2. 需要满足 x &lt; y x&lt; y x<y,也就是说 a ≤ y − 1 a\leq y-1 a≤y−1
  3. 需要满足 x ≥ y x\geq y x≥y,直接反过来变成 y ≤ x y\leq x y≤x即可
  4. 需要满足 x &gt; y x&gt;y x>y,即 x ≥ y + 1 x\geq y+1 x≥y+1,移项得 y ≤ x − 1 y\leq x-1 y≤x−1
  5. 需要满足 x ≤ y x\leq y x≤y,不解释了

对于连边方式2和4需要特判,如果 x = y x=y x=y那么明显是不成立的。
但是这道题很奇怪,负权+跑最短路+判负环只能拿70分。改成正权+最长路+判正环才可以。
而且第六个点明显是卡了 s p f a spfa spfa的, a d d ( 0 , i , 0 ) ( i = 1 ∼ n ) add(0,i,0)(i=1\sim n) add(0,i,0)(i=1∼n)会被卡T。其实应该是可以随机连边的,应该可以过掉,但是看到说 a d d ( 0 , i , 0 ) ( i = n ∼ 1 ) add(0,i,0)(i=n\sim1) add(0,i,0)(i=n∼1)就可以过就没有随机了。
总之一道神题orz就对了。


代码:

#include <cstdio>
#include <queue>
#include <cstring>
#include <iostream>
using namespace std;
typedef long long ll;

const int N=100010;
const int M=300010;
int n,m,tot,x,y,z;
int head[N],cnt[N];
ll dis[N],ans,minn;
bool vis[N];

struct edge
{
	int to,next;
	ll dis;
}e[M];

void add(int from,int to,ll dis)
{
	e[++tot].to=to;
	e[tot].dis=dis;
	e[tot].next=head[from];
	head[from]=tot;
}

bool spfa()
{
	memset(dis,0xcf,sizeof(dis));
	memset(vis,0,sizeof(vis));
	queue<int> q;
	q.push(0);
	vis[0]=1;
	dis[0]=0;
	cnt[0]=1;
	while (q.size())
	{
		int u=q.front(),v;
		q.pop();
		vis[u]=0;
		for (int i=head[u];~i;i=e[i].next)
		{
			v=e[i].to;
			if (dis[v]<dis[u]+e[i].dis)  //最长路
			{
				dis[v]=dis[u]+e[i].dis;
				cnt[v]=cnt[u]+1;
				if (cnt[v]>n+1) return 0;
				if (!vis[v])
				{
					q.push(v);
					vis[v]=1;
				}
			}
		}
	}
	return 1;
}

int main()
{
	memset(head,-1,sizeof(head));
	scanf("%d%d",&n,&m);
	for (int i=1;i<=m;i++)
	{
		scanf("%d%d%d",&z,&x,&y);
		if (z%2==0&&x==y) return !printf("-1");  //特判,我大于我自己
		if (z==1) add(x,y,0),add(y,x,0);
		if (z==2) add(x,y,1);
		if (z==3) add(y,x,0);
		if (z==4) add(y,x,1);
		if (z==5) add(x,y,0);
	}
	for (int i=n;i>=1;i--)
		add(0,i,0);
	minn=2147483647;
	if (spfa())
	{
		for (int i=1;i<=n;i++)
		{
			minn=min(minn,dis[i]);
			ans+=dis[i];
		}
		printf("%lld\n",ans-(minn-1)*(ll)n);
	}
	else printf("-1");
	return 0;
}
Devexpress16.2.6破解工具 Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具 立即下载

相关推荐

全国各省份影像下载地址(11级别)

cesium中使用urltemplate加载,leaflet中使用tile加载,具体加载有问题可以给我留言。

资深三维GIS开发 5142

P3275 糖果(差分约束)

其实最开始我打草稿画图的时候觉得这是拓扑排序,但是我太菜了建不来图然后只能去套差分约束。 什么是差分约束呢,形如xi-xj<=m的式子我们可以联想到最短路的式子:dis[v]<=dis[u]+w。 如何求出xi的解,我们最短路跑一遍就行了。值得一提的是,我们可以把xi-xj<=m变形成xj-xi>=-m,这样是不是就像最长路的式子了? 那最短路的解和最长路的解有什么区别呢,最短路求得最大值,最长路求得最小值。 我们既然知道做法了,那之后是不是求最短/长路了?为了避免有点没在图

nnnnzhlll的博客 323

学习Python,小白如何搭建Python环境?

学习Python,首先需要搭建好Python环境,主要分为【运行环境搭建】、【开发环境搭建】以及【Python环境配置】三个环节,接下来我将对Python环境搭建这三个部分进行介绍。

weixin_72923265的博客 9000

洛谷 P3275 [SCOI2011]糖果 ( 差分约束) 题解

题目来源: https://www.luogu.org/problemnew/show/P3275 题目描述: 题目描述 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,lxhgww需要满足小朋友们的K个要求。幼儿园的糖果总是有限的,lx...

摇摇乐的博客 717

多目标优化AI Agent:增强LLM的复杂决策能力

在人工智能领域,尤其是自然语言处理(NLP)和大语言模型(LLM)的应用中,决策问题往往涉及多个目标的平衡与优化。例如,在智能客服系统中,既要提高客户满意度,又要降低运营成本;在自动驾驶中,既要确保安全,又要追求行驶效率。传统的单目标优化方法难以满足这种复杂场景的需求,因此多目标优化成为了一种必然趋势。AI Agent是一种智能系统,能够通过感知环境、处理信息并采取行动来实现特定目标。它可以是一个软件程序,也可以是一个物理设备。NSGA-II:一种基于群体的多目标优化算法,通过遗传算法的思想进行迭代优化。

AI天才研究院 1299

Android性能优化之Android Profiler

在移动应用开发中,打造一个流畅、省电且不卡顿的用户体验是至关重要的。然而,随着应用功能的日益复杂,内存泄漏、CPU暴涨、网络卡顿以及电量消耗过快等问题常常化身为隐形杀手,悄悄吞噬着用户体验。为了帮助开发者精准定位并解决这些性能瓶颈,谷歌在Android Studio中集成了一款强大的一站式性能分析工具Android Profiler。Android Profiler作为Android Studio内置的实时数据可视化工具,支持运行在Android 5.0及更高版本的设备上。

xiangzhihong8的专栏 200

洛谷P7515:矩阵游戏(差分约束)

差分约束

BUG_Creater_jie的博客 3806

9.27华为OD机试真题 新系统 - 均衡调度 (Java/Py/C/C++/Js/Go)

9.26华为OD机试真题 新系统 - 均衡调度 (Java/Py/C/C++/Js/Go)

算法大师! 489

糖果(差分约束)

差分约束:此图作者yxcls 思路:根据题意和差分约束的原理我们可以得出一些不等式关系如下: 1.A>=B&&B>=A 2.B>=A+1 3.A>=B 4.A>=B+1 5.B>=A 6.x>=1 7.x>=x0+1 8.x0=0 因为求的是最小值,那么求最长路,建图。求环时可以用栈代替队列进行优化。为了满足源点能到所有边需要把x0对所有点建边。 代码: #pragma GCC optimize(2) #include<bits/st.

Ray.C.L的博客 444

ESP32-CAM 赋能 AI 视觉巡检小车:自主避障与目标追踪实现全解析

本文基于 ESP32-CAM 实现了低成本 AI 视觉巡检小车的核心功能,硬件成本<100 元,兼顾自主避障与目标追踪。算法升级:移植 YOLOv5nano 量化模型(INT8),提升目标检测精度(如识别巡检场景中的 “异常物体”“人员”);无线拓展:通过 MQTT 协议将巡检图像、距离数据上传到阿里云 / 腾讯云,实现远程监控;多传感器融合:增加温湿度(DHT11)、红外测温(MLX90614)模块,扩展巡检维度;路径规划:结合 SLAM 算法,实现自主建图与路径巡检。

weixin_42300449的博客 367

C#解析基恩士(KEYENCE)PLC数据:KV协议通信与实时监控实现

KV协议是基恩士PLC使用的一种专用通信协议,通常用于与上位机进行数据交换。KV协议通过RS-232C、RS-485、Ethernet等接口与上位机通信,支持多种数据类型的读写,包括但不限于位、字、双字、浮点数等。简洁易用:KV协议的通信格式简单,易于实现。支持多种数据类型:支持位数据、字数据、定长字符串等。高效实时性:能够提供较高的实时数据交换性能,适合实时监控应用。本文介绍了如何通过C#与基恩士KV系列PLC进行通信,实现数据的解析和实时监控功能。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1806

【算法】糖果(差分约束)

幼儿园里有 N 个小朋友,老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候, 老师需要满足小朋友们的 K 个要求。幼儿园的糖果总是有限的,老师想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求。输入的第一行是两个整数 N,K。接下来 K 行,表示分配糖果时需要满足的关系,每行 3 个数字 X,A,B。小朋友编号从 1 到 N。

littlegengjie的博客 899

安卓手机强制清理数据恢复出厂设置后无法设置密码怎么办?(分享亲身经历的有效解决方案)

📱安卓手机强制清数据恢复出厂设置后,竟无法设置锁屏密码!本文将解析问题根源,分享亲测有效的解决方案,帮你快速摆脱困扰🎉

XiaoqiangClub的博客 240

洛谷P3275 [SCOI2011]糖果_差分约束_判负环

Code: #include&lt;cstdio&gt; #include&lt;queue&gt; #include&lt;algorithm&gt; using namespace std; const int N=300000+3; const int INF=-2333233; queue&lt;int&gt;Q; int d[N],inq[N],times[N]; int head[N]...

EM LGH 189

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

洛谷 P3275 [SCOI2011]糖果

洛谷 P3275 [SCOI2011]糖果 Description 幼儿园里有 N 个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,lxhgww 需要满足小朋友们的 K 个要求。幼儿园的糖果总是有限的,lxhgww想知道他至少需要准备多少个糖果,...

aochongbi5356的博客 242

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

差分约束 - SCOI 2011 - 糖果 - 洛谷 P3275

差分约束 - SCOI 2011 - 糖果 - 洛谷 P3275 幼儿园里有 N 个小朋友,老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。 但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候, 老师需要满足小朋友们的 K 个要求。 幼儿园的糖果总是有限的,老师想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求。 输入格式 输入的第一行是两个整数 N,K。 接下来 K 行,表示分配糖果时需要满足的关

njuptACMcxk的博客 417

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

洛谷P3275 [SCOI2011]糖果 题解

题目链接: https://www.luogu.org/problemnew/show/P3275 分析: 本题就是一个裸的差分约束。 核心: x=1x=1x=1时,a=b,a−&gt;b,b−&gt;aa=b,a-&gt;b,b-&gt;aa=b,a−>b,b−>a,连边权值为000 x=2x...

ShineEternal的笔记小屋 308

洛谷P3275 [SCOI2011]糖果(差分约束)

题目描述 幼儿园里有 $N$个小朋友,$lxhgww $老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,$lxhgww$需要满足小朋友们的 $K$个要求。幼儿园的糖果总是有限的,$lxhgww$ 想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,...

weixin_30362083的博客 148

图论:负环 / 01分数规划 / 差分约束 知识整理(附题)

图论相关的 负环 / 01分数规划 / 差分约束 问题,考察了图与数学知识。其中常用、共通的spfa算法,运算的时间常常会不稳定,解决这些问题需要一些经验之道。除此之外的差分约束,也相当考察观察发现关系、推导数学公式的能力。

酒姬民的博客 708

【luogu P3275 [SCOI2011]糖果】 题解

题目链接:https://www.luogu.org/problemnew/show/P3275 把不等式 A > B 转化成 A - B >= 1或者 B - A <= -1再差分约束 B - A 不能是 <= 1 2333 // luogu-judger-enable-o2 #include <queue> #include <cstdio&...

178

【洛谷】P3275 糖果

老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求。老师至少需要准备的糖果数,如果不能满足小朋友们的所有要求,就输出。个小朋友分到的糖果必须不多于第。个小朋友分到的糖果必须少于第。个小朋友分到的糖果必须多于第。个小朋友分到的糖果;个小朋友分到的糖果;个小朋友分到的糖果;个小朋友分到的糖果;...

数学、算法爱好者的博客 415

bzoj 2330: [SCOI2011]糖果 洛谷P3275

https://www.lydsy.com/JudgeOnline/problem.php?id=2330 https://www.luogu.com.cn/problem/P3275 这题直接把每一个没有访问过的点初值设为1,保证题目说的所有小朋友都分到,然后跑最长路的差分约束就可以了。 找了一晚上错误,结果是输入没有说a!=b,所以再输入的时候要判断一下,不然因为dis[u]+e[i]....

binarycopycode 226

洛谷 P3275 [SCOI2011]糖果(差分约束,tarjan强连通分量,scc)

差分约束,tarjan强连通分量,scc

qq_38232157的博客 558
上一篇: 【洛谷P1768】天路【负环】【二分】【数论】
下一篇: 【POJ1201】Intervals【差分约束】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值