题意

给你一个竞赛图,求其中3,4,5元环的个数。
n<=2000

分析

  • 3,4元环都很简单。现在来看看这个五元环
  • 可以先画几个五元环看看。我拿到这个题有两种思路:像无向图那样按度数算复杂度,或者用bitset进行一些加速。前者很快被我毙掉了,有向图和无向图并不是一回事。
  • 竞赛图是本题的一个重要条件。不应该当成稠密的有向图来考虑。
  • 尝试直接计算5元环个数无果,按剧本应该进行一些容斥。
  • 不如看看五元非环的个数是否好计算。
  • 注意到一个五元非环等价于存在入度为2的点,进一步可以发现最多有两个入度=2的点。而且情况简单,无论个数是1还是2均只存在一种形态。
  • 于是,先计算出每个五元环或非环内所有入度为2的点数之和。
  • 此时,第二类情况被我们计算了两次。并且第二类情况的个数可以通过O(n3/w)O(n^3/w)O(n3/w)的操作加上一些非常简单的讨论算出来。
  • 有一个要注意的地方就是,你所选的五元环是否有顺逆时针,计数时要上下意义一致。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e3 + 10;
int e[N][N];
ll n, k;
bitset<N> out[N], in[N];
char s[1000010];
int a[N];
ll ans;
int main() {freopen("deathstar.in", "r", stdin);// freopen("deathstar.out", "w", stdout);cin >> n >> k;scanf("%s",s+1);for(int i = 1, z = strlen(s + 1), x = 1, y = 2; i <= z; i++) {int v = s[i] >= 'A' ? 10 + s[i] - 'A' : s[i] - '0';for(int j = 3; ~j; j--) {e[x][y] = (v & (1 << j)) != 0;e[y][x] = !e[x][y];if (y++ == n) x++, y = x + 1;}}for(int x = 1; x <= n; x++) {for(int y = 1; y <= n; y++) if (e[x][y]) {in[y][x] = 1;out[x][y] = 1;}}if (k == 3) {for(int i = 1; i <= n; i++) {for(int j = 1; j <= n; j++) if (e[i][j]) {ans += (in[i] & out[j]).count();}}ans /= 3;} else if (k == 4) {for(int i = 1; i <= n; i++) {for(int j = i + 1; j <= n; j++) {ans += (ll)(in[i] & out[j]).count() * (out[i] & in[j]).count();}}ans /= 2;} else {ans = n * (n - 1) * (n - 2) * (n - 3) * (n - 4) / 10;for(int i = 1; i <= n; i++) {ll v = in[i].count();ans -= v * (v - 1) / 2 * (n - 3) * (n - 4);}ll sum = 0;for(int i = 1; i <= n; i++) {for(int j = i + 1; j <= n; j++) {ll z = (in[i] & in[j]).count();ans += z * (z - 1) * (in[j].count() - e[i][j] - 2);ans += z * (in[i].count() - e[j][i] - z) * (in[j].count() - e[i][j] - 1);}}}cout << ans << endl;
}

