// 一看這題就會想到應該是用線段樹處理
// 一條邊的分出來的兩個部分點編號並不是連續的,這樣很難用線段樹處理
// 所以我們就想到給點重新編號,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有關的比賽了,每一次的經歷,在我看來都是一次對自己能力的認識與評估,身邊學計算機專業的同齡人對這項比賽的熱愛,專注,勇氣以及所獲得的成就讓要好好努力,更要加倍付出。我要再努力點,再專注點,雖然我還是不太滿意自己目前的狀態和解題能力,但是最後一年了,我願意繼續與...