%本程序输入为每个星期各种病的挂号的人数
%本程序输出为每个星期安排住院的方案
clear;
a=input('输入星期i第k种病的人数矩阵(7*5):');%代表星期i第k种病的人数
[m,n]=size(a);%size函数的目的是为了获得矩阵a的行数和列数
k=input('输入统计空床(7*1):');%k代表每周的空床数
b=zeros(7,5);%用来计数,储存数据,zeros的目的是返回一个7*5的零矩阵
for i=1:m % i代表的是星期,m是矩阵a的行向量,也就是7,那么这一句的意思,就是遍历星期一到星期日
%下面有switch和case,应该就是针对每天接纳的病人做的优先级权重
switch i
case {1}
if k(1)>a(1,5)%这句的意思是 将周一的空床数和与周一第五种病的人数比较
%1白内障(单);2白内障(双);3青光眼;4视网膜疾病;5急症,在符号表中,我们可以知道,五代表的是
%绝症
b(1,5)=a(1,5) ;%在周一有空床位的情况下,疾症患者当天就要入住,周二就展开手术
b(1,1)=k(1)-a(1,5);%周一的白内障(单)在满足了周一的急症患者后,应尽量满足白内 % 障 (单)
else
b(1,5)=k(1);%如果周一的床位不够,那就全力满足急救患者
end
case {2}
if k(2)>a(2,5)
b(2,5)=a(2,5);%周二的急诊人数
if b(1,1)>=12 %如果满足白单大于等于12
b(2,3)=k(2)-b(2,5);%全赋值给青光眼
elseif (k(2)-b(2,5))>(12-b(1,1));%这种情况对应的是周一的白内障人数没有达到12个, %这样的话,周二就要先满足白内障的人数,再满
09年B题代码分析
最新推荐文章于 2025-11-19 16:16:47 发布
本文详细分析了2009年比赛中的B题,探讨了问题的背景,给出了关键的代码实现,并解释了算法思路。通过实例演示,展示了如何运用编程技巧解决复杂问题,帮助读者深入理解算法在实际问题中的应用。

最低0.47元/天 解锁文章
2833

被折叠的 条评论
为什么被折叠?



