全国站

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

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

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

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

华中地区 | 河南 湖北 湖南

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

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

华南地区 | 广东 广西 海南

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

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

来自:查字典高考网 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.

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

高二数学联赛讲座三角函数及其最值(一)

信息学联赛知识:Complete Search

全国高中化学竞赛初赛模拟试卷三(b)

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

高中数学联赛培训讲义(二)

高三“摸底考”学生不适应 名师评试卷说变化

信息学联赛知识:动态规划的状态表示(二)

哪些知识点是高中联赛中重点考查的?

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

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

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

网友关注

新课标2011年高考考试说明——数学(文)

2011年高考二轮数学考点突破复习:集合

高考数学第二轮复习应注意的几个问题

高三数学二轮复习中常见的几个问题

2011年高考二轮数学复习:三角函数与平面向量

2011年高三数学寒假复习策略

高考最后20天提分方法:复习数学最好选在下午

高考148分牛人分享:数学拿高分走好4捷径

如何制定复习战略成为考场上的常胜将军?

高考数学二轮复习的五大忌

名师指导:上课如何记数学笔记的秘笈

高考数学第二轮备考指导及复习建议

高考数学二轮复习应遵循的“二八四三”原则

高考数学的解题方法介绍:差异分析法

专家谈:高三数学复习如何跳出题海战术怪圈?

山东名师解析高考数学变化 出题的基础是大纲

备战2011年高考:高三数学复习需要注意的五点

高考数学二轮复习遵循“二八四三”原则

新课标版2011年高考考试大纲——数学(文)

备战2011年高考:高考数学总体复习方案

2011年全国统一高考考试大纲——数学(理)

高考阅卷组长专题报告 教你数学如何拿高分

专家支招:高中女生学好数学的六大法宝

2011年高考二轮数学考点突破复习:平面几何选讲

2011年高考二轮数学考点突破复习:概率与统计

2011年高考二轮数学考点突破复习:选择题的解法

专家支招:六大方法帮助高中女生学好数学

高三数学二轮复习要培养提高能力 避免题海战术

新课标高考文科数学二轮复习综合测试卷

如何高效进行高三数学第二轮复习?

网友关注视频

励志歌曲《阳光总在风雨后》送给高考的莘莘学子,祝金榜题名!

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

组合名师余老师在线讲解2019高考数学全国3卷理科16题

最新高考数学全国2第12题视频讲解及答案

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

张雪峰高考志愿填报指南 第47集 高考志愿,令人头疼的数学系,才是专业万金油,毕业后机会多

印度美术高考美术联考,考前培训班

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

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

【高考英语】七选五解析,不算太难

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

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

沈阳音乐学院郎亦农教授的女高音高考曲目解析课程 第9集 《赛吾里麦》演唱讲解,音乐表现一定要自然流畅

男孩考上理想大学,却因为网瘾休学在家,高中班主任上门劝导

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

高考帮:这!就是专业 第8集 安徽师范大学

高考前必听的5首励志歌曲,《Dream it possible》最能鼓舞人心!

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

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

视频|2019全国高考今日开考: 语文特级教师评析上海卷高考作文

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

学渣男高考英语全写B,老师给老爸说成绩,老爸直接听懵了!

老师好:这大概是高考前所有班主任都会干的事,取消一切副课!

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

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

星闻乐坊 第1272集 张杰的一首歌成了高考神曲

衍声高考琴行2019高本硕学生暑假音乐会 张俊瀚《陕北民歌主题变奏曲》《阿根廷舞曲》第三乐章

美术联考用纸上海考试模拟试卷纸高考统考纸 4k水粉纸素描纸 速写纸卡纸美术模拟测试试卷纸 美术考试专用纸

1000张学生用草稿纸考研专用免邮空白便宜薄演草演算纸白纸本书写纸批发打草a4大张实惠装18k高考数学草稿本

高级中学高考试卷分析专题教研评比活动