求NOIP2011复赛普及组题目详解 PASCAL

2024-12-22 00:56:26
推荐回答(5个)
回答1:

第一题注意负数,注意有可能出现-0(虽然我也不确定有没有);
第二题一个单词一个单词地读(用空格隔断),读一个比较一个;
第三题模拟,不断排序;(但我估计会超时)
第四题用分治,先寻找括号外的加号,没有的话就寻找括号外的乘号,把找到的那个地方的左右两边分别计算在合在一起。注意去括号,注意最后的递归边界。计算时住随时mod 10007(可以用数学的余数定律证明这样不会改变结果)。但着也不能过全,递归到十二万多层就崩溃了。不过至少可以过一半

回答2:

第一题先注意负号,再去0,再mod 10倒着输出
第二题从头到尾比较就行了注意单词必须到文末或后面是空格
第三题机械模拟不断快排就行了
第四题我没写出来,骗分吧

回答3:

第三题循环50遍每次qs显然超时,实际上纸用几遍冒泡即可完成 这样就可以把O(nlogn)的算法降维到O(n)

回答4:

第一题:
var n,i,m,l:longint;
s,x:string;
v:array[1..11] of char;
begin
read(n);
if n<=0 then write('-');
str(abs(n),s);
m:=length(s);
for i :=1 to m do
v[i]:=s[m-i+1];
val(v,l);
write(l);
end.

回答5:

好像都要用长整形