开心小屋

2024-01-29 19:38
文章标签 开心 小屋

本文主要是介绍开心小屋,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述
Kc来到开心小屋。开心小屋是用来提升心情的。在这个小屋中有n个房间,一些房间之间有门连通。从房间i到达房间j,心情值可以加上-10000<=Cij<=10000,当然Cij可能是负的。现在kc失恋了,所以他想要知道他是否可以在这个小屋中无限地增加他的心情值,也就是无限地绕着一个环走?

请帮kc求出最小的环需要经过的房间数,来使他的心情无限增加。

输入
第一行给出,1<=n<=300,1<=m<=5000。分别表示房间数及门的数量。

接下来m行,每行四个数:i,j,Cij,Cji
输出
输出文件包括一行,及最小的环需要经过的房间数。

保证不会出现自环及重边。
输入样例
4 4
1 2 -10 3
1 3 1 -10
2 4 -10 -1
3 4 0 -3
输出样例
4
样例解释:
1—>3—>4–>2–>1为最小的符合题意的环长度为4.
说明
Data Constraint
对30%的数据,n<=10;
对60%的数据,,n<=100;
对100%的数据,n<=300;

.
.
.
.
.
.
分析
题意:求有向图中,所有正权环长度的最小值

深搜——暴力出奇迹
从每个位置开始搜环
那么考虑剪枝:
1.若当前所搜过的屋子个数超过了先前找的答案,return。
2.若从起点到当前位置,它的和已经成了负数,return。

第一个容易理解。而第二个,由于我们要求正权环,所以负值不行
(“负值”拼音五个字母,所以五子不行,手动狗头)
对于一个环,若其和为正,说明在这环中,无论从哪个点出发,回来都会是正的,那么就必然存在一个点,从其出发走的这个环,过程中的值必为正(在这个满足要求的环中,由于我们正好是从每一个点开始搜,所以我们仍能找到另一个点来走这个环,同时使得过程中,和不为负值)。
如:88 5 -90 1 2 这个环
所以就算将“过程中和为负数”的枝剪去,对答案无影响

.
.
.
.
.
.
程序:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;int n,m,wz,ans=2147483647,a[310][310];
bool v[310];void dfs(int x,int dep,int sum)
{if (dep>ans||sum<0) return;if (x==wz&&dep!=0){if (sum>0) ans=min(ans,dep); return;}for (int i=1;i<=n;i++)if (a[x][i]<=10000&&!v[i]){v[i]=true;dfs(i,dep+1,sum+a[x][i]);v[i]=false;}return;
}int main()
{scanf("%d%d",&n,&m);memset(a,0x3f,sizeof(a));for (int i=1;i<=m;i++){int u,v,x,y;scanf("%d%d%d%d",&u,&v,&x,&y);a[u][v]=x;a[v][u]=y;}for (int i=1;i<=n;i++){wz=i;dfs(i,0,0);}printf("%d",ans);return 0;
}

这篇关于开心小屋的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/657968

相关文章

不管是开心还是伤心,都需要有人能够分享

在我们的生活中,有很多事都是需要我们和别人分享的。我们自己一个人能独自承受的东西很少,我们需要的是有人能够陪着我们,能够和我们一起分享。有人和我们一起分享,我们能够将快乐传递,将悲伤消灭。

带AI功能朵米客服系统3.5无限制开心版+搭建文档

带AI功能朵米客服系统3.5无限制开心版+搭建文档,朵米客服系统是一款全功能的客户服务解决方案,提供多渠道支持(如在线聊天、邮件、电话等),帮助企业建立与客户的实时互动。该系统具有智能分流功能,可以快速将客户请求分配给适当的客服人员,提高工作效率。同时,朵米客服系统还提供丰富的数据分析和报告功能,帮助企业了解客户需求和行为,从而优化服务质量。总体而言,朵米客服系统致力于提升客户体验,提高客服效率,

day-49 让所有学生保持开心的分组方法数

