b.boundary(數學)
以乙個點為基礎,暴力列舉另外乙個點就可以,就是算圓心的時候有點廢手。。。
ac**
#include
inline
long
long
read()
while
(c >=
'0'&& c <=
'9')
return x*s;
}using
namespace std;
#define newnode (treenode *)malloc(sizeof(treenode))
#define mem(a,b) memset(a,b,sizeof(a))
#define lowbit(x) (x)&(-x)
const
int n =
2e6+5;
const
long
long infinf =
0x7f7f7f7f7f7f7f
;const
int inf =
0x3f3f3f3f
;const
double eps =
1e-7
;const
int mod =
998244353
;const
double ii =
acos(-
1);const
double pp =
(ii*
1.0)/(
180.00);
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef pair<
int,
int> pii;
typedef pair piil;
mapdouble
,double
>
,ll> mp;
ll max;
void
solve
(double x1,
double y1,
double x2,
double y2,
double x3,
double y3)]++
; max =
max(max,mp)
;}signed
main()
} cout << max+
1<< endl;
}
c.cover the tree(dfs序)
首先得明白題意,所謂的連一條鏈所覆蓋的邊,是指u 到 v 的最短通路。
那麼很顯然是從葉子節點入手連鏈,但是就要想到分配問題,這裡我們利用dfs序來進行連邊
ac**
#include
inline
long
long
read()
while
(c >=
'0'&& c <=
'9')
return x*s;
}using
namespace std;
#define newnode (treenode *)malloc(sizeof(treenode))
#define mem(a,b) memset(a,b,sizeof(a))
#define lowbit(x) (x)&(-x)
const
int n =
2e5+5;
const
long
long infinf =
0x7f7f7f7f7f7f7f
;const
int inf =
0x3f3f3f3f
;const
double eps =
1e-7
;const
int mod =
1e9+7;
const
double ii =
acos(-
1);const
double pp =
(ii*
1.0)/(
180.00);
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef pair<
int,
int> pii;
typedef pair piil;
vector<
int> v[n]
;int arr[n]
,ans;
void
dfs(
int a,
int b)
for(
int i =
0;i < v[a]
.size()
;i++)}
signed
main()
for(
int i =
1;i <= n;i++)if
(v[i]
.size()
>1)
//找到乙個非葉子節點進行dfs
dfs(root,0)
; cout <<
(ans+1)
/2<< endl;
for(
int i =
1;i <=
(ans+1)
/2;i++
) cout << arr[i]
<<
" "<< arr[i+ans/2]
<< endl;
//連鏈分配
}
d.duration
水題:
#include
inline
long
long
read()
while
(c >=
'0'&& c <=
'9')
return x*s;
}using
namespace std;
#define newnode (treenode *)malloc(sizeof(treenode))
#define mem(a,b) memset(a,b,sizeof(a))
#define lowbit(x) (x)&(-x)
const
int n =
1e5+10;
const
long
long infinf =
0x7f7f7f7f7f7f7f
;const
int inf =
0x3f3f3f3f
;const
double eps =
1e-7
;const
int mod =
1e9+7;
const
double ii =
acos(-
1);const
double pp =
(ii*
1.0)/(
180.00);
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef pair<
int,
int> pii;
typedef pair piil;
signed
main()
f.fake maxpooling
單獨寫的部落格
2020牛客暑期多校訓練營(第二場) A
時間限制 c c 3秒,其他語言6秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 given n strings s 1,s 2,cdots,s ns1 s2 sn now define f s,t as the maximum i t...
2020牛客暑期多校訓練營(第二場)
c.cover the tree 首先你從以乙個度不為1的點作為根節點。然後你每次都連線乙個葉子節點,這樣顯然是所有的邊都可以被覆蓋。即答案為度為1的點的個數,但是這樣顯然很大,可以優化,可以相當於把根節點當作中間節點,讓葉子節點兩兩相連,顯然答案已經出來了,就是 葉子 1 2 但是怎麼兩兩配對是乙...
2020牛客暑期多校訓練營(第二場)
給你同一天的兩個時刻,請你計算這兩個時刻中間相隔多少秒?注意一下輸入的格式。include includeusing namespace std int main lcm i,j 其中 lcm 是最小公倍數的簡寫 the least common multiple 求每個大小為 k k 的子矩陣的最...