切换到宽版
  • 6136阅读
  • 4回复

啊有大牛跟我讲讲遗传算法? [复制链接]

上一主题 下一主题
离线essyding
 
只看楼主 倒序阅读 0 发表于: 2007-11-08
啊有大牛跟我讲讲遗传算法?
比如这道题啊可以用遗传算法做?传统做法我也不会,大牛指点一下,谢谢。
RQNOJ上的题目:
题目:拔河比赛
题目类型 动态规划
描述 superwyh的学校要举行拔河比赛,为了在赛前锻炼大家,老师决定把班里所有人分为两拨,进行拔河因为为锻炼所以为了避免其中一方的实力过强老师决定以体重来划分队伍,尽

量保持两个队伍的体重差最少,因为老师对结果没兴趣,所以只告诉老师最小的体重差是多少就行了。这个受苦受累的任务就交给superwyh了,因为这两天superwyh的后背间谍sjh

闹肚子了,所以只好superwyh亲自去调查每个人的体重,但是仅仅知道体重依然难以确定到底如何分配队伍,请各位oier帮助superwyh出出主意。
输入格式 第一行为人数(1<=n<=100),从第二行开始是每个人的体重(0<=m<=100)。
输出格式 最小体重差。


样例输入 4
10
23
41
12 
样例输出 4
离线zcl
只看该作者 1 发表于: 2007-11-09
用01背包动态规划做啊
附程序:
Var A:Array[1..100] Of Longint;
    P:Array[0..100000] Of Longint;
    i,j,n,Total,m:LongInt;
Begin
  Readln(n);
  Total:=0;
  For i:=1 To n Do Begin Read(a);inc(Total,a);End;
  Fillchar(p,sizeof(p),0);
  m:=Total div 2;
  For i:=1 To n do
    For j:=m Downto 1 do
      if (j>=a) And (a+p[j-a]>p[j]) Then p[j]:=a+p[j-a];
  Writeln(Total-p[m]);
End.
离线fchqq
只看该作者 2 发表于: 2007-11-09
DPba ..
简单的动归。/。。
不过不知道什么叫遗传算法。。?
离线jie15161718
只看该作者 3 发表于: 2007-11-12
大哥,不行啊
离线prince_hao
只看该作者 4 发表于: 2007-11-12
Program bahe;
Var a:array[0..999]of boolean;
    w:array[1..999]of integer;
    n,total,max,i,j:integer;
  Procedure Init;
  Var i:integer;
    Begin
    Readln(n);
    For i:=1 to n do
      Begin
      Readln(w);
      Inc(total,w);
      End;
    total:=total div 2;
    End;
  Begin
  Init;
  max:=0;
  Fillchar(a,sizeof(a),false);
  a[0]:=true;
  For i:=1 to n do
    For j:=max downto 0 do
    If (a[j])and(j+w<=total) then
      Begin
      a[j+w]:=true;
      If j+w>max then max:=j+w;
      End;
  For i:=total downto 0 do
    If a then
    Begin
    Writeln(2*(total-i));
    Break;
    End;
  End.
快速回复
限100 字节
 
上一个 下一个