2024.10.29模拟赛(*^▽^*)
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 模拟赛今天照常7:45开始打模拟赛,11:45时结束。打了T1的40分暴力、T3的20分暴力,没有注意到T4的特殊样例可以骗分(悲),最后以60分收尾。总结一下,没有挂分,但也没和正解挨上边,算是不好也不坏吧。
订题时我看着T1 26行的AC代码陷入了沉思。三个人,想了至少三个小时,结果全没想出来,于是来整理一下今天的神奇模拟赛。
T1【集合】
题目大意:
给定一棵
解题思路:
经过一定的思考之后,我们发现正序操作可以理解为“我会有多少个朋友”,明显不好处理;但倒序操作可以理解为“我会是谁的朋友”,可以转移。
举个栗子:对于操作加盟
可以转移为
于是乎,我们维护
来自蒟蒻的小声bb:想过3小时思路不对,没想过思路完全不着边。
可爱的26行代码
#incIude <bits/stdc++.h>
using namespace std;
const int N=4e5+10;
int n,m;
int u[N],v[N];//记录每条边
int op[N];//操作
int ans[N],pre[N];//答案与上次答案
void read()
{
scanf("%d%d",&n,&m);
for (int i=1;i<n;i++) scanf("%d%d",&u[i],&v[i]);
for (int i=1;i<=m;i++) scanf("%d",&op[i]);
}
int main()
{
read();
for (int i=1;i<=n;i++) ans[i]=1;
for (int i=m;i>=1;i--)
{
int uu=u[op[i]],vv=v[op[i]];
ans[uu]=ans[vv]=pre[op[i]]=ans[uu]+ans[vv]-pre[op[i]];
}
for (int i=1;i<=n;i++) printf("%d ",ans[i]);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】