T1 竞赛排名

分析:模拟

超级大模拟,太弱了,写个模拟都要2个小时。。写的又难看又麻烦。。还需努力

  1. var
  2. n,i,j,k:longint;
  3. t1:real;
  4. x,y:array[..,..] of real;
  5. sum,sumy,s1,s2:array[..] of real;
  6. sigma,avg,s:array[..] of real;
  7. begin
  8. assign(input,'competitionsort.in');
  9. reset(input);
  10. assign(output,'competitionsort.out');
  11. rewrite(output);
  12. readln(n);
  13. for i:= to n do
  14. begin
  15. for j:= to do
  16. begin
  17. read(x[i,j]);
  18. sum[i]:=sum[i]+x[i,j];
  19. sigma[j]:=sigma[j]+x[i,j];
  20. end;
  21. readln;
  22. x[i,]:=i;
  23. end;
  24.  
  25. {for i:=1 to n do begin
  26. for j:=1 to 9 do write(x[i,j]:0:0,' '); writeln; end; }
  27. //for i:= to n do writeln(sum[i]::);
  28. //for i:= to do write(sigma[i]::,' ');
  29.  
  30. for j:= to do
  31. avg[j]:=sigma[j]/n;
  32. // for i:= to do write(avg[i]::,' ');
  33.  
  34. for j:= to do
  35. for i:= to n do s[j]:=s[j]+abs(x[i][j]-avg[j]);
  36. //for j:= to do writeln(s[j]);
  37. for i:= to n do
  38. for j:= to do
  39. if s[j]= then y[i,j]:=
  40. else y[i,j]:=(x[i][j]-avg[j])/(s[j]/n);
  41.  
  42. {for i:=1 to n do begin
  43. for j:=1 to 8 do write(y[i,j]:0:5,' '); writeln; end;}
  44.  
  45. for i:= to n do
  46. begin
  47. for k:= to do
  48. s1[i]:=s1[i]+y[i,k];
  49.  
  50. for k:= to do
  51. s2[i]:=s2[i]+y[i,k];
  52.  
  53. end;
  54. {for i:=1 to n do
  55. writeln(s1[i]:0:5,' ',s2[i]:0:5); }
  56. for i:= to n do
  57. sumy[i]:=s1[i]+0.8*s2[i];
  58.  
  59. {for i:=1 to n do
  60. writeln(sumy[i]:0:5); }
  61.  
  62. for i:= to n- do
  63. begin
  64. k:=i;
  65. for j:=i+ to n do
  66. if (sumy[k]<sumy[j]) or
  67. ((sumy[k]=sumy[j])and(sum[k]<sum[j])) or
  68. ((sumy[k]=sumy[j])and(sum[k]=sum[j])and(x[k,]>x[j,])) then k:=j;
  69. if k<>i then begin
  70. t1:=sumy[k]; sumy[k]:=sumy[i]; sumy[i]:=t1;
  71. t1:=sum[k]; sum[k]:=sum[i]; sum[i]:=t1;
  72. t1:=x[k,]; x[k,]:=x[i,]; x[i,]:=t1;
  73. end;
  74. end;
  75. for i:= to n do writeln(x[i,]::);
  76. close(input);
  77. close(output);
  78. end.

程序初步

  1. var
  2. n,i,j,k:longint;
  3. t1:real;
  4. x,y:array[..,..] of real;
  5. sum,sumy,s1,s2:array[..] of real;
  6. sigma,avg,s:array[..] of real;
  7. begin
  8. assign(input,'competitionsort.in');
  9. reset(input);
  10. assign(output,'competitionsort.out');
  11. rewrite(output);
  12. readln(n);
  13. for i:= to n do
  14. begin
  15. for j:= to do
  16. begin
  17. read(x[i,j]);
  18. sum[i]:=sum[i]+x[i,j];
  19. sigma[j]:=sigma[j]+x[i,j];
  20. end;
  21. readln;
  22. x[i,]:=i;
  23. end;
  24. for j:= to do
  25. avg[j]:=sigma[j]/n;
  26. for j:= to do
  27. for i:= to n do s[j]:=s[j]+abs(x[i][j]-avg[j]);
  28. for i:= to n do
  29. for j:= to do
  30. if s[j]= then y[i,j]:=
  31. else y[i,j]:=(x[i][j]-avg[j])/(s[j]/n);
  32. for i:= to n do
  33. begin
  34. for k:= to do
  35. s1[i]:=s1[i]+y[i,k];
  36. for k:= to do
  37. s2[i]:=s2[i]+y[i,k];
  38. end;
  39. for i:= to n do
  40. sumy[i]:=s1[i]+0.8*s2[i];
  41. for i:= to n- do
  42. begin
  43. k:=i;
  44. for j:=i+ to n do
  45. if (sumy[k]<sumy[j]) or
  46. ((sumy[k]=sumy[j])and(sum[k]<sum[j])) or
  47. ((sumy[k]=sumy[j])and(sum[k]=sum[j])and(x[k,]>x[j,])) then k:=j;
  48. if k<>i then begin
  49. t1:=sumy[k]; sumy[k]:=sumy[i]; sumy[i]:=t1;
  50. t1:=sum[k]; sum[k]:=sum[i]; sum[i]:=t1;
  51. t1:=x[k,]; x[k,]:=x[i,]; x[i,]:=t1;
  52. end;
  53. end;
  54. for i:= to n do writeln(x[i,]::);
  55. close(input);
  56. close(output);
  57. end.

