2019 杭電多校(第六場)

2021-09-25 23:17:27 字數 2471 閱讀 1460

1005 snowy smile (線段樹)

題意給你n個點 讓你畫個矩形 使矩形內所含點的權值和最大(必須有點)

思路離散化 列舉矩形的左右區間 線段樹維護y座標的最大欄位和 (複雜度 o(n*n*lgn))

**

#include using namespace std;

typedef long long ll;

const int maxn = 2e3+100;

int hax[maxn],hay[maxn];

struct point

po[maxn];

struct node

tree[maxn*4];

int n;

bool cmp(point a,point b)

void build(int x,int l,int r)

int mid = (l + r) / 2;

build(x*2,l,mid);

build(x*2+1,mid+1,r);

}void updata(int x,int l,int r,int id,ll w)

int mid = (l + r) / 2;

if(id <= mid) updata(x*2,l,mid,id,w);

else updata(x*2+1,mid+1,r,id,w);

tree[x].sum = tree[x*2].sum + tree[x*2+1].sum;

tree[x].lmax = max(tree[x*2].lmax,tree[x*2].sum + tree[x*2+1].lmax);

tree[x].rmax = max(tree[x*2+1].rmax, tree[x*2+1].sum + tree[x*2].rmax);

tree[x].max = max(max(tree[x*2].max,tree[x*2+1].max),tree[x*2].rmax + tree[x*2+1].lmax);

}ll query()

int main()

sort(hay+1,hay+1+n);

int mm = unique(hay+1,hay+1+n) - (hay+1);

sort(po+1,po+1+n,cmp);

ll ans = 0;

po[n+1].x = 13452353;

for(int i = 1;i <= n;)

}i++;

while(po[i].x == po[i-1].x)

}printf("%lld\n",ans);

}return 0;

}

10006 faraway

題意 求解方程

思路對於每個式子 去絕對值後分為四個區間(加一橫一豎)n個式子 就是n*n個區間

對著n*n個區間求解 將數分成 lcm(2,3,4,5) = 60種 即如果(x,y)滿足這n個式子 那麼(x+60,y+60)也一定滿足這個式子

對每個區間60*60驗證所有型別的數的組合 然後驗證n個式子是否滿足 滿足的話計算著個區間裡有多少種答案

**

#include using namespace std;

typedef long long ll;

const int maxn = 20;

struct node

a[maxn];

ll hax[maxn],hay[maxn];

ll n;

int check(int x,int y)

return 1;

}ll ok(ll l,ll r)

int main()

sort(hax+1,hax+1+n+1);

sort(hay+1,hay+1+n+1);

ll ans = 0;

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

else return 0;

}x++;}}

}int main()

sort(a+1,a+1+2000);

for(ll i = 1;i <= 2000;i++)

}if(f == 0) printf("-1\n");

}return 0;

}

1012 stay real

題意思路

簽到題**

#include using namespace std;

typedef long long ll;

const int maxn = 1e5+100;

int a[maxn];

int main()

ll sum = 0;

sort(a+1,a+1+n);

for(int i = n;i >= 1;i-=2)

printf("%lld %lld\n",sum,num-sum);

}return 0;

}

2019杭電多校第六場

1005傳送門 題意 乙個二維圖上有若干個點,每個點有乙個座標值 xi,yi 以及乙個價值 vi 1e9 xi,yi,vi 1e9 求乙個價值和最大的矩形 只需輸出最大價值和 題解 離散化後列舉上下邊界可以將二維圖降維為乙個求一維動態最大欄位和的問題,在橫軸上建立線段樹即可維護最大欄位和 inclu...

杭電多校第六場(IF)

題意 有命題 將 b 進製數y按位相加,迴圈無窮次,最終結果若 x 0,則有y x 0,反之不然 給出b和x,判斷命題是否成立 打表發現的b x 1時成立,看到有數論大佬推出來的 想看推導的右轉 includeusing namespace std typedef unsigned long lon...

20190807杭電多校第六場

賽中和隊友一直在搞乙個胡搞做法,艱難優化到本地跑10s,可惜始終過不了。最後只好補了題解做法。倒著刪除,用樹狀陣列求lis,維護一條當前的lis的路徑。若被刪除的數不在當前的lis中,則答案不變 否則,重新做一遍lis。據說因為lis的期望長度為sqrt n 所以被選中的概率是 ac include...