題目:
description
乙個房間裡有n盞燈泡,一開始都是熄著的,有1到n個時刻,每個時刻i,我們會將i的倍數的燈泡改變狀態(即原本開著的現將它熄滅,原本熄滅的現將它點亮),問最後有多少盞燈泡是亮著的。
input
乙個數n
output
m,表示最後有m盞是亮著的
sample input
sample output
data constraint
hint
範圍:40%的資料保證,n<=maxlongint
100%的資料保證,n<=10^200
作者思路:高精度平方根。我們知道,乙個n位數<=(ndiv2)(ndiv2)相乘,所以先把長度div 2,從9至0列舉,不要從0至9。
**:
var a,b,c:array[0..251] of longint;
l:longint;
procedure
init;
var i:longint;
st:string;
begin
readln(st);
l:=length(st);
for i:=1
to l do c[250-(l-i)]:=ord(st[i])-48;
end;
procedure
main;
var i,j,k,w:longint;
begin
for i:=250-l div2to
250do
for j:=9
downto0do
begin
a[i]:=j;
fillchar(b,sizeof(b),0);
for k:=150
to250
dofor w:=150
to250
do b[k+w-250]:=b[k+w-250]+a[k]*a[w];
for k:=250
downto1do
begin
b[k-1]:=b[k-1]+b[k] div
10; b[k]:=b[k] mod
10; end;
for k:=0
to250
doif b[k]<>c[k] then
break;
if b[k]<=c[k] then
break;
end;
end;
procedure
print;
var i,j:longint;
begin
for i:=0
to250
doif a[i]<>0
then
break;
for j:=i to
250do
write(a[j]);
end;
begin
init;
main;
print;
end.
JZOJ 4 8 2434 開關燈泡 高精度
description 乙個房間裡有n盞燈泡,一開始都是熄著的,有1到n個時刻,每個時刻i,我們會將i的倍數的燈泡改變狀態 即原本開著的現將它熄滅,原本熄滅的現將它點亮 問最後有多少盞燈泡是亮著的。input 乙個數n output m,表示最後有m盞是亮著的 sample input 5sampl...
2020 02 13普及C組模擬賽6(第三題)
題目描述 題目 農夫約翰最近正在將他的柵欄粉刷一下 這裡所有的柵欄都是在一條直線上的 他是這樣來粉刷的 他從位置0出發,然後執行n條指令,例如,指令可以是 10 l 表示約翰從當前的位置向左移動10個單位的距離,並且粉刷移動過程中遇到的柵欄,又或者是 15 r 表示約翰從當前的位置向右移動15個單位...
2020 02 19普及C組模擬賽8(第三題)
題目描述 自從學習了動態規劃後,famer kxp對動態規劃的熱愛便一發不可收拾,每天都想找點題做,一天,他找到了一道題,但是不會做,於是,他找到了你。題目如下 給出n個無序不重複的數,再有m個詢問,每次詢問乙個數是否在那n個數中,若在,則ans增加2 k,k為該數在原數列中的位置。由於ans過大,...