部门优化某公司内有4个项目组,项目组A、B、C、D,项目组A现有10人,项目组B现有7人,项目组C现有5人,项目组D现有4人。为了实现跨项目组协作,公司决定每月从人数最多的项目组中抽调3人出来,到其他剩下3组中,每组1人,这称之为一次调整优化(亦即经过第一次调整后,A组有7人,B组有8人,C组有6人,D组有5人)。那么请问,经过十年的优化调整后,各项目组各有几人?编程求解该问题,并思考是否为最优解。

 

 

/// <summary>
        /// 
        /// </summary>
        /// <param name="a">a部门</param>
        /// <param name="b">b部门</param>
        /// <param name="c">c部门</param>
        /// <param name="d">d部门</param>
        /// <param name="count">调整次数</param>
        public static void MaxPub(int a,int b,int c,int d,int count)
        {
            Dictionary<string, int> keyValues = new Dictionary<string, int>();
            keyValues.Add("a", a);
            keyValues.Add("b", b);
            keyValues.Add("c", c);
            keyValues.Add("d", d);

            for (int i = 0; i < count; i++)
            {
               string max= keyValues.Keys.Select(x => new { x, y = keyValues[x] }).OrderBy(x => x.y).Last().x;

               keyValues[max] = keyValues[max] - 4;
                for (int j = 0; j < keyValues.Keys.Count; j++)
                {
                    var item = keyValues.ElementAt(j);
                    keyValues[item.Key]= item.Value + 1;
                }
            }
        }

  

posted on 2020-09-16 19:26  周庆明  阅读(180)  评论(0编辑  收藏  举报
jQuery火箭图标返回顶部代码

jQuery火箭图标返回顶部代码

滚动滑动条后,查看右下角查看效果。很炫哦!!

适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.