codeVS第二次月賽 C

2021-07-04 15:10:30 字數 1597 閱讀 5909

題目描述 description

切記不要加任何檔案讀寫, 本次比賽暫不支援ifndef online_judge。請互相轉告。評測機是linux

jijijie是恐怖的科學怪人,他有特殊的**科技 song'ci crash。

dash在他的家庭農場裡擁有 n塊連續的擁有者黑色和金色混雜的 da'shgua田地。song'ci crash攻擊會使連續的一段 da'shgua田地遭受打擊, 會使編號在 [l,r]範圍內的田地產量從 x(x!=0)變為floor(ln(x))。tty,long'aotian職階的騎士,將駕駛他的 knightmare,tgopknight,來迎戰 jijijie。tty每奪回一塊 da'shgua田地,這塊田地就會在 owaski天神的庇護下獲得生機,使田地產量突變。

國王 papafish急不可耐地想知道戰況如何,他會詢問連續的一段da'shgua田地的產量之和。

機智的你,能回答他的詢問嗎?

題解:考場上乍一眼看是一道線段樹裸題,然而注意到區間log並不是一樣的,所以就把區間改寫成了暴力乙個乙個改,然後沒有考慮log(0)不合法的情況,所以爆0了。

%%%__debug大神。

#include#include#include#include#includeusing namespace std;

const int maxn=100001,maxm=400001,maxnode=3*maxn;

int n,m,w[maxn];

struct segmenttree

void maintain(int now)

void set(int now,int l,int r,int o,int v)

int mid=(l+r)>>1,lc=now<<1,rc=now<<1|1;

if(o<=mid)

set(lc,l,mid,o,v);

else

set(rc,mid+1,r,o,v);

maintain(now);

}void query(int now,int l,int r,int ql,int qr,long long& ans)

int mid=(l+r)>>1,lc=now<<1,rc=now<<1|1;

if(ql<=mid)

query(lc,l,mid,ql,qr,ans);

if(qr>mid)

query(rc,mid+1,r,ql,qr,ans);

}void change(int now,int l,int r,int ql,int qr)

int mid=(l+r)>>1,lc=now<<1,rc=now<<1|1;

if(ql<=mid)

change(lc,l,mid,ql,qr);

if(qr>mid)

change(rc,mid+1,r,ql,qr);

maintain(now);

}}tree;

void read(int &x)

else if(flag)break; }}

int main()

int op,a,b;

for(int i=1;i<=m;i++) }

}

CodeVS第二次月賽 B

題目描述 description 切記不要加任何檔案讀寫,本次比賽暫不支援ifndef online judge。請互相轉告。評測機是linux 是個富有詩意的男孩。在他居住的小鎮上,有 n個村莊,由 n 1條道路連線著。這裡的生活和諧而又寧靜。有一天 tty偶然閱讀到一篇雜誌上的文章 陽光下的向日...

第二次月模擬題 201604 3

題目描述 在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄 或者資料夾 和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案或其他目錄。同乙個目錄下的所有檔案和目錄的名字各不相同,不同目錄下可以有名字相同的檔案或目錄。為了指定檔案...

hpu 第二次積分賽

問題a 因子個數 分析 很是尷尬,上去 就用了暴力求解。自己在測試的時候都能夠明顯感覺到,n大的時候答案出來 慢,所以就知道了肯定超時啊 之後就在想會有什麼巧妙的方法呢。中間嘗試了好多的辦法,當時居然都被我否定了。最後也沒有出來 看到題解之後,發現,是和我當時想的一種方法是一樣的,不知道當時是怎麼 ...