1 条题解
-
0
自动搬运
来自洛谷,原作者为

Kevin_Wa
ひさひとしんのう搬运于
2025-08-24 22:06:03,当前版本为作者最后更新于2018-11-05 15:23:57,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
出题人的题解
真的不想说什么,在比赛本题为颂纷题,如果这都送不进的话,建议再学习一下高精度模板。可在比赛中,还是有人打不出高精。现在普及选手可以用来加深高精的印象,但为何此题的难度是提高+/省选-。难道是错误率高导致的???
简单题意:
将字符串移位,在将其ASCLL码相乘(ord(pascal),(int)(C++))高精。
部分分获取:
打暴力30分。(开long long(C++) int64(pascal))
高精满分
高精
不多说,实在不行自己背板去吧。我也帮不了你。
总结
很好奇这个标签是怎么计算的。但我为洛谷的P5000感到高兴,为大家的支持高兴。
代码(跑得慢,作者懒得打更快的)
var n,r,i,j,k,t,j1,lb,len,x,y:longint;s:ansistring; a,b,c:array[0..10000] of longint; begin assign(input,'hillwer.in');reset(input); assign(output,'hillwer.out');rewrite(output); readln(n,r);r:=r mod 26; for i:=1 to n do begin readln(s); for j:=1 to length(s) do begin for k:=1 to r do//这里可以优化直接((ord(s[j])-64)+r-1)mod 26+1 if s[j]='Z' then s[j]:='A' else s[j]:=succ(s[j]); write(s[j]); end;writeln; fillchar(a,sizeof(a),0); lb:=2;len:=1;a[1]:=1; for j:=1 to length(s) do//高精乘 begin y:=ord(s[j]); b[1]:=y mod 10; b[2]:=y div 10; fillchar(c,sizeof(c),0); for k:=1 to len do begin x:=0; for t:=1 to lb do begin c[k+t-1]:=a[k]*b[t]+x+c[k+t-1]; x:=c[k+t-1] div 10; c[k+t-1]:=c[k+t-1] mod 10; end; c[k+t]:=x; end; len:=len+lb;a:=c; while (c[len]=0)and(len>0) do dec(len); end; for j:=len downto 1 do write(c[j]);writeln; end; close(input); close(output); end.
- 1
信息
- ID
- 3999
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者