齿轮 HYSBZ - 4602

2023-11-09 16:09
文章标签 hysbz 齿轮 4602

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

现有一个传动系统,包含了N个组合齿轮和M个链条。每一个链条连接了两个组合齿轮u和v,并提供了一个传动比x 

: y。即如果只考虑这两个组合齿轮,编号为u的齿轮转动x圈,编号为v的齿轮会转动y圈。传动比为正表示若编号

为u的齿轮顺时针转动,则编号为v的齿轮也顺时针转动。传动比为负表示若编号为u的齿轮顺时针转动,则编号为v

的齿轮会逆时针转动。若不同链条的传动比不相容,则有些齿轮无法转动。我们希望知道,系统中的这N个组合齿

轮能否同时转动。

 

Input

有多组数据,第一行给定整数T,表示总的数据组数,之后依次给出T组数据。每一组数据的第一行给定整数N和

M,表示齿轮总数和链条总数。之后有M行,依次描述了每一个链条,其中每一行给定四个整数u,v,x和y,表示

只考虑这一组联动关系的情况下,编号为u的齿轮转动x圈,编号为v的齿轮会转动y圈。请注意,x为正整数,而y为

非零整数,但是y有可能为负数。

T<=32,N<=1000,M<=10000且x与y的绝对值均不超过100

 

Output

输出T行,对应每一组数据。首先应该输出标识这是第几组数据,参见样例输出。之后输出判定结果,如果N个组合

齿轮可以同时正常运行,则输出Yes,否则输出No。

 

Sample Input

2 3 3 1 2 3 5 2 3 5 -7 1 3 3 -7 3 3 1 2 3 5 2 3 5 -7 1 3 3 7

Sample Output

Case #1: Yes Case #2: No

 

#include <bits/stdc++.h>
using namespace std;
const int N = 1100;
struct node
{int v,x,y,nxt;node(){}node(int _v,int _x,int _y){v = _v;x = _x;y = _y;}
}edge[N*20];
int head[N],p,vis[N],flag;
double zhuan[N];
void Add(int u,int v,int x,int y)
{edge[++p] = node(v,x,y);edge[p].nxt = head[u];head[u] = p;
}void dfs(int id)
{for(int i = head[id];i != -1;i = edge[i].nxt){int v = edge[i].v;int x = edge[i].x;int y = edge[i].y;if(vis[v] == 0){zhuan[v] = zhuan[id]/(double)x*(double)y;vis[v] = 1;dfs(v);if(flag == 0) return ;}else{if(abs(zhuan[id]*y - zhuan[v]*x) > 1e-7){flag = 0;return ;}}}
}
int main()
{int t,i,j,n,m;scanf("%d",&t);int ca = 1;while(t--){scanf("%d%d",&n,&m);memset(head,-1,sizeof(head));p = 0;for(i=1;i<=m;i++){int u,v,x,y;scanf("%d%d%d%d",&u,&v,&x,&y);Add(u,v,x,y);Add(v,u,y,x);}memset(vis,0,sizeof(vis));flag = 1;vis[1] = 1;zhuan[1] = 1.0;dfs(1);printf("Case #%d: ",ca++);if(flag) printf("Yes\n");else printf("No\n");}return 0;
}

 

这篇关于齿轮 HYSBZ - 4602的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HYSBZ 1012 最大数maxnumber

思路:在单调队列不更新列首,因为查询区间大小不确定,所以不能保证下次是否还用到它 #include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define N 222222#define ll long longint que[N];ll m,d;ll a[N];int cnt;ch

齿轮跨棒(球)距遇到修形时的问题

小伙伴们,最近遇到一个问题:齿轮修形后齿轮的跨棒(球)距计算和测量存在问题。不知道小伙伴们有没有遇到过?下面举一个例子来说明这个问题: 齿轮的基本参数如下: 标准渐开线不带修形时,量棒直径给定φ7mm,跨棒距计算值为113.9205mm。齿轮的修形要求假设如下图: 我给了左右鼓形量300μm的,这个是有些夸张,为了说明问题,接着往下看: 把修形后的齿形和未修形的端面齿形绘制出来,如上图所示,再

如何实现外部编码器轴和虚轴电子齿轮比例随动(汇川AM400PLC)

