4395: 大家
這個題目和lca類似,就是要計算兩個點間所有點的最大權值點。
可以在更新祖先的時候更新最大值。
(記得多組輸入
#include #include4395 大家#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
#define lson (l , mid , rt << 1)
#define rson (mid + 1 , r , rt << 1 | 1)
#define debug(x) cerr << #x << " = " << x << "\n";
#define pb push_back
#define pq priority_queue
#pragma comment(linker, "/stack:10240000000,10240000000")//
擴棧,要用c++交,用g++交並沒有什麼卵用。。
typedef
long
long
ll;typedef unsigned
long
long
ull;
typedef pair
pll;
typedef pair
pii;
#define fi first
#define se second
#define okc ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define ft(a,b,c) for(int a=b;a <= c;++a) //
用來壓行
#define rep(i , j , k) for(int i = j ; i < k ; ++i)
const ll mos = 0x7fffffff; //
2147483647
const ll nmos = 0x80000000; //
-2147483648
template
inline t read(t&x)
//#define _debug; //*
//#ifdef _debug
freopen(
"input
", "r"
, stdin);
//freopen("output.txt", "w", stdout);
#endif
///*-----------------show time----------------*/
const
int maxn = 20009
; vector
mp[maxn];
intn,m;
int anc[maxn][30
];
int maxv[maxn][30
],a[maxn];
intfa[maxn];
intdeep[maxn];
void dfs(int
x)
for(int i=0; i)
}intmain()
for(int i=1; i<=n; i++)
fa[1] = 0
; deep[
1] = 1
; dfs(1);
for(int i=1; i<=m; i++)
if(deep[u] >=deep[v])
int mx =max(a[v] , a[u]);
for(int j=22; j>=0; j--)
}if(u==v)
else
printf(
"-1\n");}}
return0;
}
2805 大家快來A水題
1 include 2 include 3 int n,m 並查集。4int a 100000 5 void creat 用來給每個單位賦值的,每個單位的值代表他們的上一級。612 return 13 14int find int x 尋找上一級的上一級,知道找到幕後 1521 return a x...
7 3 大家一起來玩遊戲 (20 分
24點是一種益智遊戲,24點是把4個整數 一般是正整數 通過加減乘除以及括號運算,使最後的計算結果是24的乙個數學遊戲,24點可以考驗人的智力和數學敏感性,它能在遊戲中提高人們的心算能力。24點通常是使用撲克牌來進行遊戲的,一副牌中抽去大小王后還剩下52張 如果初練也可只用1 10這40張牌 任意抽...
《如何成為一位大家願意追隨的Leader》讀後感
今天看了左耳朵耗子老師的文章 如何成為一位大家願意追隨的leader 深有感觸。每一行字都往心裡說,文章裡說到leader和boss的不同點在於,leader是大家跟我一起上,而boss則是大家給我上,乙個在團隊的前面,乙個在團隊的後面。boss leader 驅動員工 指導員工 製造畏懼 製造熱情...