国产午夜影院_欧美激情五月_久久久精品在线_久久久久久久久国产精品_欧美深夜福利_男人操女人视频网站

全國

熱門城市 | 全國 北京 上海 廣東

華北地區 | 北京 天津 河北 山西 內蒙古

東北地區 | 遼寧 吉林 黑龍江

華東地區 | 上海 江蘇 浙江 安徽 福建 江西 山東

華中地區 | 河南 湖北 湖南

西南地區 | 重慶 四川 貴州 云南 西藏

西北地區 | 陜西 甘肅 青海 寧夏 新疆

華南地區 | 廣東 廣西 海南

  • 微 信
    高考

    關注高考網公眾號

    (www_gaokao_com)
    了解更多高考資訊

首頁 > 高中頻道 > 信息學聯賽知識 > 信息學聯賽知識:貪心策略的特點與在信息學競賽中的應用

信息學聯賽知識:貪心策略的特點與在信息學競賽中的應用

2009-11-12 23:06:59網絡

  貪心策略的特點與在信息學競賽中的應用

  1、求最長路徑問題(NOI93):

  對一個不存在回路的有向圖,編程求出途經結點數最多的一條路徑。有向圖存放在一個文本文件中,第0行為一個數字,為該圖的結點總數N,其下還有N行,每行有N個非0即1的數字。若第i行第j列的數字為1,則表示結點i到結點j存在由i指向j的邊,否則該數為0。

  2、刪數問題的源程序:

  輸入數據:一個高精度正整數N,所刪除的數字個數S。

  輸出數據:去掉的數字的位置和組成的新的正整數。

  Program Delete_digit;

  Var n:string;{n是由鍵盤輸入的高精度正整數}

  s,a,b,c:byte;{s是所要刪除的數字的個數}

  data:array[1..200] of 0..9; {記錄刪除的數字所在位置}

  begin

  readln(n);

  readln(s);

  for a:=1 to s do

  for b:=1 to length(n) do if n[b]>n[b+1] then {貪心選擇}

  begin

  delete(n,b,1);

  data[a]:=b+a-1; {記錄所刪除的數字的位置}

  break;

  end;

  while n[1]='0' do delete(n,1,1); {將字符串首的若干個"0"去掉}

  writeln(n);

  for a:=1 to s do writeln(data[a],' ');

  end.

  3、最優乘車問題

  輸入數據:輸入文件INPUT.TXT。文件的第行是一個數字M(1≤M≤100)表示開通了M條單向巴士線路,第2行是一個數字N(1<N≤500),表示共有N個車站。從第3行到第M+2行依次給出了第一條到第M條巴士線路的信息。其中第i+2行給出的是第i條巴士線路的信息,從左至右依次按行行駛順序給出了該線路上的所有站點,相鄰兩個站號之間用一個空格隔開。

  輸出數據:輸出文件是OUTPUT.TXT。文件只有一行,為最少換車次數(在0,1,…,M-1中取值),0表示不需換車即可達到。如果無法乘車達到S公園,則輸出"NO"。

  Program Travel;

  var m:1..100; {m為開通的單向巴士線路數}

  n:1..500; {n為車站總數}

  result:array[1..501] of -1..100; {到某車站的最少換車數}

  num:array[1..500,1..50] of 1..500; {從某車站可達的所有車站序列}

  sum:array[1..500] of 0..50; {從某車站可達的車站總數}

  check:array[1..500] of Boolean; {某車站是否已擴展完}

  Procedure Init;

  var f1:text;

  a,b,c,d:byte;

  data:array[1..100] of 0..100;

  begin

  assign(f1,'input.txt');

  reset(f1);

  readln(f1,m);

  readln(f1,n);

  result[501]:=100;

  for a:=1 to m do

  begin

  for b:=1 to 100 do data[b]:=0;

  b:=0;

  repeat

  inc(b);

  read(f1,data[b]);

  until eoln(f1);

  for c:=1 to b-1 do

  for d:=c+1 to b do

  begin

  inc(sum[data[c]]);

  num[data[c],sum[data[c]]]:=data[d];

  end;

  end;

  end;

  Procedure Done;

  var min,a,b,c,total:integer;

  begin

  fillchar(result,sizeof(result),-1);

  result[1]:=0;

  for c:=1 to sum[1] do result[num[1,c]]:=0;

  b:=data[1,1];

  repeat

  for c:=1 to sum[b] do

  if (result[num[b,c]]=-1) then result[num[b,c]]:=result[b]+1;

  min:=501;

  for c:=1 to n do if (result[c]<>-1) and (result[c]<result[min])

  then min:=c;

  b:=min;

  until result[n]<>-1;

  writeln(result[n]);{到達S公園的最少換車次數}

  end;

  begin

  Init;

  end.

  4、最佳游覽路線問題

  輸入數據:輸入文件是INPUT.TXT。文件的第一行是兩個整數M和N,之間用一個空格符隔開,M表示有多少條旅游街(1≤M≤100),N表示有多少條林蔭道(1≤N≤20000)。接下里的M行依次給出了由北向南每條旅游街的分值信息。每行有N-1個整數,依次表示了自西向東旅游街每一小段的分值。同一行相鄰兩個數之間用一個空格隔開。

  輸出文件:輸出文件是 OUTPUT.TXT。文件只有一行,是一個整數,表示你的程序找到的最佳瀏覽路線的總分值。

  Program Tour;

  var m,n:integer; {M為旅游街數,N為林蔭道數}

  data:array[1..20000] of -100..100;{data是由相鄰兩條林蔭道所分}

  procedure Init; {隔的旅游街的最大分值}

  var a,b,c:integer;

  f1:text;

  begin

  assign(f1,'input.txt');

  reset(f1);

  read(f1,m,n);

  for a:=1 to n-1 do read(f1,data[a]); {讀取每一段旅游街的分值}

  for a:=2 to m do

  for b:=1 to n-1 do

  begin

  read(f1,c);

  if c>data[b] then data[b]:=c; {讀取每一段旅游街的分值,并選擇}

  end; {到目前位置所在列的最大分值記入數組data}

  close(f1);

  end;

  procedure Done;

  var a,sum,result,c:integer;

  f2:text;

  begin

  result:=0;

  sum:=0;

  a:=0;

  while (a<n) do

  begin

  inc(a); {從數組的第一個數據開始累加,將累加所}

  sum:=sum+data[a]; {得到的最大分值記入result}

  if sum>result then result:=sum;

  if sum<0 then sum:=0; {若當前累加值為負數,則從當前狀態起從新}

  end; {累加}

  assign(f2,'output.txt');

  rewrite(f2);

  writeln(f2,result);

  close(f2);

  end;

  begin

  Init;

  Done;

  end.

 

