Are you ready?

  • 题目:
  • 题意:
  • 分析:
  • 代码:

题目:

传送门


题意:

给出一个图,问我们删掉每一个节点可影响的方案的个数


分析:

缩点+割点裸题
对于经过每个割点的路径,我们分两种情况计算:
1.1.1.由外部连进来的:用外部的节点总个数*缩点中节点的总个数
2.2.2.两个缩点自己相连:用两个缩点的节点个数相乘,最后因为会多算一倍,所以/2/2/2


代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<set>
#include<queue>
#include<vector>
#include<map>
#include<list>
#include<ctime>
#include<iomanip>
#include<string>
#include<bitset>
#include<deque>
#include<set>
#define LL long long
using namespace std;
inline LL read(){LL d=0,f=1;char s=getchar();while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}while(s>='0'&&s<='9'){d=d*10+s-'0';s=getchar();}return d*f;
}
int n=read(),m=read();
struct node{int to,next;
}e[200005];
int ls[200005],cnt=0;
int s=0;
int size[50005];
void add(int x,int y)
{e[cnt]=(node){y,ls[x]};ls[x]=cnt++;return;
}
int dfn[50005],low[50005],tf[50005],ans[50005];
void tarjan(int x,int f)
{dfn[x]=low[x]=++s;int sum=0;for(int i=ls[x];~i;i=e[i].next){int v=e[i].to;tf[v]=0;if(!dfn[v]){tarjan(v,x);size[x]+=size[v];if(dfn[x]<=low[v]) sum+=size[v];tf[v]=1;}if(v!=f) low[x]=min(low[x],low[v]);}int a1=0,a2=0;for(int i=ls[x];~i;i=e[i].next){int v=e[i].to;if(dfn[x]<=low[v]&&tf[v]) a1+=(sum-size[v])*size[v],a2+=(n-sum-1)*size[v];}ans[x]=a1/2+a2+n-1;return;
}
int main()
{memset(ls,-1,sizeof(ls));for(int i=1;i<=m;i++){int a=read(),b=read();add(a,b);add(b,a);}for(int i=1;i<=n;i++) size[i]=1;tarjan(1,0);for(int i=1;i<=n;i++) printf("%d\n",ans[i]);return 0;
}

JZOJ 3896. 【NOIP2014模拟10.26】战争游戏相关推荐

  1. 3896. 【NOIP2014模拟10.26】战争游戏

    鉴于如此一道恶心的题,作者还花了一个晚上草草学了tarjan. 于是乎,这道题就是道tarjan 具体怎么实现呢?正解上有个什么树形DP,看的我一脸懵逼. 这道题可以运用到tarjan一个高科技的算法 ...

  2. 3896. 【NOIP2014模拟10.26】战争游戏 (Standard IO)

    Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed Limits Description Input Output Sample Inpu ...

  3. 【NOIP2014模拟10.26】战争游戏

    这题就是求割点并计算答案. 上标: #include<cstdio> #include<algorithm> #define N 50010 using namespace s ...

  4. jzoj3058. 【NOIP2012模拟10.26】火炬手

    jzoj3058. [NOIP2012模拟10.26]火炬手 题目 Description Input Output Sample Input Sample Output Hint 分析 做法一 做法 ...

  5. jzoj 3058. 【NOIP2012模拟10.26】火炬手

    Description 全运会就要开始了,笨笨想成为湖南地区的火炬手,经过层层选拔,最终到了最后一关,这一关给出了一个正整数n(N<=100000),求一个最小的正整数m,使得n*m的十进制表示 ...

  6. JZOJ 5930. 【NOIP2018模拟10.26】山花

    Description 3.1 Background 春日的山中灌木茂盛,几乎长到了人的腰间,将山间都铺满了绿色.雨后的灌木之间还带着晨露,总会沾湿走过的行人的衣裳. 林中枝叶茂密,不过树木长的并不紧 ...

  7. JZOJ 3885. 【长郡NOIP2014模拟10.22】搞笑的代码

    Description 在OI界存在着一位传奇选手--QQ,他总是以风格迥异的搞笑代码受世人围观 某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据 while 序列长度< n do { ...

  8. JZOJ 3886. 【长郡NOIP2014模拟10.22】道路维护

    Description 最近徆多人投诉说C国的道路破损程度太大,以至亍无法通行 C国的政府徆重视这件事,但是最近财政有点紧,丌可能将所有的道路都进行维护,所以他们决定按照下述方案进行维护 将C国抽象成 ...

  9. JZOJ 3057. 【NOIP2012模拟10.26】电影票

    .. 分析: 代码: 分析: 我们通过找规律,可以得知答案为: 但我们直接通过高精度计算的话铁定TTT飞 所以我们将式子带入其中,就会发现分母和分子是可以约分的!并且分母可以被约掉 所以我们可以创建两 ...

最新文章

  1. 阿里巴巴副总裁王明强:速卖通向海外输出的跨境零售电商新模式,在全球范围内具备可复制性
  2. 分布式系统——zabbix监控tomcat
  3. RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
  4. 织梦 mail.class.php,详解织梦模板DEDECMS核心类TypeLink.class.php功能分析
  5. ubuntu开启mysql日志记录
  6. 《Python Cookbook 3rd》笔记(2.15):字符串中插入变量
  7. [JavaScript] 正则表达式
  8. 我的WCF之旅(4):WCF中的序列化[下篇]
  9. python - 获取时间戳(10位和13位)
  10. mysql数据库修改结构_Mysql 数据库之修改标的结构
  11. 小鹏汽车面试经验分享
  12. 事业单位资产管理系统破解资产管理难题,实现账、卡、物、地、人相符
  13. POJ 3207 解题报告
  14. mysql多对多关系的理解,由一对多看向多对多
  15. redis课件DIY
  16. 软件开发实训(720科技)水库大坝安全监测监控平台
  17. ERD ONline 为企业数字化转型助力
  18. 红队信息收集自动化工具-水泽(ShuiZe)
  19. 效率爆表:IntelliJ IDEA 高效配置教程来了,收藏起来!
  20. 陌陌引流卖什么产品好?陌陌引流变现的方式

热门文章

  1. 不小心点了计算机一键还原怎么操作,怎么一键还原,详细教您怎样还原电脑系统...
  2. 史上最详细全中文 Cisco 3560交换机使用手册
  3. python爬虫-1.06-MaoyanSpider
  4. 如何进行科学的技术选型
  5. 理解OMNET++仿真原理
  6. 实施顾问试水软件开发,只要1天培训,搭搭云全家桶果真神奇
  7. php hex加密解密方法,php hex加密解密函数使用例子
  8. 关于jQuery方法间调用的返回值问题
  9. c语言求平均数double,编写程序以计算浮点值的平均值
  10. 一度智信:环环相扣,拼多多“普惠”是行动的底色