【高斯消元】[CTSC2001 D2]GPA排名系统

来源:互联网 发布:js正则表达式大全 编辑:程序博客网 时间:2024/05/19 06:35

题目描述:目前,高等院校往往采用 GPA(Grade Point Average)来评价学生的学术表现。传 统的排名方式是求每一个学生的平均成绩,以平均成绩作为依据进行排名。 但是这样的排名方法已经引起了教育界以及社会各界人士的争议。因为它存在 着许多弊端。对于不同的课程,选课学生的平均成绩会不同程度地受到课程的难易 程度和老师的严厉程度的制约。因而这样的排名系统无形中就鼓励了学生选择一些 比较容易的课程,因为这样可以事半功倍地获得较高的平均分。
为了克服这些弊端,我们需要对排名系统做一定的改进。 一种改进的方案是对选第 i 门课的每一个学生的成绩加上一个特定的修正值 di, 例如编号为 j 的学生该课的成绩 Gij修改为 G’ij=Gij+di。最终使得经过调整后,该课的 平均分等于选该课的所有学生的所有课的平均分。对每一门课都做这样的调整,使 得上述条件对所有课程都满足。这种调整方案一定程度地避免了传统排名系统的不 公正。而你的任务正是根据一个大学某一个年级学生某学年的成绩,给出他们的排 名。假设每一个学生都至少选一门课。



输入描述:输入文件为 gpa.in。 输入文件第一行是两个正整数 m(1<=m<=500)和 n(1<=n<=100),分别表示学 生人数和课程数目。 接下来 m 行是一个矩阵,矩阵中第 i 行的第 j 个元素表示第 i 个学生第 j 门课的 成绩 G(i,j)。输入的成绩是一个 0 到 100 之间的整数,如果该学生没有选这门课,那 么 G(i,j)=-1。由于该方案的施行只是为了获得更加科学的排名,因此调整后的成绩 的数值大小本身没有什么意义,因此调整后的成绩可以不是 0-100 之间的数。


输出描述:输出文件为 gpa.out。 输出采用改进方案后这些学生的排名。以学生编号的形式输出,每行是一个学 生的编号。 如果在上述调整后,有若干学生平均分相等(精确到小数点后的三位),则他们的 名次相同,按照任意顺序输出。 当然许多时候,上述调整无法顺利进行,即调整的目标无法达到。(因此,在实 际问题中,我们往往在最小二乘意义下获得一种最接近目标的调整方案。)也有可能或者因调整不唯一而不能确定学生的名次。若以上两种情况发生,则输出“fail”。


首先根据题目我们另gi为原来科目i的平均值,令di为修正值,第i个学生的第j门科目的原来的成绩为Gi,j,第i位学生选择了Ti门科目,令同时选择i,j的人数为Si,j,nj=1Si,j=Ki,那么我们可以得到一个方程
mj=1,Gj,i1Gj,iSi,i+di=mj=1,Gj,i1nk=1,Gj,k1Gj,k+dkmj=1Si,j
那么令mj=1,Gj,i1Gj,iPi
PiSi,i+di=mj=1,Gj,i1nk=1,Gj,k1Gj,k+dkKi
所以有
KiPiSi,i+Kidi=j=1nSi,jdj+k=1Gk,i1mj=1Gk,j1nGk,j
因为mk=1,Gk,i1nj=1,Gk,j1Gk,j是可以预处理的那么我们令它为Ei然后得到
KiPiSi,i+Kidi=j=1nSi,jdj+Ei
Kidij=1nSi,jdj=EiKiPiSi,i
j=1nSi,jdjKidi=KiPiSi,iEi
那么对于每一个不同的i都可以得到一个不同的方程通过高斯消元进行解决那么算法复杂度预计是O(nm+n3)这里n的值大概是100左右应该能够胜任本题目。

下面开始构造矩阵,那么可以得到:

S1,1K1S2,1Sn,1S1,2S2,2K2Sn,2S1,3S2,3Sn,3K1P1S1,1E1K2P2S2,2E2KnPnSn,nEn

然后高斯消元解个方程,带入排序就好了。。。
简直我说不出话来了

其实我是逗你的这个方程没有解233333,如果你看到这行字,那说明你成功的找到了正解,但是答案并不是fail因为找到的是不同课程之间的关系,来吧我的坑已暂时挖到这里,下面由你来帮我继续挖,挖完请给我留下回复 Thanks

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 医保卡迟迟不发怎么办 医保断了一个月怎么办 没办离职的社保怎么办 家里吊顶上有老鼠怎么办 房间里进老鼠了怎么办 衣服上有老鼠屎怎么办 如果被老鼠咬了怎么办 儿童被老鼠咬了怎么办 蟑螂爬到衣柜里怎么办 床垫里有老鼠屎怎么办 汽车里进了老鼠怎么办 狗狗感染蜱虫怎么办 脸上有螨虫怎么办才能去除 老鼠被剪丁丁后怎么办 1楼下水道钻老鼠怎么办 月经来了奶水少了怎么办 孕37周霉菌严重怎么办 家里进了飞蚂蚁怎么办 家里进了大蜘蛛怎么办 衣服上有蟑螂卵怎么办 被子上有蟑螂卵怎么办 厨房里的小飞虫怎么办 水果生的小飞虫怎么办 家里的厕所有虫怎么办 人吃了蟑螂药怎么办 静电贴粘不住了怎么办 会飞的蚂蚁咬了怎么办 家里有白蚁怎么办能除根 华为畅享5s黑屏怎么办 家里有个蚂蚁窝怎么办 宿舍有老鼠爬床怎么办 楼上的狗叫扰民怎么办 楼下的狗一直叫怎么办 焊机通电没反应怎么办 输了3万块钱怎么办 行吊遥控器掉了怎么办 狗狗耳朵尖结痂怎么办 蚊帐里进了蚊子怎么办 孕妇用了点蚊香怎么办 孕妇用了电蚊香怎么办 房子里用蟑螂药怎么办