學以致用,高精度題目一個!先用高精度加法預處理,接着一起二分搜索。
program fibs; const maxlen=200; maxn=500; stop='0 0'; type hightype=record num:array[0..maxlen] of longint; len:longint; end; var fib:array[0..maxn] of hightype; limit,a,b:hightype; tot,left,right:longint; str,sa,sb:string; procedure highin(st:string; var x:hightype); var i:longint; begin x.len:=length(st); fillchar(x.num,sizeof(x.num),0); for i:=x.len downto 1 do x.num[x.len+1-i]:=ord(st[i])-ord('0'); end; function compare(a,b:hightype):longint; var i:longint; begin if a.len>b.len then exit(1); if a.len<b.len then exit(-1); for i:=a.len downto 1 do if a.num[i]>b.num[i] then exit(1) else if a.num[i]<b.num[i] then exit(-1); exit(0); end; function getmax(a,b:longint):longint; begin if a>b then exit(a); exit(b); end; procedure highplus(a,b:hightype; var c:hightype); var i:longint; begin c.len:=getmax(a.len,b.len); fillchar(c.num,sizeof(c.num),0); for i:=1 to c.len do c.num[i]:=a.num[i]+b.num[i]; for i:=1 to c.len do if c.num[i]>=10 then begin dec(c.num[i],10); inc(c.num[i+1]); end; while c.num[c.len+1]>0 do inc(c.len); end; procedure prework; var i:longint; begin limit.len:=101; fillchar(limit.num,sizeof(limit.num),0); limit.num[101]:=1; fib[0].len:=1; fillchar(fib[0].num,sizeof(fib[0].num),0); fib[0].num[1]:=0; fib[1].len:=1; fillchar(fib[1].num,sizeof(fib[1].num),0); fib[1].num[1]:=1; fib[2].len:=1; fillchar(fib[2].num,sizeof(fib[2].num),0); fib[2].num[1]:=2; for i:=3 to maxn do begin highplus(fib[i-2],fib[i-1],fib[i]); if compare(fib[i],limit)>0 then begin tot:=i; exit; end; end; end; procedure doit(str:string); var x:longint; begin x:=pos(' ',str); sa:=copy(str,1,x-1); sb:=copy(str,x+1,length(str)-x); end; function binarysmall(x:hightype):longint; var mid,left,right,key:longint; begin left:=0; right:=tot; while left<right-1 do begin mid:=(left+right) shr 1; key:=compare(fib[mid],x); if key>=0 then right:=mid else left:=mid; end; exit(left); end; function binarynobig(x:hightype):longint; var mid,left,right,key:longint; begin left:=0; right:=tot; while left<right-1 do begin mid:=(left+right) shr 1; key:=compare(fib[mid],x); if key=0 then exit(mid) else if key>0 then right:=mid else left:=mid; end; exit(left); end; procedure outit; begin writeln(right-left); end; procedure bigmain; begin readln(str); while str<>stop do begin doit(str); highin(sa,a); highin(sb,b); left:=binarysmall(a); right:=binarynobig(b); outit; readln(str); end; end; begin assign(input,'a.in'); reset(input); assign(output,'a.out'); rewrite(output); prework; bigmain; close(input); close(output); end.
一、前言 用ffmpeg做音視頻保存到mp4文件,都會遇到一個問題,尤其是在視頻監控行業,就是監控攝像頭設置的音頻是PCM/G711A/G711U,解碼後對應的格式是pcm_s16be/pcm_alaw/pcm_mulaw,將這個原始的音頻
簡介: 搶紅包是我們生活常用的社交功能, 這個功能最主要的特點就是用戶的併發請求高, 在系統設計上, 可以使用非常多的辦法來扛住用戶的高併發請求, 在本文中簡要介紹使用Redis緩存中間件來實現搶紅包算法, Redis是一個在內存中基
字符串是 Java 程序中最常用的數據結構之一。在 Java 中 String 類已經重載了"+",字符串可以直接使用"+"進行連接,也可以用StringBuilder/StringBuffer(StringBuilder是J2SE5 及以
Java 平臺提供了兩種類型的字符串操作方式:String 和 StringBuffer/StringBuilder,它們都可以儲存和操作字符串,區別如下: String 是隻讀字符串,也就意味着 String 引用的字符串內容是不能被改
1 枚舉好用嗎? 數據字典型字段,枚舉比Integer好: 限定值,只能賦值枚舉的那幾個實例,不能像Integer隨便輸,保存和查詢的時候特別有用 含義明確,使用時不需要去查數據字典 顯示值跟存儲值直接映射,不需要手動轉換,比如1在頁面上
1 概述 通道是Golang提供的一種基本類型,它可以實現在協程之間的單向通信和雙向通信、發送和接收數據、以及協程同步。 channel的本質是一個隊列,遵循先進先出原則。channel是線程安全的,在任何給定時間,一個數據被設計爲只有一
簡介 go-python Python提供了豐富的C-API。而C和Go又可以通過cgo無縫集成。所以,直接通過Golang調用libpython,就可以實現Go調Python的功能了。但是過程比較複雜,而go-python提供了針對CPy
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 之前本人在找工作面試時在Redis相關問題上可栽了跟頭。在面試前按常規套路準備了一下,比如 Redis 的常用5種數據結構,Redis持久化
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 本文要點 即將於 2020 年 9 月發佈的 Java SE 15 將引入“封印類(sealed class)”(JEP 360),並將其作
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 簡介 Spring Boot 2.2.0 版本開始引入 JUnit 5 作爲單元測試默認庫,在 Spring Boot 2.2.0 版本之前
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 編者按:作爲一個Java開發者,你是否曾爲在PyTorch上部署模型而苦惱?這篇來自AWS軟件工程師的投稿,結合實例,詳細介紹了DJL這個
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 成員方法 類成員主要包括成員變量和成員方法。 帶參數的成員方法 帶參數的成員方法可以接受用戶輸入的內容。創建帶參數的方法時定義的參數叫形式
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 要點: Deno 和 Node.js 都在基於 C/C ++ 的運行時上執行 JavaScript 以實現高性能。Deno 是單個二進制應
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 阿里妹導讀:我們在選擇一種開發語言時會綜合考量各方面的特性,根據實際的需求適當取捨。魚和熊掌往往不可兼得,要想開發效率高,必然要犧牲性能
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 我們在使用緩存的時候,不管Redis或者是Memcached,基本上都會遇到以下3個問題:緩存穿透、緩存併發、緩存集中失效。這篇文章主要針對