通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"NOIP真题" 试卷中 NOIP第十六届全国青少年信息学奥林匹克联赛初赛试题[2010提高组] 中有题目如下:
第1题
(烽火传递) 烽火台又称烽燧,是重要的军事防御设施,一般建在险要处或交通要道上。 一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息;夜晚燃烧干柴,以火光传递军情。在 某两座城市之间有 n 个烽火台,每个烽火台发出信号都有一定的代价。为了使情报准确地传 递,在连续的 m个烽火台中至少要有一个发出信号。现输入 n、m和每个烽火台发出信号的代 价,请计算总共最少花费多少代价,才能使敌军来袭之时,情报能在这两座城市之间准确传 递。
例如,有 5 个烽火台,他们发出信号的代价依次为 1,2,5,6,2,,且 m为 3,则总共最少 花费代价为 4,即由第 2 个和第 5 个烽火台发出信号。
#include<iostream> #include<cstring> using namespace std; const int SIZE=100; int n,m,r,value[SIZE],heap[SIZE], pos[SIZE],home[SIZE],opt[SIZE]; //hep[i] 表示用顺序数组储存的堆 heap 中第 i 个元素的值 //pos[i] 表示 opt[i] 在堆 heap中的位置,即 heap[pos[i]]=opt[i] //home[i] 表示 heap[i] 在序列 opt 中的位置,即 opt[home[i]]=heap[i] void swap(int i,int j)// 交换堆中的第 i 个和第 j 个元素 { int tmp; pos[home[i]]=j; pos[home[j]]=i; tmp=heap[i]; head[i]=head[j]; heap[j]=tmp; tmp=home[i]; home[i]=home[j]; home[j]=tmp; } void add(int k)// 在堆中插入 opt[k] { int i; r++; heap[r]= ① ; pos[k]=r; ② ; i=r; while( (i>1) && (heap[i]<heap[i/2]) ) { swap(i,i/2); i/=2; } } void remove(int k)// 在堆中删除 opt[k] { int i,j; i=pos[k]; swap(i,r);; r--; if(i==r+1) return ; while( (i>1)&&(heap[i]<heap[i/2]) ) { swap(i,i/2); i/=2; } while(i+i<=r) { if( (i+i+1<=r) && (heap[i+i+1]<heap[i+i]) ) j=i+i+1; else ③ ; if(hea[i]>heap[j]) { ④ ; i=j; } else break; } } int main() { int i; cin>>n>>m; for(i=1;i<=n;i+++) cin>>value[i]; r=0; for(i=1;i<=m;i++) { opt[i]=value[i]; add(i); } for(i=m+1;i<=n;i++) { opt[i]= ⑤ ; remove( ⑥ ); add(i); } cout<<heap[1]<<endl; return 0; }
所属试卷:NOIP第十六届全国青少年信息学奥林匹克联赛初赛试题[2010提高组]
AWT中用来表示颜色的类是( )。
Java中类ObjectOutputStream支持对
若有定义:则以下不能正确表示该数组元素的表达式是( )
有以下程序:程序运行的结果是( )。
有语句:k=x<y?(y<z?1:0):0; 以下选项
有以下程序:若想通过键盘输入,使得a1的值为12,得a
以下关于C语言数据类型使用的叙述中错误的是。
已下程序的输出结果是。
已知列表x=[1.0, 2.0, 3.0],那么表达式
执行下面程序段后,k的值为________。
分别叙述linux对IDE硬盘和usb接口的移动硬盘的
假设你是系统管理员,需要增加一个新的用户账号zheng
MySQL客户端程序 _____ 可用于从mysqld
curseek是已定义的游标,关闭该游标的语句为 __
MySQL中用 ____ 表示全局变量。
开启事件调度器功能的命令是
强连通图的各顶点间均可达。
强连通图的性质不包括( )。
变量的本质是代表内存中的一个存储单元的_____。
设char a,b;,若想通过a&&b运算保留a的第1
在C语言中,格式输入操作是由库函数(只写函数名)___
将数组a的首地址赋给指针变量p的语句是_____。
函数不可以进行嵌套定义,但可以进行嵌套_____。
函数fun的功能是:将字符串中的字符按逆序输出,但不改
我们所写的每条C语句,经过编译最终都将转换成二进制的机
结构化程序包括的基本控制结构是
数据库系统的三级模式不包括
从 1 到 2018 这 2018 个数中,共有___
输出: ___________
与十进制数 28.5625 相等的四进制数是( )。
更多选择题
更多填空题
全国计算机等级考试《二级Java语言程序设计》真题(五)
全国计算机等级考试《二级Java语言程序设计》真题(四)
全国计算机等级考试《二级Java语言程序设计》真题(三)
全国计算机等级考试《二级Java语言程序设计》真题(二)
全国计算机等级考试《二级Java语言程序设计》真题(一)
计算机二级Python语言程序设计模拟试卷
Python第三方库