全国站

热门城市 | 全国 北京 上海 广东

华北地区 | 北京 天津 河北 山西 内蒙古

东北地区 | 辽宁 吉林 黑龙江

华东地区 | 上海 江苏 浙江 安徽 福建 江西 山东

华中地区 | 河南 湖北 湖南

西南地区 | 重庆 四川 贵州 云南 西藏

西北地区 | 陕西 甘肃 青海 宁夏 新疆

华南地区 | 广东 广西 海南

资    源
  • 资    源
当前位置:查字典高考网>高中频道>信息学联赛知识>信息学联赛知识:贪心策略的特点与在信息学竞赛中的应用

信息学联赛知识:贪心策略的特点与在信息学竞赛中的应用

来自:查字典高考网 2009-11-12

贪心策略的特点与在信息学竞赛中的应用

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(1100)表示开通了M条单向巴士线路,第2行是一个数字N(1500),表示共有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]

writeln(result[n]);{到达S公园的最少换车次数}

end;

begin

Init;

end.

4、最佳游览路线问题

输入数据:输入文件是INPUT.TXT。文件的第一行是两个整数M和N,之间用一个空格符隔开,M表示有多少条旅游街(1100),N表示有多少条林荫道(120000)。接下里的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 cdata[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 (an) do

begin

inc(a); {从数组的第一个数据开始累加,将累加所}

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

if sumresult then result:=sum;

if sum0 then sum:=0; {若当前累加值为负数,则从当前状态起从新}

end; {累加}

assign(f2,'output.txt');

rewrite(f2);

writeln(f2,result);

close(f2);

end;

begin

Init;

Done;

end.

【信息学联赛知识:贪心策略的特点与在信息学竞赛中的应用】相关文章:

信息学联赛知识:ISBN号码

在京招生高校增加82所 31所高校改名

北大、清华明年“特殊”招生开始网上报名

08香港大学内地招生 网上报名预计下月开始

高中学生心经:为了高一不掉队我们这样学习

高考改革关注:考生能力测试该如何实施?

信息学联赛知识:基本程序题集

化学创造学习

北京市属高校助学金制度年内出台

10月26日8时北京艺术特长生报名网站正式开通

[标签:竞赛联赛,竞赛]

网友关注

文理分科基本概述

郭齐勇:中学生不应实行文理分科(图)

文理分科潜能测试题

毕晓哲:取消文理分科是对高考模式的“倒逼”

郭齐勇:反对中学文理分科 提倡增加儒学

湖南率先取消高中文理分科 利弊何在?(图)

别让孩子成为文理分科试验的小白鼠

从心理学特征冷静看高二文理分科及可报专业

高二文理分科 我们应该怎么选择

文科生必读:文科数学方法指导全攻略

精华内容:高中文理分科中常见的42个关键问题

高二文理分科:把握优势 走出误区

教改规划纲要:未提文理分科因争议太大(图)

名师点拨:给高二同学文理分科的几点建议

文理分科如何选择(一)

没有配套改革 取消高中文理分科不可行

调查显示:超六成网友支持文理分科

高一暑期必读:如何在文理分科中抢得先机

文理分科如何选择(二)

院士建议:取消文理分科,要改革高考制度

郭立场:文理分科的困境与出路

高中文理分科的几点建议

取消文理分科口水战:专家叫好学生叫累

安徽人大代表:应禁止高中过早文理分科

教育热评:教育部为何反对而不制止文理分科

2013年海淀新高一分班考试情况汇总

龚成通:审慎适时坚决取消高中文理分科(图)

学生分享:选择文科理科最重要的因素是什么

复旦大学招生办公室主任谈上海高中的文理分科

文理分科教师谈

网友关注视频

广州早晨 2019 山西一高中班主任带学生骑行1800公里去上海

amc传媒音乐影像 第一季 第600集 高中校长演唱《记忆花园》为高考学子助力打气

招办面对面 第76集 阜阳师范学院信息工程学院

2019年高考试卷解析,数学套路不好用了

这!就是专业 第43集 河北经贸大学—计算机科学与技术专业

高考阅卷名师给考生的高考作文密训课 第3集 高考作文审题实操方法精讲(一)

女儿高考作文只得5分,怎料妈妈一听作文题目,瞬间懂了

高考政治一轮:《经济生活》第九课(社会主义市场经济)练习

如何制作100万层的酥皮糕点?推算过程像数学高考题

北京新闻 2019 5.9万余北京考生今日高考 语文试题鼓励创造性阅读与表达

新闻早报 2019 高考前最后一课 合唱送给班主任

老马讲高考真题第九季2018年高考地理新课标一卷第37题

凤凰县高级中学高考试卷分析专题教研会

高考体育四项生的日常训练——深蹲移动跳:发展膝关节,踝关节力量。

爆笑班主任 第一季 第221集 高考结束学生有多疯狂?山东王老师疯狂吐槽

探秘历史 第二季 第211集 此人高考数学考了0分,因作文写3句话被重点大学录取

一边扔试卷一边玩摇滚?这个学校的高考减压方式,真是帅到没朋友

这!就是专业 第47集 江苏理工学院

张雪峰高考志愿填报指南 第28集 高考志愿分析,材料科学与工程专业,就业很一般,建议慎重选择

高考阅卷名师给考生的高考作文密训课 第4集 高考作文审题实操方法精讲(二)

探秘历史 第二季 第233集 考英语用来睡觉,结果仍是高考状元,如今她怎么样了?

高中信息技术

高职高考数学公式

你高考成绩高吗?这道题目怎能成立?高难度奥数,能不能把你难住

2019高考数学第四题技巧秒出答案

体育生参加高考,太猛了,第一名是飞起来了吗?

2019高考语文全国2卷小说阅读解析

优秀!英语数学双满分,广西“最牛”高考状元730分刷新最高纪录

这!就是专业 第31集 阜阳师范学院信息工程学院

2019高考·语文试题有亮点 凸显时代主题 厚植家国情怀