我的程序

NOI1997的更多相关文章

  1. 动态规划(水题):COGS 261. [NOI1997] 积木游戏

    261. [NOI1997] 积木游戏 ★★   输入文件:buildinggame.in   输出文件:buildinggame.out   简单对比时间限制:1 s   内存限制:128 MB S ...

  2. [NOI1997] 积木游戏

    COGS 261. [NOI1997] 积木游戏 http://www.cogs.pro/cogs/problem/problem.php?pid=261 ★★   输入文件:buildinggame ...

  3. [NOI1997] 积木游戏(dp)

    COGS 261. [NOI1997] 积木游戏 http://www.cogs.pro/cogs/problem/problem.php?pid=261 ★★   输入文件:buildinggame ...

  4. 题解【洛谷P5767】[NOI1997]最优乘车

    题面 一道很经典的最短路模型转换问题. 考虑如何建图. 我们可以发现,对于每一条公交线路,可以将这条线路上 可以到达的两个点 连一条权值为 \(1\) 的边. 获取一条公交线路上的每一个点可以使用读取 ...

  5. ZJOI2017 Day1

    私のZJOI Day1 2017-3-21 07:52:53 有人在暴力膜 苟-- 富贵 无相忘 ZJOI2017交流群 133135071 如果你足够厉害 如果你足够厉害 如果你足够厉害 其实完全可 ...

随机推荐

  1. 重庆Uber优步司机奖励政策

    获得任何奖励的前提条件:当周接单率80%以上,当周乘客评分4.5分以上,且无刷单等欺诈行为. 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册Uber司机(全国版最 ...

  2. SpringBoot-03:SpringBoot+Idea热部署

      ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 所谓热部署,就是在项目启动中,修改class类中做的修改操作,无需重新启动项目,就可以变更,在网页展示中有 ...

  3. 全局脚手架了解一下【fle-cli】

    本文来自网易云社区 介绍 fle-cli旨在帮助我们从复杂繁琐的编译配置中解放出来,全身心地投入业务开发中,提高开发效率. 它是真正意义上的全局脚手架,区别于市面上其他的全局脚手架,它不会在项目工程中 ...

  4. ogg的安装配置 配置双向同步(含DDL)

    第一部分 先配置单向同步(含DDL) 一 源端安装GoldenGate 创建用户 创建目录 mkdir -p /opt/ogg chmod -R 777 /opt/ogg chown -R oracl ...

  5. 在Win10中通过命令行打开UWP应用

    近期由于需要在WinX菜单中添加几个UWP应用,但发现很难找到相应的命令行,Universal Apps 的快捷方式属性里也没有. 于是到网上搜了很久才找到一个E文的页面,试了一下确实可行,分享给大家 ...

  6. JDK1.8改为JDK1.7过程

    电脑之前eclipse版本要求JDK1.8版本,现在要用jboss7.1做性能测试,目前仅支持JDK7.故需要降级. 网上有很多说把1.8删掉,这种做法我是不建议的,那么要用的时候呢?又得装回来多蛋疼 ...

  7. [Clr via C#读书笔记]Cp18 定制Attribute

    Cp18 定制Attribute 意义 利用Attribute,可以声明性的给自己的代码结构创建注解,从而实现一些特殊的功能:最终在元数据中生成,这种可扩展的元数据信息可以在运行时的时候查询,从而动态 ...

  8. openstack架构

    终于正式进入 OpenStack 部分了. 今天开始,CloudMan 将带着大家一步一步揭开 OpenStack 的神秘面纱. OpenStack 已经走过了 6 个年头. 每半年会发布一个版本,版 ...

  9. ThinkPHP - 4 - 学习笔记(2015.4.12)

    ThinkPHP D方法 D方法用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:D('[项目://][分组/]模型' ...

  10. 编译安装hadoop2.6.3

    一.安装环境 1.1  JAVA  安装java1.7 下载jdk1.7: [root@node1~]# wget http://download.oracle.com/otn-pub/java/jd ...