2024.11.16模拟赛(*^▽^*)
1.2024.10.29模拟赛(*^▽^*)2.2024.10.31模拟赛(*^▽^*)3.2024.11.01模拟赛( — _ — )4.2024.11.02模拟赛( — _ — )5.2024.11.04( — _ — )6.2024.11.05模拟赛( — _ — )7.2024.11.14&2024.11.15模拟赛( — _ — )
8.2024.11.16模拟赛(*^▽^*)
9.2024.11.19模拟赛( — _ — )10.2024.11.21模拟赛(*^▽^*)11.2024.11.23模拟赛(*^▽^*)12.2024.11.26模拟赛13.2024.12.28模拟赛14.2025.01.04模拟赛15.2025.01.08 模拟赛总结:日常犯困,日常去厕所清醒,日常疯狂调试,不日常四个半小时的模拟赛。打了T1的60分暴力+特殊样例,T4的40分暴力+特殊样例,但是T1不知道为什么
关于T1:四个人,想了四个半小时,摸到了正解的边,但不多……
T1【细胞】
题目大意:
给定一棵以1为根、共
现在给出
解题思路:
直接模拟的复杂度为
所以对于每次查询
离线存储
乖代码
#incIude <bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define mp make_pair
using namespace std;
const int N=5e5+5;//注意偏移量
int n,m;
vector <int> tr[N];
vector <pii> add[N];//时间,修改
vector <int> que[N];
int cnt[N<<1];
int ans[N];
queue <int> ot;
int dep[N];
int lowbit(int x) { return x&-x; }
void _update(int t,int x)
{
while (t<=(N<<1))
{
cnt[t]+=x;
t+=lowbit(t);
}
}
int _sum(int x)
{
int res=0;
while (x)
{
res+=cnt[x];
x-=lowbit(x);
}
return res;
}
void dfs(int x,int _fa)
{
bool flag=false;
if (tr[x].size()==1) flag=true;//叶子结点
dep[x]=dep[_fa]+1;
int _size1=add[x].size();
for (int i=0;i<_size1;i++) _update(dep[x]-add[x][i].first+N,add[x][i].second);//先单点修改
int _size2=que[x].size();
for (int i=0;i<_size2;i++)
{
int p=que[x][i];//查询时间点
if (flag) ans[p]+=_sum(dep[x]+N)-_sum(dep[x]-p+N-1);
else ans[p]+=_sum(dep[x]-p+N)-_sum(dep[x]-p+N-1);
}
int _size3=tr[x].size();
for (int i=0;i<_size3;i++)
{
int v=tr[x][i];
if (v==_fa) continue;
dfs(v,x);
}
for (int i=0;i<_size1;i++) _update(dep[x]-add[x][i].first+N,-add[x][i].second);//回溯
}
signed main()
{
cin>>n>>m;
for (int i=1,x,y;i<n;i++)//存储树
{
cin>>x>>y;
tr[x].push_back(y);
tr[y].push_back(x);
}
for (int i=1,x;i<=n;i++) cin>>x,add[i].push_back({0,x});//单点修改
for (int i=1;i<=m;i++)
{
char op;
int v,k;
cin>>op;
if (op=='+') cin>>v>>k,add[v].push_back({i,k});//单点修改
else cin>>v,que[v].push_back(i),ot.push(i);//区间查询
}
dfs(1,0);
while (!ot.empty()) cout<<ans[ot.front()]<<'\n',ot.pop();
return 0;
}
下次我再写“
”而不是“>> ”导致 我就……一天不玩原神
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效