当前位置: 首页 > news >正文

P1041题解

题目链接

算法:搜索

第一次看到这道题的解法时我也不相信这能过,但搜索题最奇妙的就是这一点.这道题从正面想比较难,我们考虑把减掉一条边改为把这一个子树的人"救下".这样我们写dfs时直接维护最大的存活数就可以.同时我们尽量将这个图转为一棵树,这里推荐dijikstra,因为比较好写.

那么我们将图转为树后只需维护层级就可以,因为想象一下我们什么都不做病毒会一层一层往下扩散,因此距离根节点的距离就是这个节点会在哪一时刻被感染.所以我们现在可以操作后只能每次救一个子树的人,但因为有后效性我们只能一个一个枚举.我们可以用一个fd数组标注这个点有没有被保护,当救下一个子树的人时我们把这个子树的数组都标记一下,回溯时再加回去就行.这样我们就可以非常,非常暴力的得到结果.

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e3+10;
int n,m,dis[N],x,y,ma;
bool vis[N],fd[N];
vector<int>f[N],v[N],tr[N];
struct node{int u,d;bool operator < (const node &u) const{return u.d<d;}
};
void remake(int x, int lev){tr[lev].push_back(x);for(int i=0;i<f[x].size();i++){int u=f[x][i];if(dis[u]==dis[x]+1){v[x].push_back(u);remake(u,lev+1);}}
}
void dij(){priority_queue<node>q;for(int i=2;i<=n;i++) dis[i]=(1e12);q.push({1,0});while(q.size()){node t=q.top();q.pop();if(vis[t.u]) continue;else vis[t.u]=1;for(int i=0;i<f[t.u].size();i++){int u=f[t.u][i];if(dis[t.u]+1<dis[u]){dis[u]=dis[t.u]+1, q.push({u,dis[u]});}}}remake(1,0);
}
int check(int x){fd[x]=1;int num=1;for(int i=0;i<v[x].size();i++){int u=v[x][i];num+=check(u);}return num;
}
void redo(int x){fd[x]=0;for(int i=0;i<v[x].size();i++){int u=v[x][i];redo(u);}
}
void dfs(int lev, int alive){ma=max(ma,alive);for(int i=0;i<tr[lev].size();i++){int u=tr[lev][i];if(!fd[u]){int num=check(u);alive+=num, dfs(lev+1,alive);redo(u), alive-=num;}}
}
signed main(){cin>>n>>m;while(m--){cin>>x>>y, f[x].emplace_back(y), f[y].emplace_back(x);}dij(), dfs(1,0), cout<<n-ma;return 0;
}

http://www.dtcms.com/a/516824.html

相关文章:

  • 大语言模型本地部署之转录文本总结
  • 北京建设信源官方网站wordpress如何修改logo
  • 网站在那里备案做网站的属于什么行业
  • Matalb处理arxml 连线问题存储问题。
  • iOS 26 App 查看电池寿命技巧,多工具组合实践指南
  • 孝感 网站建设公众号运营总结
  • 国内高校网站建设的调查wordpress设置略缩图外链图片
  • ITSM 目前成熟度如何?为什么中小型企业总卡在半途,以及R²AIN SUITE如何让企业突围
  • 响应式购物网站设计青岛手机网站建设报价
  • AI驱动的测试:Cypress的cy.prompt功能实践
  • SpringMVC—概述 入门程序 入门程序的工作流程 bean加载控制 Apifox工具的下载
  • 网站返回404北京网站模板
  • Profinet转TCP/IP协议中枢:构建PLC与打标卡无缝通讯的底层架构
  • Clang编译器详解:搞懂Clang编译器的前世今生和实际应用(交叉编译和静态分析)
  • 这个百度的网站怎么做的广西南宁市有公司网站设计
  • 查网站跳出率自己做手机网站
  • 钉钉云打印钉钉智能云打印
  • 网站建设招聘要求云服务器建网站
  • 17zwd一起做网站官网用html做的美食网站
  • 针对汽车远程无钥匙进入系统的新型重放同步攻击的缓解策略
  • 北京住房与城乡建设厅网站首页html网页代码完整代码四个跳
  • 公司业绩怎么发到建设厅网站上书画院网站模板
  • 个人网站要不要备案做动态表情包的网站
  • Linux中inode节点号的获取相关函数的实现
  • tslib库介绍与使用
  • CyclicBarrier
  • 有哪个网站做正品港货网站建设中常见的问题
  • 【GD32】输出时钟配置
  • 昆明网站建设系统有哪些心理服务网站建设内容
  • 企业网站开发需求文档百度广告怎么投放多少钱