題意:給你經典的fibonacci 數列,給你左右區間,區間和為奇輸出1,為偶數輸出0;
資料範圍為10的10000次方。
首先說複雜度很高,這種題就打表找規律。
其次資料範圍過大,開long long也不夠,可以考慮用字元陣列來解決。存每一位數,求出區間和。
技巧:對於大數計算,我們可以加每一位再然後%3;
比如123456=(1+2+3+4+5+6)%3;
打表找規律會發現兩個奇數,乙個偶數。
考慮所有偶數的情況:
奇奇偶 奇奇偶 奇奇偶 奇奇偶
3個為迴圈節,根據這個找出偶數的規律。
(區間長度+1)%3= =0的話,肯定為偶數
(區間長度+1)%3= =1的話,如果左區間%3==0,為偶數
(區間長度+1) %3= =2的話,如果左區間%3= =1,為偶數
迴圈節完畢,其餘全是奇數情況。
f1=1 ,f2=1,f3=2,f4=3,f5=5,f6=8,f7=13,f8=21,f9=34,f10=55;…
612
1314
15123456
12345678987654321
12320190427201904272019042720190427
sample output00
1001
#include
#include
#include
#include
using namespace std;
const
int maxn=
3e5+10;
char c1[maxn]
;char c2[maxn]
;int cnt1[maxn]
;//把字元轉換數字,放在陣列;
int cnt2[maxn]
;int
main()
for(
int i=
0;i) sum1=sum1%3;
sum2=sum2%3;
int ans;
//記錄答案if(
(sum2-sum1+1)
%3==0
) ans=0;
elseif(
(sum2-sum1+1)
%3==1
&&sum1%3==
0)ans=0;
elseif(
(sum2-sum1+1)
%3==2
&&sum1%3==
1)ans=0;
else ans=1;
printf
("%d\n"
,ans);}
return0;
}
打表找規律
題解 此題資料規模較大,如果運用直接暴力方法顯然不可行。對於公式 f n a f n 1 b f n 2 後者只有7 7 49 種可能,為什麼這麼說,因為對於f n 1 或者 f n 2 的取值只有 0,1,2,3,4,5,6 這7個數,a,b又是固定的,所以就只有49種可能值了。由該關係式得知每一...
A Funny Game 打表 找規律
n枚硬幣排成乙個圈。alice和bob輪流從中取一枚或兩枚硬幣。不過,取兩枚時,所取的兩枚硬幣必須是連續的。硬幣取走之後留下空格,相隔空格的硬幣視為不連續。alice開始先取,取走最後一枚硬幣的獲勝。當雙方都採取最有策略時,誰會獲勝?不管,先爆搜找規律。includeusing namespace ...
CH Position 數列 打表找規律 貪心
總時限10s 記憶體限制 256mb 出題人sliverriver 提交情況 2 7 題目描述 棟棟非常喜歡數列.數列中有n個數且兩兩不同,並且該數列中所有的數都屬於 0,n 那這個數列即為極好數列。對於每兩個極好數列a,b都有契合度,契合度的計算公式如下.契合度 a0 xor b0 a1 xor ...