Portal --> bzoj4011

Solution

​  这题。。看了一眼之后深陷矩阵树定理然后我看了一眼数据范围==

  注意到是有向无环图,DAG有十分多优秀的性质所以,这题需要充分利用这个条件

  首先考虑没有加边的时候,也就是单纯求这个DAG的生成树个数怎么做

​  其实仔细想一下不难得出答案就是各个点(除了\(1\)号点)的入度的乘积

​   

  然后我们看加了一条边之后会发生什么

1、这条边会形成自环:显然答案不变

2、这条边加入后不会形成环:那直接更新一下入度然后重新再算一遍就好了

3、这条边加入后会形成一个环:

​  重头戏

​  正着想其实。。不是特别便于统计,这个时候!正难则反!

​  我们考虑从直接按照DAG的方法算出来的答案中减去那些不合法的方案,那么怎么样的方案才是不合法的呢,仔细思考一下,应该就是满足以下两个条件:

​  (1)选了\((x,y)\)这条边(就是新连的那条)

​  (2)形成了一个环

​  然后因为原来的图是DAG,这个环显然应该是包含\((x,y)\)这条边的,或者更加直观地说,这个环应该是\((x,y)\)这条边和一条从\(y\)到\(x\)的路径组成的

​  那么现在问题就转化成了统计从\(y\)到\(x\)的路径的“方案数”,这里的方案数要打引号是因为。。更准确地说应该是确保选边方案中存在一条\(y\)到\(x\)路径并且包含\((x,y)\)这条边的生成树个数,具体的统计其实就跟普通的DAG路径计数一样的套路,拓扑排序一波

​  我们用\(val[x]\)表示\(y\)到\(x\)路径的“方案数”,初始化就是\(val[y]=\)按照DAG方式算出来的答案,然后每一个点转移时候的贡献应该是\(val[i]/in[i]\),其中\(in[i]\)表示的是在加入\((x,y)\)这条边之后\(i\)点的入度,具体为什么的话是因为。。走到\(i\)的时候,\(i\)的前驱其实已经确定了,所以没有\(in[i]\)种选择

​   

​  代码大概长这个样子

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int N=1e5+10,MOD=1e9+7;
struct xxx{int y,nxt;
}a[N*2];
queue<int> q;
int h[N],in[N],d[N],val[N];
int vis[N];
int n,m,tot,ans,X,Y,ans1;
void add(int x,int y){a[++tot].y=y; a[tot].nxt=h[x]; h[x]=tot;}
void dfs(int x){int u;vis[x]=true;for (int i=h[x];i!=-1;i=a[i].nxt){u=a[i].y;if (vis[u]) continue;dfs(u);}
}int main(){
#ifndef ONLINE_JUDGEfreopen("a.in","r",stdin);
#endifint x,y;scanf("%d%d",&n,&m);scanf("%d%d",&X,&Y);memset(h,-1,sizeof(h));tot=0;for (int i=1;i<=m;++i){scanf("%d%d",&x,&y);add(x,y);++in[y];}ans=1;for (int i=2;i<=n;++i)ans=1LL*ans*in[i]%MOD;if (X==Y){printf("%d\n",ans);return 0;}dfs(Y);if (!vis[X]){++in[Y];ans=1;for (int i=2;i<=n;++i) ans=1LL*ans*in[i]%MOD;printf("%d\n",ans);}else{for (int i=h[Y];i!=-1;i=a[i].nxt)--in[a[i].y];ans1=1;for (int i=2;i<=n;++i) ans1=1LL*ans1*in[i]%MOD;ans=(1LL*ans+ans1)%MOD;printf("%d\n",ans);}
}

转载于:https://www.cnblogs.com/yoyoball/p/9525695.html

