noip普及组复赛模拟试题13答案Word文档下载推荐.docx
- 文档编号:18795593
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:13
- 大小:18.67KB
noip普及组复赛模拟试题13答案Word文档下载推荐.docx
《noip普及组复赛模拟试题13答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《noip普及组复赛模拟试题13答案Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
【参考程序】
programdfjk;
vari,s,m,t,u,f,d:
longint;
a:
array[1..100000]ofchar;
begin
readln(m,t,u,f,d);
fori:
=1totdo
readln(a[i]);
s:
=0;
begin
casea[i]of
'
u'
:
s:
=s+u+d;
f'
=s+2*f;
d'
end;
ifs>
=mthenbreak;
ifs=mthenwriteln(i);
mthenwriteln(i-1);
end.
输入856231231
u输出2
输入98510430325314
输出1
数字反转(reverse.pas)
【问题描述】给定一个整数,请将该数各个位上数字反转得到一个新数。
新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。
(参见样例2)
【输入】输入文件名为reverse.in。
输入共一行,一个整数n。
【输出】输出文件名为reverse.out。
输出共一行,一个整数,表示反转后的新数。
【输入输出样例1】
reverse.in
reverse.out
123
321
【输入输出样例2】
reverse.in
reverse.out
-380
-83
【数据范围】
-1,000,000,000≤N≤1,000,000,000。
【程序】
Var
i,j,l:
n,a:
string;
Begin
readln(n);
L:
=length(n);
j:
=1;
ifn='
0'
thenbeginwrite('
);
exit;
ifn[1]='
-'
thenbegin
a[1]:
=n[1];
write(a[1]);
=Ldownto1dobegin
inc(j);
a[j]:
=n[i];
i:
=2;
whilea[i]='
doinc(i);
ifa[1]='
forj:
=itoldo
write(a[j])
endelsebegin
=itol+1do
write(a[j]);
End.
输入-290输出-92
253717输出717352输入-800901860输出-68109008
【问题描述】
最近,afy决定给TOJ印刷广告,广告牌是刷在城市的建筑物上的,城市里有紧靠着的N个建筑。
afy决定在上面找一块尽可能大的矩形放置广告牌。
我们假设每个建筑物都有一个高度,从左到右给出每个建筑物的高度H1,H2…HN,且0<
Hi<
=1,000,000,000,并且我们假设每个建筑物的宽度?
?
。
要求输出广告牌的最大面积。
【输入文件】
中的第一行是一个数n(n<
=400,000)
第二行是n个数,分别表示每个建筑物高度H1,H2…HN,且0<
=1,000,000,000。
【输出文件】
输出文件ad.out中一共有一行,表示广告牌的最大面积。
【输入样例】
6
584484
【输出样例】
24
【解释】各个测试点一秒,
但就这道题来说,n<
=400,000,我们如果用枚举不会过全部数据,我们应设计出o(n)的算法来解决,这是单调队列就可以派上用场了。
具体做法是先正着扫一遍,再倒着扫一遍,找到每一个数的右极限与左极限,最后找出最大值。
vartemp,ans:
int64;
n,p,q,i,j:
array[0..400000]oflongint;
b,r,l:
fillchar(b,sizeof(b),0);
=1tondo
read(a[i]);
p:
q:
=1ton+1do
while(p<
=q)and(a[i]<
a[b[q]])do
r[b[q]]:
=i;
dec(q);
inc(q);
b[q]:
=ndownto0do
l[b[q]]:
temp:
=(r[i]-l[i]-1)*a[i];
iftemp>
ansthenans:
=temp;
writeln(ans);
输入20
12883040321922123230451519375562635输出144
输入56
3000200018019028902900312045056050030021002300480840880890350550450760960860250260105011301140214020452065307531553255347034903240920930900930980890740760770825845855950198088068069023802390
输出21080
FarmerJohn给谷仓安装了一个新的安全系统,并且要给牛群中的每一个奶牛分配一个有效的密码。
一个有效的密码由L(3<
=L<
=15)个小写字母(来自传统的拉丁字母集'
a'
...'
z'
)组成,至少有一个元音('
'
e'
i'
o'
或'
)和两个辅音(除去元音以外的音节),并且是按字母表顺序出现的(例如,'
abc'
是有效的,而'
bac'
不是)。
给定一个期望长度L和C个小写字母,写一个程序,打印出所有的长度为L、能由这给定的C个字母组成的有效密码。
密码必须按字母表顺序打印出来,一行一个。
你的程序只需输出前25,000个有效密码,即使后面还存在有效密码。
【输入】
第一行:
两个由空格分开的整数,L和C;
第二行:
C个空格分开的小写字母,密码是由这个字母集中的字母来构建的。
【输出】
第一至?
行:
每一个输出行包括一个长度为L个字符的密码(没有空格)。
输出
行必须按照字母顺序排列。
如果存在多于25,000个有效密码,你的程序必须在输出25,000个有效密码后停止。
【样例输入输出】
passwd.in
passwd.out
46
atcisw
acis
acit
aciw
acst
acsw
actw
aist
aisw
aitw
astw
cist
cisw
citw
istw
解法:
纯碎的深搜吧............也就只有元音辅音的多少是要注意的了..........
var
a:
array[0..28]ofchar;
l,c,i,j,k:
y:
setofchar;
ch:
char;
proceduredfs(i,t:
string);
yy,fy,j,j1:
ifk=25000thenexit;
ift=lthenbegin
yy:
fy:
forj1:
=1toldobegin
ifs[j1]inytheninc(yy)
elseinc(fy);
end;
if(yy<
1)or(fy<
2)thenexit;
inc(k);
writeln(s);
exit;
forj:
=i+1toc-l+(t+1)dodfs(j,t+1,s+a[j]);
assign(input,'
passwd.in'
assign(output,'
passwd.out'
reset(input);
rewrite(output);
readln(l,c);
fori:
=1toc-1doread(a[i],ch);
read(a[c]);
=['
'
];
=1toc-1dobegin
=i+1tocdobegin
ifa[i]>
a[j]thenbegin
a[0]:
=a[i];
a[i]:
=a[j];
a[j]:
=a[0];
=1toc-l+1dobegin
dfs(i,1,a[i]);
close(input);
close(output);
输入68
aycistwz
输出acistw
acisty
acistz
aciswy
aciswz
acisyz
acitwy
acitwz
acityz
aciwyz
acstwy
acstwz
acstyz
acswyz
actwyz
aistwy
aistwz
aistyz
aiswyz
aitwyz
astwyz
cistwy
cistwz
cistyz
ciswyz
citwyz
istwyz
输入710
aycistwzbf
输出abcfist
abcfisw
abcfisy
abcfisz
abcfitw
abcfity
abcfitz
abcfiwy
abcfiwz
abcfiyz
abcfstw
abcfsty
abcfstz
abcfswy
abcfswz
abcfsyz
abcftwy
abcftwz
abcftyz
abcfwyz
abcistw
abcisty
abcistz
abciswy
abciswz
abcisyz
abcitwy
abcitwz
abcityz
abciwyz
abcstwy
abcstwz
abcstyz
abcswyz
abctwyz
abfistw
abfisty
abfistz
abfiswy
abfiswz
abfisyz
abfitwy
abfitwz
abfityz
abfiwyz
abfstwy
abfstwz
abfstyz
abfswyz
abftwyz
abistwy
abistwz
abistyz
abiswyz
abitwyz
abstwyz
acfistw
acfisty
acfistz
acfiswy
acfiswz
acfisyz
acfitwy
acfitwz
acfityz
acfiwyz
acfstwy
acfstwz
acfstyz
acfswyz
acftwyz
acistwy
acistwz
acistyz
aciswyz
acitwyz
acstwyz
afistwy
afistwz
afistyz
afiswyz
afitwyz
afstwyz
aistwyz
bcfistw
bcfisty
bcfistz
bcfiswy
bcfiswz
bcfisyz
bcfitwy
bcfitwz
bcfityz
bcfiwyz
bcistwy
bcistwz
bcistyz
bciswyz
bcitwyz
bfistwy
bfistwz
bfistyz
bfiswyz
bfitwyz
bistwyz
cfistwy
cfistwz
cfistyz
cfiswyz
cfitwyz
cistwyz
fistwyz
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- noip 普及 复赛 模拟 试题 13 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)