日誌統計
看資料範圍,應該會是乙個找規律的題,對於一些情況肯定會有乙個公式來計算。其次,需要注意資料範圍,涉及到大資料相乘,還是使用long long
保險一點。
思考:首先,對於每乙個外圍的小橫線,可以把他順時針旋轉90度,這樣就可以看成一些內部的正方形與外部邊長的問題了。
對於內部的正方形,可以看出他們邊長的規律為:2 4 6…。等差數列的求和公式:sn=n*a1+n(n-1)d/2或sn=n(a1+an)/2
得到內部每個正方形的一條邊之和,然後*4
就可以得到內部正方形的周長。
對於外部的長度,我們可以根據邊位置來細分一下。可以分成上下左右
四條邊。
對於乙個點(x,y)
,判斷他是哪一條邊的時候,必須順時針
或者逆時針
來判斷,否則就會對有些點判斷錯誤。
len
為當前外層正方形的邊長
對於上面
的一條邊,他的範圍為y > 0 && abs(x) <= y
,可以得到求和公式為:len + len/2 + x
對於右側
的邊,他的範圍為x > 0 && x >= abs(y)
,求和公式為:len * 2 + len/2 - y
對於下面的點,他的範圍為:y <= 0 && abs(y) + 1 >= abs(x)
,公式為:len * 3 + -x-y
對於左側
的點,他的範圍就是最後非上下右
了,公式為:y - x
}
鏈結位址滑動視窗的經典問題
對所有的贊按照時間從小到大排序
通過雙指標維護長度
不大於d
(左閉右開)的區間,並記錄該區間的中所有帖子獲得的讚數#include
#include
#include
#include
#include
using
namespace std;
struct node};
const
int n =
1e5+10;
int n,d,k;
int x,y;
node f[n]
;int ans[n]
,cnt[n]
,vis[n]
;int e =0;
void
slove()
cnt[f[i]
.id]++;
if(cnt[f[i]
.id]
>= k && vis[f[i]
.id]==0
)}}int
main()
2018藍橋杯省賽 螺旋折線
如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。對於整點 x,y 我們定義它到原點的距離dis x,y 是從原點到 x,y 的螺旋折線段的長度。例如dis 0,1 3,dis 2,1 9 給出整點座標 x,y 你能計算出dis x,y 嗎?輸入格式 x和y對於40 的資料,1000 x,y...
藍橋 2023年省賽 螺旋折線
目測乙個找規律題目,不知道寫得對不對。規律還是蠻好找的 第一象限 包括x軸正半軸,y軸正半軸 以x,y相等的座標為基點,然後再根據所求點與基點的關係求得dis。第二,四象限亦是如此。稍微特殊的第三象限,也能較快地看出規律。在注釋中已經註明 include 藍橋 2018省賽 螺旋折線 long lo...
第九屆藍橋杯 螺旋折線
如圖p1.png所示的螺旋折線經過平面上所有整點恰好一次。對於整點 x,y 我們定義它到原點的距離dis x,y 是從原點到 x,y 的螺旋折線段的長度。例如dis 0,1 3,dis 2,1 9 給出整點座標 x,y 你能計算出dis x,y 嗎?輸入格式 x和y 對於40 的資料,1000 x,...