我也总结一下呗,嘿嘿,我不是专业学这个的,只是上高中后开始的课外培训班吧,而且一开始没有好好学的,可是在第一次参加noip的时候侥幸获了个二等奖(差点就一等,然后犯了个弱弱的错误就无缘了),从此对信息算是有了兴趣,然后又搁置了一段时间,直到省选前一个月,才又重操旧业,权当是学习生活课外的调剂呗,然后我也是从那时开始接触rqnoj的,从最弱的那种题做起,然后没多久就省选了,这期间有师姐的不少帮助,嘿嘿,先谢谢师姐了,我们被仅仅参加过一届的师哥师姐警告说省选很难!然后由于noip的得分较高,也没多大压力,就去了,结果题弱爆了,虽然这样还是没有刷满分啊(要是现在做,嘿嘿说啥都满了),而且我感觉考得不怎么好,加上考试前一晚,宾馆有个哥们性质特好1;00还高歌啊,可我旁边的哥们睡的,哎,那个香啊,然后,我大概快到两点才睡,早晨六点就起了,不知倒是怎么回事,然后买了咖啡,强撑着,都害怕考试时就睡着,然后下了考场,感觉自己也不知道考得怎么样,反正自我感觉还是碎了,回去的飞机上,我可以说是心里翻江倒海,下了飞机就吐了,回到家,还是没心没肺的打了一晚上游戏,觉得自己要无缘国赛了,下来成绩时,我都不太敢去看,可是,真心美啊,当时,听说我考了省第一(虽然是弱省),哎,觉得我一定是跟信息有缘,从这以后接触了一些高级的算法,觉得真的有意思,那些高深的东西,可是自己还是不是有多掌握啊,从此也很少刷rqnoj的题了,开始接触一些poj,vijos类的网站,但还是没rq亲切,这里可以看到得分,也没有那么多的英文,哎,然后就是接近一个月的快乐又有些累人的集训,青春,单薄的令人绝望,打马走过,留下那种亲近又遥远,幸福又苦涩的日子,若干年后回想起这段拼搏的日子,会是那种欣慰的笑容吧,不论结果如何,最后在这里向帮住我的人表示感谢,尤其是师姐,老师,我的那帮哥们(虽然最后就剩我一个男的了),特别感谢(zjx),我们在集训前去一下午一下午的k歌,看电影,还有信息老师,还有我的爸妈,偶尔情绪低落的时候总是气你们,那个,从来都没说过我,总是站在我身后默默的支持我,我想学什么就让我学什么,呜呜感动了,好了,我是抱着虐省的决心去的,代表红旗的男同学,杀出一条血路!!!表示rp++++++++++++++呗!
我有个外号是信息小王子,嘿嘿,我也是个小胖子,最后引用一个大牛说过的话,oi不回头,菜鸟变大牛!!!额,说了这么多,贴个代码吧,这个题的(不让提交了,呜呜,说是有个程序一直运行,哎,第一遍高精都写错了),
program caipiao;
var m,n,i,k1,len,tot,sum1,sum2,sum3,j:longint;
a1,a2,a3,sum,ans:array[1..10000]of longint;
f:array[1..10000]of boolean;
procedure shenchen;
var i,t:longint;
begin
fillchar(f,sizeof(f),true);
for i:=2 to m+n+50 do
begin
if f[i] then
begin
t:=i shl 1;
while t<=m+n do
begin
f[t]:=false;
t:=t+i;
end;
inc(tot); sum[tot]:=i;
end;
end;
end;
function mi(k,t:longint):longint;
var i:longint;
begin
mi:=k;
for i:=2 to t do
mi:=mi*k;
end;
procedure fenjie1(x1:longint);
var i,k,t:longint;
begin
for i:=1 to tot do
begin
if sum[i]>x1 then begin
sum1:=i;
break;
end;
k:=sum[i]; t:=1;
while mi(k,t)<=x1 do
begin
a1[i]:=a1[i]+(x1 div (mi(k,t)));
inc(t);
end;
end;
end;
procedure fenjie2(x1:longint);
var i,k,t:longint;
begin
for i:=1 to tot do
begin
if sum[i]>x1 then begin
sum2:=i;
break;
end;
k:=sum[i]; t:=1;
while mi(k,t)<=x1 do
begin
a2[i]:=a2[i]+(x1 div (mi(k,t)));
inc(t);
end;
end;
end;
procedure fenjie3(x1:longint);
var i,k,t:longint;
begin
for i:=1 to tot do
begin
if sum[i]>x1 then begin
sum3:=i;
break;
end;
k:=sum[i]; t:=1;
while mi(k,t)<=x1 do
begin
a3[i]:=a3[i]+(x1 div (mi(k,t)));
inc(t);
end;
end;
end;
procedure chen(p:longint);
var i:longint;
begin
for i:=1 to len do
begin
ans[i]:=ans[i]*p;
ans[i]:=ans[i]+ans[i-1] div 10;
ans[i-1]:=ans[i-1] mod 10;
end;
while (ans[len]>10)or(ans[len+1]<>0) do
begin
inc(len);
ans[len]:=ans[len]+ans[len-1] div 10;
ans[len-1]:=ans[len-1] mod 10;
end;
end;
begin
assign(input,'rq.in');
assign(output,'rq.out');
reset(input);rewrite(output);
readln(m,n);
k1:=m-n+1;
if n>m then
begin
writeln(0);
halt;
end;
shenchen;
{writeln(sum[sum1-1],' ',sum[sum2-1],' ',sum[sum3-1]);
halt;}
fenjie1(m+n); fenjie2(m+1); fenjie3(n);
{for i:=1 to sum1-1 do
write(sum[i],' ',a1[i],'// ');
writeln;
for i:=1 to sum2-1 do
write(sum[i],' ',a2[i],'// ');
writeln;
for i:=1 to sum3-1 do
write(sum[i],' ',a3[i],'// ');
halt; }
for i:=1 to sum1-1 do
begin
a1[i]:=a1[i]-a2[i]-a3[i];
if a1[i]<0 then begin
k1:=k1 div mi(sum[i],abs(a1[i]));
a1[i]:=0;
end;
end;
ans[1]:=1; len:=1;
for i:=1 to sum1-1 do
for j:=1 to a1[i] do
chen(sum[i]);
chen(k1);
for i:=len downto 1 do
write(ans[i]);
writeln;
close(input); close(output);
end.
那个最后致谢rqnoj
表示崇拜renqing,wish大牛
我一向不愿意用orz
今天破个例吧
orz小胖无敌 orz师姐 orz rqnoj
希望考个好成绩!