【bzoj4011】落忆枫音相关推荐

  1. P3244 [HNOI2015]落忆枫音(DAG上的动态规划问题,朱刘定理,乘法逆元)

    P3244 [HNOI2015]落忆枫音 样例太坑了!竟然和题目描述给的图不一样! 题目描述 给定一张有向无环图,这张图满足一个性质:以点1为根节点,保证至少有一棵有向树,连接所有的节点. 现在向这张 ...

  2. Bzoj4011 [HNOI2015]落忆枫音

    Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 983  Solved: 533 Description 「恒逸,你相信灵魂的存在吗?」 郭恒逸和姚枫 ...

  3. BZOJ4011:[HNOI2015]落忆枫音(DP,拓扑排序)

    Description 「恒逸,你相信灵魂的存在吗?」 郭恒逸和姚枫茜漫步在枫音乡的街道上.望着漫天飞舞的红枫,枫茜突然问出这样一个问题.  「相信吧.不然我们是什么,一团肉吗?要不是有灵魂--我们也 ...

  4. [bzoj4011][DP]落忆枫音

    Description 「恒逸,你相信灵魂的存在吗?」 郭恒逸和姚枫茜漫步在枫音乡的街道上.望着漫天飞舞的红枫,枫茜突然问出 这样一个问题. 「相信吧.不然我们是什么,一团肉吗?要不是有灵魂--我们也 ...

  5. [HNOI2015] 落忆枫音

    题目描述 「恒逸,你相信灵魂的存在吗?」 郭恒逸和姚枫茜漫步在枫音乡的街道上.望着漫天飞舞的红枫,枫茜突然问出这样一个问题. 「相信吧.不然我们是什么,一团肉吗?要不是有灵魂......我们也不可能再 ...

  6. bzoj4011[HNOI2015]落忆枫音

    http://www.lydsy.com/JudgeOnline/problem.php?id=4011 记新加入的边的起点为$x$,终点为$y$ 首先,我们先考虑新加入的边没有构成环的情况,即在原图 ...

  7. luogu3244 bzoj4011 HNOI2015 落忆枫音

    这道题目题面真长,废话一堆. 另外:这大概是我第一道独立做出来的HNOI2011年以后的题目了吧.像我水平这么差的都能做出来,dalao您不妨试一下自己想想? 题目大意:给一个DAG,其中1号点没有入 ...

  8. [HNOI2015]落忆枫音

    题目描述 不妨假设枫叶上有 n个穴位,穴位的编号为 1 ~  n.有若干条有向的脉络连接 着这些穴位.穴位和脉络组成一个有向无环图--称之为脉络图(例如图 1),穴 位的编号使得穴位 1 没有从其他穴 ...

  9. 【题解】 [HNOI2015]落忆枫音 (拓扑排序+dp+容斥原理)

    原题戳我 Solution: (部分复制Navi_Aswon博客) 解释博客中的两个小地方: \[\sum_{\left(S是G中y→x的一条路径的点集\right))}\prod_{2≤j≤n,(j ...

  10. P3244-[HNOI2015]落忆枫音【dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P3244 题目大意 给出一个DAG\text{DAG}DAG,保证111可以到达所有点.然后再加入一条边(之后不一定 ...

最新文章

  1. nova-scheduler详解 openstack-ice版
  2. flutter打开android界面,在已有Android项目中使用Flutter
  3. spring中IOC设计与实现
  4. centos nfs java_CentOS下安装配置NFS并通过Java进行文件上传下载
  5. ToString格式大全
  6. java图像处理001---图像合成_java实现雨滴头像效果_可以放在地图上使用_自动生成雨滴头像
  7. NWT失败反省:做视频的多了,汝眼里怎么只有腾讯
  8. 使用PacketSifter从pcap中筛选有价值的信息
  9. 线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)
  10. 量子笔记:酉矩阵(幺正矩阵)、量子门的可逆性
  11. CodeForces-831A-Unimodal Array (水题)
  12. 信息技术与计算机课程标准,再谈新课程标准下的信息技术教学
  13. 挑战SQL经典题(一)
  14. tomcat 严重: Could not contact localhost:80. Tomcat may not be running.
  15. 第一个OGSI程序出了此错
  16. 初中计算机科目三必背,科目三过关5句口诀,你一定要背完!
  17. 苏大文正计算机基础成绩公布,2019苏大文正学院投档分数线公布:文科319分,理科325分...
  18. tflearn教程_利用 TFLearn 快速搭建经典深度学习模型
  19. 图瓦软件研发的《PDMS三维自动出图软件》第100个版本
  20. bzoj4004[JLOI2015]装备购买

热门文章

  1. 电影《邪不压正》打动我的
  2. 三星typec转接耳机没反应_1MORE最新双旗舰无线降噪耳机评测:国货强于外夷的希望...
  3. 基于朴素贝叶斯算法的新闻分类
  4. 学数据分析到底要不要掌握Linux-Python基础前传(2)
  5. 网页自动加拼音html,HTML5:给汉字加拼音?让我秀给你看
  6. 3种常用的图片压缩方法
  7. 数字后端概念——MIM cell
  8. Latex 公式左对齐
  9. bip动作捕捉_Easy Mocap
  10. 关于网站版权声明(Copyright)的格式和写法