2023年廣東省大學生程式設計競賽 H

2021-06-21 12:25:17 字數 1391 閱讀 5928

// 一看這題就會想到應該是用線段樹處理

// 一條邊的分出來的兩個部分點編號並不是連續的,這樣很難用線段樹處理

// 所以我們就想到給點重新編號,dfs一次,按訪問到的點順序給點編號

// dfs一條邊的子樹得到的編號肯定是連續,然後我們記錄著這個居間

// 這樣就可以套線段樹了,~~

// by _hehele

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std ;

#define ll long long

#define mod 1000000007

#define maxn 100010

struct node

qe[maxn*2];

int map1[maxn] ,top , head[maxn] ;

int _min[maxn] , _max[maxn] ,val[maxn] ;

int ql , qr , vv ;

int max,min ;

int mmin[maxn*3] ,mmax[maxn*3] ;

void unit( int u , int v , int id )

void dfs( int u ,int fa ,int & kk )

}void update( int l ,int r , int o)

int mid = (l+r)>>1 ;

if( ql <= mid) update(l,mid,o<<1) ;

else update(mid+1,r,o<<1|1) ;

mmin[o] = min(mmin[o<<1|1],mmin[o<<1]) ;

mmax[o] = max(mmax[o<<1|1],mmax[o<<1]) ;

}void find( int l , int r ,int o )

int mid = (l+r)>>1 ;

if( ql <= mid ) find(l,mid,o<<1) ;

if(qr > mid ) find(mid+1,r,o<<1|1) ;

}int main()

dfs(1,-1,j) ;

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

while(m--)

else

if( j < n )

ans += (ll)min*max ;

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

}return 0 ;

}                                 

2019河北省大學生程式設計競賽

theme 給定q,n,p,1 n,q,p 10 9,求s i 1,n q i mod p solution 求q i很簡單,用快速冪就行,關鍵是n到10 9,切丁超時。開始是想求出等比數列的和,但要除以q 1,而q 1與p又不一定互質,所以也沒法用乘法逆元。可以看出完全沒必要乙個乙個地用快速冪算,...

2018湖南省大學生程式設計競賽總結

先說戰績,3題銅牌滾粗。比賽開始前五分鐘就發了紙質檔題面,hsx一看發現a題是個水題,立馬就想到了思路 然後比賽開始五分鐘後1發ac,然後hsx去攻雅禮已經a了的d題 看榜發現湖大有個隊第22秒就a了 手速真他媽快 還發現有人a了b題和c題,我看b題,陽哥看c題,hsx攻d題,我讀懂了題意但是沒有什...

江蘇省大學生程式設計競賽(JSCPC)賽後感

仔細的算了一下,這是我第6次參加與acm有關的比賽了,每一次的經歷,在我看來都是一次對自己能力的認識與評估,身邊學計算機專業的同齡人對這項比賽的熱愛,專注,勇氣以及所獲得的成就讓要好好努力,更要加倍付出。我要再努力點,再專注點,雖然我還是不太滿意自己目前的狀態和解題能力,但是最後一年了,我願意繼續與...