csu 1804 有向无环图
来源:互联网 发布:科比历年数据统计 编辑:程序博客网 时间:2024/05/22 10:32
题目地址
分析:从复杂度来看,一定不可能是枚举
我是这么想的,对于三个点,假设1->2有a种走法,2->3有b种走法。那么1->3应该有a*b种走法,所以图中父亲节点一定是可以通过儿子节点的权值递推得到的。有了这个想法,那么
我开了val数组,
代码:
/*****************************************************///#pragma comment(linker, "/STACK:1024000000,1024000000")#include <map>#include <set>#include <ctime>#include <stack>#include <queue>#include <cmath>#include <string>#include <vector>#include <cstdio>#include <cctype>#include <cstring>#include <sstream>#include <cstdlib>#include <iostream>#include <algorithm>using namespace std;#define offcin ios::sync_with_stdio(false)#define sigma_size 26#define lson l,m,v<<1#define rson m+1,r,v<<1|1#define slch v<<1#define srch v<<1|1#define sgetmid int m = (l+r)>>1#define LL long long#define ull unsigned long long#define mem(x,v) memset(x,v,sizeof(x))#define lowbit(x) (x&-x)#define bits(a) __builtin_popcount(a)#define mk make_pair#define pb push_back#define fi first#define se secondconst int INF = 0x3f3f3f3f;const LL INFF = 1e18;const double pi = acos(-1.0);const double inf = 1e18;const double eps = 1e-9;const LL mod = 1e9+7;const int maxmat = 10;const ull BASE = 31;/*****************************************************/const int maxn = 1e5 + 5;std::vector<int> G[maxn];int a[maxn], b[maxn];int val[maxn];bool vis[maxn];LL ans;void dfs(int u) { vis[u] = true; val[u] = b[u]; for (int i = 0; i < G[u].size(); i ++) { int v = G[u][i]; if (!vis[v]) dfs(v); val[u] = (val[v] + val[u]) % mod; ans = (ans + (LL)a[u] * val[v] % mod) % mod; }}int main(int argc, char const *argv[]) { int N, M; while (~scanf("%d%d", &N, &M)) { ans = 0; for (int i = 0; i <= N; i ++) G[i].clear(); mem(val, 0); mem(vis, false); mem(a, 0); mem(b, 0); for (int i = 1; i <= N; i ++) scanf("%d%d", a + i, b + i); for (int i = 0; i < M; i ++) { int u, v; scanf("%d%d", &u, &v); G[u].pb(v); } for (int i = 1; i <= N; i ++) if (!vis[i]) dfs(i); cout<<ans<<endl; } return 0;}
1 0
- CSU 1804 有向无环图
- CSU 1804: 有向无环图
- csu 1804 有向无环图
- CSU 1804: 有向无环图 (拓扑排序)
- CSU 1804 有向无环图(图上的dp)
- CSU 1804有向无环图 (拓扑排序dp)
- [CSU 1804 有向无环图] DP+拓扑排序
- CSU-1804-有向无环图-拓扑排序+DP
- CSU 1804 有向无环图 (拓扑排序+乱搞)
- CSU 1804 有向无环图 拓扑序DP
- CSU 1804 有向无环图【湖南省第十二届大学生计算机程序设计竞赛 B题 DAG】
- CSU-1804 有向无环图(拓扑排序+dp)(湖南省第十二届大学生程序设计竞赛)
- CSU 1804 有向无环图 (DP+拓扑排序) 【湖南省第十二届大学生计算机程序设计竞赛 - B】
- 【拓扑】【宽搜】CSU 1084 有向无环图 (2016湖南省第十二届大学生计算机程序设计竞赛)
- [CSU 1803(湖南省赛16)] 有向无环图 (DAG+公式化简)
- DAG有向无环图
- DAG 有向无环图
- 图-有向无环图
- leetcode Submission Details
- 使用java连接hive,并执行hive语句详解
- mysql定义字符为utf-8格式
- hadoop完全分布式安装
- SVN操作心得
- csu 1804 有向无环图
- WebView---学习笔记
- buildroot学习(七)——at91sam9g45软件平台更新
- c语言防止缓冲区数据作为有效字符被读入
- Android7.0 Binder通信(2) 服务进程的注册
- Ubuntu 14.04 解決登錄界面無線循環的方法
- 【Memcached】使用一致性哈希实现分布式存储(二)
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- 学习Eclipse