jzoj6495 死星 (竞赛图五元环)相关推荐

  1. 概率模型分子动力学模拟五元环吡咯C4H5N

    吡咯是一种非常重要的化学物质,特别是这种物质对人来说有一种果香.吡咯中有两个双键,整个吡咯环是在一个平面上,应该是一种高度对称的结构,根据这种结构用神经网络反向传导方法制作了吡咯的模型 经过多次试验这 ...

  2. 【IoT】产品经理进阶之道:五元方法论

    首先从个人经历的四个阶段入手,谈谈为什么要用势道法术器五元论来建立产品思维? 做产品一般至少需要经历四个阶段,分别是工具人阶段.套路阶段.流程阶段和方法论阶段. 分别对应五元论中的器.术.法.道,对于 ...

  3. 模拟3个人排除买票,每人买1张票。售货员只有1张五元的钱,电影票5元一张

    解决线程同步问题 模拟3个人排除买票,每人买1张票.售货员只有1张五元的钱,电影票5元一张,王大拿拿一张二十元的人民币排在谢大脚前面买票,谢大脚拿1张十元的人民币排在在赵四的前面买票,赵四拿1张五元的 ...

  4. 【学习笔记】无向图、有向图的三元环、四元环计数问题(根号分支+bitset)

    三元环计数和四元环计数问题 无向图三元环计数问题 根号分治 bitset 无向图四元环计数问题 有向图三四元环计数问题 无向图三元环计数问题 根号分治 记 di:id_i:idi​:i 在原图中的度数 ...

  5. 三元环计数四元环计数

    三元环计数 问题 给出一张n个点m条边的无向图,问图中有多少个三元组{ u , v , w } ,满足图中存在 { (u,v) , (v,w) , (w,u) } 三条边. 求解 Step1 定向 将 ...

  6. 1956年五元钱币市值多少?

    1956年5元人民币隶属于第二套人民币,不少人连见都没见过,你就说它的存世量能有多少? 所以它的价值一定会很高,第二套人民币有三元的你见过吗?也没有,现在第二套人民币可以说价值一路攀升,只要你有一张第 ...

  7. 要求用 100 元买 100 只鸡,其中公鸡五元一只,母鸡三元一只,小鸡 1 元三只,规定每种至少买一 只

    要求用 100 元买 100 只鸡,其中公鸡五元一只,母鸡三元一只,小鸡 1 元三只,规定每种至少买一 只 public static void main(String[] args) {for(in ...

  8. 小明拿了一百块钱买了三块钱的东西,老板找他97块钱, 请问,老板有多少种找法(1元,五元,十元,20元,50元)

    public class Test08{ /** 小明拿了一百块钱买了三块钱的东西,老板找他97块钱,请问,老板有多少种找法(1元,五元,十元,20元,50元)*/public static void ...

  9. 计算钱币(编写程序,读取用户输入的代表总金额的double值,打印表示该金额所需的最少纸币张数和硬币个数,打印从最大金额开始。纸币的种类有十元、五元、一元,硬币的种类有五角、一角、贰分、壹分。)

    法1(自己的笨方法,顺着往下想即可) import java.util.*; public class Main{public static void main(){Scanner reader = ...

  10. y7000p 2020 vbios_2020年冬季千元环300公里上笼验资明细-长沙市南湖赛鸽俱乐部

    2020年冬季千元环300公里上笼验资明细 序号 鸽棚号 鸽 主 名 称 足 环 号 码 1 000001 吴军 2020-18-0041037 2 000001 吴军 2020-18-0041038 ...

最新文章

  1. Get/POST方法提交的长度限制
  2. Web API应用架构设计分析(1)
  3. 皮一皮:论家庭地位...
  4. 如何通过三视图判断立方体个数_如何通过接触角判断疏水性?疏水性与亲水性的区别...
  5. 2021HDU多校9 - 7073 Integers Have Friends 2.0(随机数)
  6. Matlab在坐标点上按顺序标序号
  7. react(82)--方法写在effects里面
  8. 【openMV与机器视觉】四旋翼飞行控制背景下的PID控制与摄像头算法简介
  9. bzoj3214 [Zjoi2013]丽洁体 dp
  10. 持久内存开发套件(Persistent Memory Development Kit-PMDK) - pmem.io: PMDK
  11. opencv-api resize
  12. html jsf ajax blur,是否可以使用JSF ajax更新非JSF组件(纯HTML)?
  13. 原来数据库里的单引号是这么加进去的
  14. php 过滤掉多维数组空值
  15. lighttpd,nginx,apache的性能负载比较
  16. java visualvm 内存泄露_如何使用VisualVM检测Java内存泄漏
  17. 智能玩具小风扇制作教程
  18. VMWare station 14密钥
  19. 绕过360实现lsass转储
  20. Unity鼠标拖拽旋转拉远拉近场景

热门文章

  1. 幻幕广告上线,沉浸式体验塑造大片即视感
  2. 更适合运动的耳机,设计时尚轻巧好用,南卡Runner CC3上手
  3. 创建动态的XML数据
  4. 保龄球计分c语言,保龄球的好处、起源、计分规则、常用技法
  5. 磁盘 I/O 和网络
  6. 实习僧招聘网站信息采集
  7. 《一个人的朝圣》的读后感作文3100字
  8. Ehcache配置详解及CacheManager使用
  9. 虚拟机操作工具--Xmanager5 下载/安装/使用
  10. 浅谈混迹力扣和codeforces上的几个月