[標簽:競賽聯賽 競賽]

分享:

高考院校庫(挑大學·選專業,一步到位!)

高考院校庫(挑大學·選專業,一步到位!)

高校分數線

專業分數線

  • 歡迎掃描二維碼
    關注高考網微信
    ID:gaokao_com

  • 👇掃描免費領
    近十年高考真題匯總
    備考、選科和專業解讀
    關注高考網官方服務號


主站蜘蛛池模板: 日韩精品免费观看 | 国产青草视频免费观看97 | 一级片在线免费看 | 日韩精品一区二区三区中文精品 | 国产精品国三级国产aⅴ | 91久久婷婷国产综合精品青草 | 久久嫩草| 日韩欧美国内 | 午夜影院三级 | 国产在线永久视频 | 亚洲第一在线视频 | 成人黄色在线 | 日韩亚洲综合精品国产 | 久久久久久99| 草草影院网址 | 亚洲三级网 | www.四虎网站 | 欧美日韩亚洲一区二区三区在线观看 | 亚洲国产日韩欧美mv | 亚洲精品网站在线 | 亚洲黄色一级大片 | a站全名叫什么 | 日韩精品福利在线 | 欧美日韩亚洲一区 | 乱系列中文字幕在线视频 | 国产综合久久一区二区三区 | 国产乱子伦在线观看 | 白发在线视频播放观看免费 | ww欧洲ww在线视频免费观看 | 花间新娘在线观看免费观看 | 中文字幕永久免费 | 亚洲欧美日本国产一区二区三区 | 免费黄色网站视频 | 青草视频在线观看免费资源 | 午夜a一级毛片一.成 | 欧美成a人免费观看久久 | 国产高清一区二区三区免费视频 | 夜趣福利视频 | 黄色网站在线观看视频 | 久久久久久久尹人综合网亚洲 | 中文字幕一区在线播放 |