题目传送门:https://www.luogu.org/problemnew/show/P1600

感觉这两天在处理边界问题上有点神志不清......为了从80的暴力变成100,花了整整一个下午+一个晚上的时间(还好最后还是搞了出来)

题目大意:给你一棵树N个点的无根树,有M个人要从Si走到Ti,行走速度为每秒一条边。对于树上任意节点i,求出所有经过该点时行走时间恰好为Wi的路径数量。且这M个人到达终点后下一秒会立即消失。

先来说说暴力,写得妙的话,这题暴力可以拿80分(是不是很良心??)

这种题目考场上最好还是打暴力

25分(1到5号点):直接对于所有的任务,模拟从S跑到T,随后直接统计答案即可。

 1 bool dfs(int x,int fa,int t,int dep){
 2     if(x==t){
 3         if(dep==w[x]) ans[x]++;
 4         return 1;
 5     }
 6     for(int i=head[x];i;i=e[i].next) if(e[i].u!=fa){
 7         if(dfs(e[i].u,x,t,dep+1)){
 8             if(dep==w[x]) ans[x]++;
 9             return 1;
10         }
11     }
12     return 0;
13 }
25分暴力

相关文章:

  • 2021-07-04
  • 2021-12-24
  • 2022-02-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-20
  • 2022-12-23
  • 2021-11-17
  • 2021-07-11
  • 2021-09-20
  • 2021-11-26
相关资源
相似解决方案