小编Mas*_*dam的帖子

更衣室算法

注意:只是为了抬头,这不是我学校的任务,因为我自己甚至不知道哪所学校写了这个问题.希望没有误会.

我发现这个关于更衣室的有趣问题:

Rec的更衣室有N个储物柜,标有1,2,.... ..,N.

每个储物柜都已锁定,但可以使用其唯一的钥匙打开.

每个储物柜钥匙的副本都在其相邻的储物柜内; 即,储物柜钥匙的副本i被放置在储物柜i + 1和i-1中(储物柜1的钥匙仅在储物柜2中,储物柜N的钥匙仅在储物柜N-1中).

T网球在T个不同的储物柜内(你知道他们在哪个储物柜里).您将获得M个储物柜的钥匙,您的目标是通过打开最少数量的储物柜来收集所有网球.

对于图片,您可以在此处直接看到该文件.

我必须向一些新生提出这个问题,但我想先确定我自己已经预先得到了正确的答案.

我在想的是:

  1. 需要逐一检查球.因此,对于每个球(忽略其他球),每个球必须通过遍历指定的球来访问.对于每个键,计算访问球所需的步骤.最小的结果存储在称为"总步数"的变量中.

  2. 对下一个球做这个确切的事情,当我得到当前球的最小步数.我将此值添加到"总步骤".

  3. 如果钥匙上方有一个球,则应用特殊条件,然后键开始从i + 1和i-1移动.

我的问题是:我是对的吗?我不想将错误的算法分享给其他人,因为它不专业.期待任何意见,建议和意见.

algorithm

21
推荐指数
1
解决办法
2085
查看次数

平均 SQL 触发器

我有一个关于触发器的问题。

假设我有两个表,一个名为'studentData',另一个称为'studentStanding'

“studentData”是一个由教师 ID、学生 ID 和评分组成的表。所以不同的老师可能会给同一个学生不同的评分

(例如:teacherID: 1 给studentID: 3 评分为5,而teacherID: 7 给studentID: 3 评分为10)

StudentStanding是由studentID、studentName和averageRating组成的表。

我的目的是创建一个触发器;

每次新老师(例如教师 ID:120)对学生 ID:3 进行评分时,此触发器将重新计算该学生 3 的平均评分。

我曾尝试编写触发器,但我很确定它是完全错误的。它看起来是这样的:

CREATE TRIGGER updateAVG
AFTER INSERT ON studentData
REFERENCING NEW AS N_ROW
   FOR EACH ROW
    UPDATE studentStanding SET Rating = (
      Select AVG(Rating) 
      from studentData
      )
Run Code Online (Sandbox Code Playgroud)

我期待着任何可以帮助我的人。也请随意对我的触发器提出建议。谢谢。

注意:我保证,这不是学校作业!

mysql sql

2
推荐指数
1
解决办法
5467
查看次数

标签 统计

algorithm ×1

mysql ×1

sql ×1