BZOJ1202 HNOI2005 狡猾的商人

2021-07-30 13:38:27 字數 1051 閱讀 6603

把輸出的false打成flase了…一直沒注意到…

先將區間和轉成字首和

那麼就知道了若干條形如sr

−sl−

1=c 的資訊

能判斷出賬本是假的當且僅當通過已知的資訊得到的sr

−sl−

1≠c

於是維護乙個帶權並查集,當

r 和l−

1在同乙個集合裡的時候,利用維護的和根的差算出sr

−sl−

1 判斷是否和

c 相同

code:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace

std;

inline

void read(int &x)

const

int maxn = 510000;

const

int maxm = 510000;

const

int maxb = 21;

int n,m;

int fa[maxn],fc[maxn];

int find_(const

int x)

int main()

else

//y-t=fcy,x-t=fcx -> y-x=fcy-fcx

}if(flag) printf("true\n");

else

printf("false\n");

}return

0;}

狡猾的商人 bzoj1202,HNOI2005

ac通道 分析 因為每月的總收入可以為正,也可以為負,所以要比較兩個區間是否相符,當且僅當它們邊界都相同時才能比較。我們設w i 表示第1 i個月的總收入與第1 fa i 1 個月的總收入之差,及第fa i i個月的總收入。如圖。若i 1,j在同乙個集合中,則第i j個月的總收入為w j w i 1...

BZOJ1202 HNOI2005 狡猾的商人

time limit 10 sec memory limit 162 mb submit 4198 solved 2026 submit status discuss 刁奼接到乙個任務,為稅務部門調查一位商人的賬本,看看賬本是不是偽造的。賬本上記錄了n個月以來的收入情況,其中第i 個月的收入額為ai...

BZOJ1202 HNOI2005 狡猾的商人

bzoj1202 hnoi2005 狡猾的商人 試題描述 刁奼接到乙個任務,為稅務部門調查一位商人的賬本,看看賬本是不是偽造的。賬本上記錄了n個月以來的收入情況,其中第i 個月的收入額為ai i 1,2,3.n 1,n 當 ai大於0時表示這個月盈利ai 元,當 ai小於0時表示這個月虧損ai 元。...