思路 利用Collections.sort()函数对数组进行排序,依次向后遍历即可,如果nums.get(i)<i+1&&nums.get(i+1)>i+1 解题过程 注意特殊情况:全选和不选要单独讨论 Code class Solution {public int countWays(List<Integer> nums) {int len=nums.size();Collections

数学题--2860. 让所有学生保持开心的分组方法数

2860. 让所有学生保持开心的分组方法数 给你一个下标从 0 开始、长度为 n 的整数数组 nums ,其中 n 是班级中学生的总数。班主任希望能够在让所有学生保持开心的情况下选出一组学生: 如果能够满足下述两个条件之一,则认为第 i 位学生将会保持开心: 这位学生被选中,并且被选中的学生人数 严格大于 nums[i] 。这位学生没有被选中,并且被选中的学生人数 严格小于 nums[i]

[M排序] lc2860. 让所有学生保持开心的分组方法数(排序+贪心+简洁代码实现+思维)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接:2860. 让所有学生保持开心的分组方法数 题单: 思维 01.1、思维 2. 题目解析 有一定的思考难度,不太好归类,就放到 思维 里面吧。 思路: 首先分析题目中的一些关键信息,能得出来,选法是唯一的,且选的话,会把小于当前值的前面部分全部选了。那么此时问题就转化为 选0、选1、选2…选n 个的问题

项目拆解:短视频冷门赛道—ai绘画+温馨小屋,引流变现全攻略

在这个快节奏的时代,工作、学习、家庭的重担仿佛三座大山,让人喘不过气,心情时常跌入谷底。就像蜗牛遇到威胁会缩进壳里,我们也会在疲惫和忧虑时,渴望一个属于自己的温暖小窝,来安放疲惫的心灵。而自媒体平台上,一种特别的账号悄然走红,它们如同一盏盏温暖的灯,照亮了无数人的心房。 🏠 小屋里的温柔时光 这些账号,简单却充满魔力,它们不靠华丽的辞藻,也不依赖复杂的剪辑,仅凭一张或几张精心挑选的图片,搭配

WordPress 资源展示型下载类主题 CeoMax-Pro_v7.6 开心版

WordPress 资源展示型下载类主题 CeoMax-Pro_v7.6 开心版; CeoMax-Pro是一款极致美观强大的WordPress付费资源下载主题,它能满足您所有付费资源下载的业务需求! 你的想法与业务不能被主题所限制!CeoMax-Pro强大的功能,在不久的将来它能实现你一切幻想!我们也在为此而不断努力。 适用于资源站、下载站、交易站、素材站、源码站、课程站、CMS等等等等,它

开心第一课:健康坐姿

文章目录 引言保持脊柱的自然伸展选择一把合适的座椅 引言 建议坐位时间超过 30 分钟,就起身活动一下,促进血液循环,预防久坐带来的各种健康问题。 保持脊柱的自然伸展 正确的骨盆位置是使坐位时身体重量都作用在双侧的坐骨结节上,在结节的顶端有滑囊,滑囊分泌液体减少组织间的摩擦和压力。 坐位时,摸到臀部下方的一个骨性突起就是坐骨结节。 腰椎和胸椎保持自然的曲度,臀

Guitar Pro 8.2.1 Build 32+Soundbanks Win/Mac音色库 开心激活版 音乐软件Guitar Pro 8中文破解版

音乐软件Guitar Pro 8中文破解版是一个受吉他手喜爱的吉他和弦、六线谱、BASS 四线谱绘制、打印、查看、试听软件,它也是一款优秀的 MIDI 音序器,MIDI 制作辅助工具,可以输出标准格式的 MIDI。GP 的过人之处就在于它可以直接用鼠标和键盘按标准的六线谱、四线谱进行乐谱输入、查看、打印和试听(可以实时、自动滚屏、多种模式的显示单声部或乐曲总谱),在做弹拨乐器的滑音、倚音、推弦、揉

nyoj49 开心的小明

开心的小明 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 4 描述 小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早小明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品