1、如何添加虚轴可以参考下面文章链接: 如何添加虚轴(AM400PLC)-CSDN博客文章浏览阅读2次。EtherCAT运动控制总线启用的时候,选择EtherCAT总线任务周期。选择好后,选择点击添加。https://blog.csdn.net/m0_46143730/article/details/139898985?csdn_share_tail=%7B%22type%22%3A%22blo

工程设计问题---齿轮系设计问题

齿轮系设计问题一种离散的无约束优化问题,该问题的目标是使得齿轮的传动比成本花费最小化。求解该问题需要优化四个整数设计变量𝑇𝑎、𝑇𝑏、𝑇𝑑、𝑇𝑓,四个变量分别代表 四个不同齿轮的齿数。轮系设计问题的结构示意图如图所示: 鉴于该问题不包含约束条件,可以将其数学模型描述为公式: 参考文献:  [1]郑依莎.被囊群算法优化及其应用研究[D].广西民族大学,2023.

恢复votedisk时遇到CRS-4602,CRS-1638

解决过程: SQL> create spfile from pfile='/tmp/asm_pfile_0724.txt'; File created. SQL> shutdown immediate ORA-15100: invalid or missing diskgroup name ASM instance shutdown SQL> startup A

揭秘齿轮加工工艺的选用原则:精准打造高效传动的秘密武器

在机械制造领域,齿轮作为传动系统中的重要组成部分,其加工工艺的选择至关重要。不同的齿轮加工工艺会影响齿轮的精度、耐用性和效率。本文将通过递进式结构,深入探讨齿轮加工工艺的选用原则,带您了解如何精准打造高效传动的秘密武器。 一、齿轮加工工艺概述 齿轮加工工艺主要包括滚齿、插齿、剃齿、磨齿等多种方法。每种工艺都有其独特的优点和适用范围,选择合适的加工工艺是确保齿轮性能的关键。滚齿工艺适用于大批量生

P8799 [蓝桥杯 2022 国 B] 齿轮

P8799 [蓝桥杯 2022 国 B] 齿轮 分析 最右边的齿轮的转速是最左边齿轮的q倍 == 最右边的齿轮的半径是最左边齿轮的q倍 题意即为:查询数组中是否存在两个数,其中一个是另一个的q倍 题目范围:查询次数q:2*10^5,数组范围2*10^5,所以不能边输入边查询 预处理倍数数组ans[],查询时直接得出答案 注意: 1.遍历数组,看其 j 倍数是否存在 2.倍数为1

HYSBZ - 2243染色——树链剖分+线段树建树技巧

【题目描述】 HYSBZ - 2243染色 【题目分析】 我一直没有看清楚题,以为求的是路径上出现颜色的种类,然后就写了一个区间染色的线段树进行维护,过样例的时候才发现题读错了,人家要求的是路径上出现的颜色段,所以颜色的种类不重要,重要的是每一段每一段。理所当然,我们应该用线段树维护所在区间有多少段。但是左右区间上传的时候如果边界颜色相同(左节点的右边界和右节点的左边界),那么区间个数应该减一。

螺旋角和导程、转位后的齿轮有什么关系?

最近和小伙伴聊到了一个问题:斜齿轮螺旋角和导程的关系,主要是在遇到在采用转位设计方式的刀具时,更觉得有点迷惑,今天咱们就聊聊这个事儿。 先来说斜齿轮螺旋角和导程的关系: 斜齿轮是有多个螺旋面组成的,其实就是端面的【渐开线齿廓】上的每一个点沿着齿轮的轴线做螺旋运动(一边沿着轴向平移,一边绕着轴线旋转),如下图所示: 换成小球就更好理解了。 很多个点就形成了面: 下面是一个斜齿轮,分别画了三

非对称渐开线齿轮学习笔记分享

最近有小伙伴遇到了非对称渐开线齿轮的加工问题,花了些时间学习了解一下,下面是总结的学习笔记,有兴趣的朋友可以瞅瞅: 目录: 为什么要采用非对称? 非对称有什么优点? 非对称齿形如何加工? 非对称齿轮怎么测量? 非对称齿轮建模 为什么要采用非对称? 现在的传动要求:承载能力大要多大有多大、振动噪音要多小有多小、质量要多轻有多轻、还要高效节能。 理论上,凡是符合啮合定律的任