裸的仙人掌最大独立子集,结果一个zz的错误让我调了好久...

\(-inf\)开始设为\(0x7fffffff\)结果\(A_i\)有负数一加就炸了

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=2e5+100,maxm=5e5+100,inf=200000000;
int n,m,v[maxm],nex[maxm],head[maxn],num=1,f[maxn][2],a,b,tim,dfn[maxn],fa[maxn],p[maxn];
void add(int x,int y){
v[++num]=y;
nex[num]=head[x];
head[x]=num;
v[++num]=x;
nex[num]=head[y];
head[y]=num;
}
void dp(int x,int y){
int z=y;
int u0=0,u1=0,v0,v1;
while(z!=x){
v1=u0+f[z][1],v0=u1+f[z][0];//交叉选择
u0=v0,u1=max(v0,v1);//可以不选
z=fa[z];
}
f[x][0]+=u1;
u0=-inf,u1=0,z=y;//因为这是环,若x选了,则y不能选
while(z!=x){
v1=u0+f[z][1],v0=u1+f[z][0];
u0=v0,u1=max(v0,v1);
z=fa[z];
}
f[x][1]+=u0;//最后一个也不能选
}
void tarjan(int x){
dfn[x]=++tim;
for(int i=head[x];i;i=nex[i])
if(!dfn[v[i]])
fa[v[i]]=x,tarjan(v[i]);
f[x][1]=p[x];
for(int i=head[x];i;i=nex[i])
if(dfn[v[i]]>dfn[x]&&fa[v[i]]!=x)
dp(x,v[i]);//环内dp
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
scanf("%d%d",&a,&b),add(a,b);
for(int i=1;i<=n;i++)
scanf("%d",&p[i]);
tarjan(1);
printf("%d\n",max(f[1][0],f[1][1]));
return 0;
}

Luogu-4410 [HNOI2009]无归岛的更多相关文章

  1. 【BZOJ1487】[HNOI2009]无归岛(动态规划)

    [BZOJ1487][HNOI2009]无归岛(动态规划) 题面 BZOJ 洛谷 题解 哪来的这么多废话啊,直接说一个仙人掌得了. 然后就是要你求仙人掌最大独立集了.(随便蒯份原来的代码就过了) 不过 ...

  2. P4410 [HNOI2009]无归岛

    P4410 [HNOI2009]无归岛 显然这还是一个仙人掌图 对于同一个岛上的任意两个生物,他们有且仅有一个公共朋友 要求求最大独立集,和树形dp一样,遇到环时单独提出来处理一下就好了 #inclu ...

  3. bzoj1487 [HNOI2009]无归岛

    Description Neverland是个神奇的地方,它由一些岛屿环形排列组成,每个岛上都生活着之中与众不同的物种.但是这些物种都有一个共同的生活习性:对于同一个岛 上的任意两个生物,他们有且仅有 ...

  4. 【刷题】BZOJ 1487 [HNOI2009]无归岛

    Description Neverland是个神奇的地方,它由一些岛屿环形排列组成,每个岛上都生活着之中与众不同的物种.但是这些物种都有一个共同的生活习性:对于同一个岛上的任意两个生物,他们有且仅有一 ...

  5. [HNOI2009]无归岛

    Description Neverland是个神奇的地方,它由一些岛屿环形排列组成,每个岛上都生活着之中与众不同的物种.但是这些物种都有一个共同的生活习性:对于同一个岛上的任意两个生物,他们有且仅有一 ...

  6. 【BZOJ1487】[HNOI2009]无归岛(仙人掌 DP)

    题目: BZOJ1487 分析: 题目中给定的图一定是一棵仙人掌(每条边最多属于一个环),证明如下: 先考虑单独一个岛的情况.第一,一个岛一定是一张「弦图」,即任意一个大小超过 3 的环都至少有 1 ...

  7. 2019.02.07 bzoj1487: [HNOI2009]无归岛(仙人掌+树形dp)

    传送门 人脑转化条件过后的题意简述:给你一个仙人掌求最大带权独立集. 思路:跟这题没啥变化好吗?再写一遍加深记忆吧. 就是把每个环提出来分别枚举环在图中的最高点选还是不选分别dpdpdp一下即可,时间 ...

  8. 【题解】HNOI2009无归岛

    这题真的是无语了,在哪个岛上根本就没有任何的用处……不过我是画了下图,感受到一定是仙人掌,并不会证.有谁会证的求解…… 如果当做仙人掌来做确实十分的简单.只要像没有上司的舞会一样树形dp就好了,遇到环 ...

  9. BZOJ1487 [HNOI2009]无归岛 【仙人掌dp】

    题目链接 BZOJ1487 题解 就是一个简单的仙人掌最大权独立集 还是不会圆方树 老老实实地树形Dp + 环处理 #include<iostream> #include<cstdi ...

随机推荐

  1. firewalld那些事

    FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具.它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项.它 ...

  2. 解密和解压浏览器上加密的js文件

    F12 -> 进入Sources -> 找到任意一个加密的js文件,如图 点击最下方的 {} 即可解压

  3. HTML5 2D平台游戏开发#10Wall Jump

    这个术语不知道怎么翻译比较贴切,但并不妨碍对字面意思的理解,大概就是飞檐走壁.比如: 这是游戏<忍者龙剑传>中的场景,玩家可以通过操纵角色在墙面上移动并跳跃. 首先需要实现角色抓墙这一动作 ...

  4. centos6搭建docker镜像私服

    1.创建私服容器 docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /opt/data/registry:/t ...

  5. linux 参数内核

    优化Linux内核参数   转自:http://www.centoscn.com/CentOS/config/2013/0804/992.html vim /etc/sysctl.conf 1.net ...

  6. NFS网络文件系统服务(配置实战)

    NFS网络文件系统服务(实战) NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源.让不同的主机系统(NFS的客户端)可以透明地读写位 ...

  7. nginx 查看接口请求时间 每个请求图片的时间或者文件的

    根据nginx的access_log查看接口请求时间 muyuren 发表于 1年前 阅读 2300 收藏 0 推荐 0 评论 0 推荐 收藏 首先修改修改生成日志的格式,在nginx配置文件的htt ...

  8. sublime无法使用package Control解决办法。

    http://blog.csdn.net/freshlover/article/details/44261229

  9. windows 10右键项添加Notepad++

    1.打开注册表编辑器,开始->运行->regedit. 2.在HKEY_CLASSSES_ROOT→ * → Shell 下,在Shell下,新建项命名为Open With Notepad ...

  10. JSP隐式对象是JSP容器为每个页面提供的Java对象

    JSP 隐式对象 JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明.JSP隐式对象也被称为预定义变量. JSP所支持的九大隐式对象: 对象 描述 reque ...