2018藍橋杯 ,螺旋折線與日誌統計

2021-10-10 06:18:20 字數 2404 閱讀 5922

日誌統計

看資料範圍,應該會是乙個找規律的題,對於一些情況肯定會有乙個公式來計算。其次,需要注意資料範圍,涉及到大資料相乘,還是使用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,...