JZOJ 3896. 【NOIP2014模拟10.26】战争游戏
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】战争游戏相关推荐
- 3896. 【NOIP2014模拟10.26】战争游戏
鉴于如此一道恶心的题,作者还花了一个晚上草草学了tarjan. 于是乎,这道题就是道tarjan 具体怎么实现呢?正解上有个什么树形DP,看的我一脸懵逼. 这道题可以运用到tarjan一个高科技的算法 ...
- 3896. 【NOIP2014模拟10.26】战争游戏 (Standard IO)
Time Limits: 1000 ms Memory Limits: 262144 KB Detailed Limits Description Input Output Sample Inpu ...
- 【NOIP2014模拟10.26】战争游戏
这题就是求割点并计算答案. 上标: #include<cstdio> #include<algorithm> #define N 50010 using namespace s ...
- jzoj3058. 【NOIP2012模拟10.26】火炬手
jzoj3058. [NOIP2012模拟10.26]火炬手 题目 Description Input Output Sample Input Sample Output Hint 分析 做法一 做法 ...
- jzoj 3058. 【NOIP2012模拟10.26】火炬手
Description 全运会就要开始了,笨笨想成为湖南地区的火炬手,经过层层选拔,最终到了最后一关,这一关给出了一个正整数n(N<=100000),求一个最小的正整数m,使得n*m的十进制表示 ...
- JZOJ 5930. 【NOIP2018模拟10.26】山花
Description 3.1 Background 春日的山中灌木茂盛,几乎长到了人的腰间,将山间都铺满了绿色.雨后的灌木之间还带着晨露,总会沾湿走过的行人的衣裳. 林中枝叶茂密,不过树木长的并不紧 ...
- JZOJ 3885. 【长郡NOIP2014模拟10.22】搞笑的代码
Description 在OI界存在着一位传奇选手--QQ,他总是以风格迥异的搞笑代码受世人围观 某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据 while 序列长度< n do { ...
- JZOJ 3886. 【长郡NOIP2014模拟10.22】道路维护
Description 最近徆多人投诉说C国的道路破损程度太大,以至亍无法通行 C国的政府徆重视这件事,但是最近财政有点紧,丌可能将所有的道路都进行维护,所以他们决定按照下述方案进行维护 将C国抽象成 ...
- JZOJ 3057. 【NOIP2012模拟10.26】电影票
.. 分析: 代码: 分析: 我们通过找规律,可以得知答案为: 但我们直接通过高精度计算的话铁定TTT飞 所以我们将式子带入其中,就会发现分母和分子是可以约分的!并且分母可以被约掉 所以我们可以创建两 ...
最新文章
- 阿里巴巴副总裁王明强:速卖通向海外输出的跨境零售电商新模式,在全球范围内具备可复制性
- 分布式系统——zabbix监控tomcat
- RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
- 织梦 mail.class.php,详解织梦模板DEDECMS核心类TypeLink.class.php功能分析
- ubuntu开启mysql日志记录
- 《Python Cookbook 3rd》笔记(2.15):字符串中插入变量
- [JavaScript] 正则表达式
- 我的WCF之旅(4):WCF中的序列化[下篇]
- python - 获取时间戳(10位和13位)
- mysql数据库修改结构_Mysql 数据库之修改标的结构
- 小鹏汽车面试经验分享
- 事业单位资产管理系统破解资产管理难题,实现账、卡、物、地、人相符
- POJ 3207 解题报告
- mysql多对多关系的理解,由一对多看向多对多
- redis课件DIY
- 软件开发实训(720科技)水库大坝安全监测监控平台
- ERD ONline 为企业数字化转型助力
- 红队信息收集自动化工具-水泽(ShuiZe)
- 效率爆表:IntelliJ IDEA 高效配置教程来了,收藏起来!
- 陌陌引流卖什么产品好?陌陌引流变现的方式
热门文章
- 不小心点了计算机一键还原怎么操作,怎么一键还原,详细教您怎样还原电脑系统...
- 史上最详细全中文 Cisco 3560交换机使用手册
- python爬虫-1.06-MaoyanSpider
- 如何进行科学的技术选型
- 理解OMNET++仿真原理
- 实施顾问试水软件开发,只要1天培训,搭搭云全家桶果真神奇
- php hex加密解密方法,php hex加密解密函数使用例子
- 关于jQuery方法间调用的返回值问题
- c语言求平均数double,编写程序以计算浮点值的平均值
- 一度智信:环环相扣,拼多多“普惠”是行动的底色