題目
小q玩遊戲——開採金幣
**tyvj 1316
題目大意
s次操作,可以建礦或者採金,採金就是獲得礦數的數值,建礦就是增加礦數,初始礦為0
資料範圍
s <= 10^100樣例1
0
做題思路
資料好朦朧啊,來個更朦朧的解法哈(就是證明不解釋),ans=(s/2)^2
知識點萬進製的高精度加法、高精度乘法、高精度除法,貪心
var
a1,a2,a:array[0..70]of longint;
s,s1:string;
l:longint;
procedure init;
var i,j:longint;
begin
readln(s);
l:=length(s);
j:=ldiv 4;
ifj*40 then s1:=copy(s,l-i*4+1,4)
else s1:=copy(s,1,l-(i-1)*4);
val(s1,a1[i]);
end;
a1[0]:=j;
while (a1[0]>0)and(a1[a1[0]]=0) dodec(a1[0]);
end;
procedure print;
var i:longint;
begin
while (a[a[0]]=0)and(a[0]>0) do dec(a[0]);
ifa[0]=0 then writeln('0')
else
begin
write(a[a[0]]);
for i:=a[0]-1 downto 1 do
case a[i] of
0..9:write('000',a[i]);
10..99:write('00',a[i]);
100..999:write('0',a[i]);
else write(a[i]);
end;
writeln;
end;
fillchar(a,sizeof(a),0);
end;
procedure minu;
var i,k:longint;
begin
k:=0;
fori:=a[0] downto 1 do
begin
a[i]:=a[i]+k*10000;
k:=a[i]mod 4;
a[i]:=a[i] div 4;
end;
while a[a[0]]=0 do dec(a[0]);
end;
procedure mult;
var i,j:longint;
begin
fillchar(a,sizeof(a),0);
fori:=1 to a1[0] do
forj:=1 to a2[0] do
begin
a[i+j-1]:=a1[i]*a2[j]+a[i+j-1];
a[i+j]:=a[i+j]+a[i+j-1] div 10000;
a[i+j-1]:=a[i+j-1] mod 10000;
end;
a[0]:=a1[0]+a2[0];
ifa[a[0]+1]>0 then inc(a[0]);
end;
begin
init;
if(a1[0]=1)and(a1[a1[0]]=1)then
begin
writeln('0');
halt;
end;
a2:=a1;
mult;
minu;
print;
end.
Tyvj 1316 小Q玩遊戲 開採金幣
題目 小q玩遊戲 開採金幣 tyvj 1316 題目大意 s次操作,可以建礦塔,可以採礦,採礦每次採已有礦塔數的礦,初始為0礦塔,求 最大採礦數。資料範圍 s 10 100 樣例 1 0 做題思路 看題意很清晰,但我不是大牛,不知道這和高精度有什麼直接關係?難道只是用高精 度來處理數?額。原來是有個...
Tyvj 1315 小Q玩遊戲 經營餐廳
題目 小q玩遊戲 經營餐廳 tyvj 1315 題目大意 n個物品,買m件,每個物品有個初始加個,每買一次加個上公升一定數值,求最小花 費 資料範圍 1 n,m 1000。1 cost i up i 500 樣例 2 3 100 100 190 5 485 做題思路 物品,果斷揹包嗎?額 錯了,貪心...
小 X 玩遊戲 game
題目 時間限制 1 sec 記憶體限制 64 mb 提交 241 解決 81 聽完了故事,小 x 又想去玩一會兒遊戲了。這是乙個很奇特的單機遊戲,遊戲規則如下 遊戲中一共有 4 n 張牌,每張牌上有乙個數字,這些數字恰好是 1 4 n。一開始電腦會把這 4 n張牌隨機打亂,然後會發 2 n 張牌給小...