【CF1394B】Boboniu Walks on Graph【图论】【集合哈希】
题意:给定nnn个点mmm张图的有向图,有1∼m1\sim m1∼m互不相同每个点出度不超过kkk。对于一个 kkk元组cic_ici,图中的每个点uuu只保留第cdeguc_{deg_u}cdegu小的边。求有多少种ccc使得在保留下来的图中每个点沿着出边一直往下走可以走回自己。
n,m≤2×105,k≤9n,m\leq 2\times 10^5,k\leq 9n,m≤2×105,k≤9
显然直接k!k!k!暴力枚举方案,问题在于如何快速判断。
不难看出题中的条件等价于每个点入度恰好为111
也相当于每条边的终点恰好遍历1∼n1 \sim n1∼n
写个哈希就完了
复杂度O(n+k!)O(n+k!)O(n+k!)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cctype>
#include <vector>
#include <utility>
#include <cstdlib>
#include <ctime>
#define MAXN 200005
using namespace std;
int u[MAXN],v[MAXN],n,m,k;
typedef pair<int,int> pi;
vector<int> e[MAXN];
vector<pi> lis[MAXN];
inline int id(const pi& p){return p.first*(p.first-1)/2+p.second;}
int ans[10],key[MAXN],val[10][10],rt,cnt;
void check()
{int t=0;for (int i=1;i<=k;i++) t+=val[i][ans[i]];if (t==rt) ++cnt;
}
void dfs(int i)
{if (i>k) return check();for (ans[i]=1;ans[i]<=i;ans[i]++) dfs(i+1);
}
int main()
{scanf("%d%d%d",&n,&m,&k);for (int i=1;i<=n;i++) rt+=(key[i]=rand());for (int i=1;i<=m;i++){int x,y,w;scanf("%d%d%d",&x,&y,&w);u[w]=x,v[w]=y;}for (int i=1;i<=m;i++) e[u[i]].push_back(v[i]);for (int u=1;u<=n;u++)for (int i=0;i<(int)e[u].size();i++)val[e[u].size()][i+1]+=key[e[u][i]];dfs(1);cout<<cnt;return 0;
}
【CF1394B】Boboniu Walks on Graph【图论】【集合哈希】相关推荐
- AtCoder AGC043C Giant Graph (图论、SG函数、FWT)
题目链接 https://atcoder.jp/contests/agc043/tasks/agc043_c 题解 场上感觉没啥思路就放弃了,场下想了十几分钟发现是水题,血亏...(只能怪自己计数水平 ...
- AtCoder AGC031F Walk on Graph (图论、数论)
题目链接 https://atcoder.jp/contests/agc031/tasks/agc031_f 题解 这题真是太神仙了-- 首先我们转化一下问题,倒着来做,一开始有一个数\(0\), 每 ...
- Java集合—哈希(hash)表
原文作者: 原文地址: 1.哈希表的定义 这里先说一下哈希(hash)表的定义:哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方,说起来可能感觉有点复杂,我 ...
- HDU题目分类大全【大集合】
基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.105 ...
- Graph Convolutional Neural Networks for Web-Scale Recommender Systems(用于Web级推荐系统的图形卷积神经网络)
Graph Convolutional Neural Networks for Web-Scale Recommender Systems 用于Web级推荐系统的图形卷积神经网络 ABSTRACT R ...
- NetworkX系列教程(1)-创建graph
小书匠Graph图论 研究中经常涉及到图论的相关知识,而且常常面对某些术语时,根本不知道在说什么.前不久接触了NetworkX这个graph处理工具,发现这个工具已经解决绝大部分的图论问题(也许只是我 ...
- NetworkX系列教程(2)-graph生成器
小书匠Graph图论 本节主要讲解如何快速使用内置的方法生成graph,官方的文档在这里,里面包含了networkX的所有graph生成器,下面的内容只是我节选的内容,并将graph画出来而已. 声明 ...
- Graph Neural Network(GraphSAGE,GAT)
Graph 图论问题.如生成树算法,最短路径算法,BFS,DFS. 概率图模型.将条件概率表达为图结构,如马尔可夫链,条件随机场. 图神经网络.结合深度学习,如博主已经整理过的Graph Embedd ...
- 图论——networkx——最短路径算法篇
NetworkX系列教程(10)-算法之一:最短路径问题 小书匠Graph图论 重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的 ...
最新文章
- Linux内核网络栈1.2.13-tcp.c概述
- ICLR 2022 || 通过邻域/度/初始特征重建的等图自编码器
- oracle里的ols机制,Oracle ASM的AU(Allocation units)分配
- 裁剪图像周围空白区域_零基础PS纠正倾斜的图像效果
- 152. 城市游戏【单调栈】
- 7.5 obtaining database metadata
- 【HTML+CSS网页设计与布局 从入门到精通】第12章-CSS
- 泛化性的危机!LeCun发文质疑:测试集和训练集永远没关系...
- 数据库的基础知识总结
- 七天学完Vue之第二天学习笔记(自定指令,过滤器,生命周期函数,动画效果)
- 五分钟学会PowerDesigner创建概念数据模型
- 使用功能点估算模型评估软件测试的工作量
- 教你炒股票29:转折的力度与级别
- 二值图像分析:OpenCV中的二值化阈值操作
- 黄鱼车今后会少 下沙公交小巴向出租车转型
- linux服务器下如何显示中文的图片,Linux服务器中文显示问题
- 7-5 字符串对称 (10 分)
- 高中数学必考知识点:二元一次不等式(组)及简单的线性规划问题
- 红外成像单筒望远镜TFN TD7产品 型号评测
- 数据库关系代数中除运算讲解和SQL语句的实现