依旧是模拟赛赛题。
Hint
Analysis
首先你注意到两棵相邻的树是一定不会死的,所以可能会死的只有自己种下去的树,队列维护。
接着考虑对于每个位置, \(\text{bfs}\) 维护一个最小的长出树的时间 \(vis[j]\),最后暴力统计答案即可。
具体细节看注释。
Code
[code]#include#define pb push_back#define is insert#define fi first#define se second#define mkp make_pair#define mathmod(a,m) (((a)%(m)+(m))%(m))#define mem(a,b) memset(a,b,sizeof a)#define cpy(a,b) memcpy(a,b,sizeof b)using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair pii;namespace FastIO{ const int MX=1 |