hdu 4995 離線處理 模擬

2021-06-26 09:58:43 字數 851 閱讀 2184

給定一維座標下的n個點,以及每個點的權值,有m次查詢,每次將查詢的x點上的權值修改為離x最近的k個點權值的平均和,有相同取序號小的。最後輸出修改值的總和。

先離線處理出每個x點對應的所有最近的k個點,然後模擬即可

#include #include #include #include #include #include #include #include #include using namespace std;

#define rd(x) scanf("%d",&x)

#define rd2(x,y) scanf("%d%d",&x,&y)

#define rd3(x,y,z) scanf("%d%d%d",&x,&y,&z)

#define clr0(x) memset(x,0,sizeof(x))

typedef long long ll;

const int maxn = 100005;

int n,m,k;

int g[maxn][11];

double v[maxn];

struct nodep[maxn];

bool cmp(node a,node b)

bool lorr(int x,int l,int r)

void getk(int x)

void init ()

sort(p , p + n, cmp);

for (int i = 0; i < n; i++)

getk(i);

}int main()

printf("%.6lf\n",ans);

}return 0;

}

hdu 4288 線段樹 離線處理

hdu 4288 題意 給你類似乙個公升序的set結構 add就是加入乙個數 del就是刪除乙個數 sum就是把所有 5 3的位置的數求和 這題我們怎麼入手呢?以前做過一道類似的樹狀陣列開55個的題 這個題其實大同小異 就是對sum陣列表示 5的值我們開個sum 5 那麼你既然是公升序的 我每次ad...

HDU 3333 線段樹 離線處理

hdu 3333 線段樹 離線處理 問你給定區間內的不重複的數字的和,如1 1 1 3 4 區間1到2就是1,區間1到5就是8。這種線段樹只能離線來寫,離線的方法是按照查詢區間的右端點來排序,然後這道題目的資料範圍較大需要離散化簡單處理一下,然後對於輸入的每個點來說,順序走下去。然後如果當前點之前出...

hdu5441 離線處理 並查集

題意 給你n個城市m個邊,每條邊有一權值,表示路費 如果給出一筆錢,錢大於路費則表示該條路可以通過 通過這條路 則代表 點 a,b 和 b,a 是合法的點,合法的對數為2 k次查詢,每次查詢給出一筆錢,求該筆錢能走過的所有點的合法對數 對輸入的邊按權值排序,對輸入的錢數按權值排序 對第一筆錢,把權值...