• 题解

    • $a$和$b$是好*友说明除了这两个人以外的邻接集合相同;
    • 做两次$hash$,分别都处理和$a$相邻的点排序$hash$,①$a$要算进$a$的相邻集合,②$a$不算进;
    • 当两个人不是好*友,一定不会统计,当是且两个人不相邻,会仅被②统计,当是且相邻会仅被①统计;
    • 枚举所有的$hash$值统计答案;
    • %了$Claris$后学会了对每个点随机生成一个较大值,异或起来$hash$的方法
    • 这样用于集合$hash$不用排序,并且删除一个元素直接异或即可
    •  #include<cstdio>
      #include<map>
      #include<iostream>
      #include<vector>
      #include<algorithm>
      #define ull unsigned long long
      using namespace std;
      const int N=;
      int n,m;
      vector<int>s[N];
      map<ull,int>mp;
      map<ull,int>::iterator it;
      int main(){
      freopen("bzoj4264.in","r",stdin);
      freopen("bzoj4264.out","w",stdout);
      scanf("%d%d",&n,&m);
      for(int i=,x,y;i<=m;i++){
      scanf("%d%d",&x,&y);
      s[x].push_back(y);
      s[y].push_back(x);
      }
      ull ans=;
      for(int i=;i<=n;i++){
      sort(s[i].begin(),s[i].end());
      unique(s[i].begin(),s[i].end());
      ull x=;
      for(int j=;j<(int)s[i].size();j++){
      x = x * (ull) + s[i][j];
      }
      mp[x]++;
      }
      for(it = mp.begin();it!=mp.end();it++){
      ans += (ull)it -> second * (it -> second - ) / ;
      }
      mp.clear();
      for(int i=;i<=n;i++){
      s[i].push_back(i);
      sort(s[i].begin(),s[i].end());
      unique(s[i].begin(),s[i].end());
      ull x=;
      for(int j=;j<(int)s[i].size();j++){
      x = x * (ull) + s[i][j];
      }
      mp[x]++;
      }
      for(it = mp.begin();it!=mp.end();it++){
      ans += (ull)it -> second * (it -> second - ) / ;
      }
      cout << ans << endl;
      return ;
      }

      bzoj4264

【bzoj4264】小C找朋友的更多相关文章

  1. bzoj4264: 小C找朋友

    hash大法好 #include <iostream> #include <cstdio> #include <cstring> #include <cmat ...

  2. 「bzoj4264 小C找朋友」

    权限题 就是一个集合\(hash\) 集合\(hash\)可以用于判断两个集合是否相等,具体做法就是给每个随机一个值,之后异或起来就是可以了 这个题就是这样,处理出每个点直接相连的点集的\(hash\ ...

  3. 【BZOJ4264】小C找朋友 随机化

    [BZOJ4264]小C找朋友 Description 幼儿园里有N个小C,两个小C之间可能是朋友也可能不是.所有小C之间的朋友关系构成了一个无向图,这个无向图中有M条边. 园长ATM发现对于两个(不 ...

  4. 刷题总结——小c找朋友(bzoj4264 集合hash)

    题目: Description 幼儿园里有N个小C,两个小C之间可能是朋友也可能不是.所有小C之间的朋友关系构成了一个无向图,这个无向图中有M条边. 园长ATM发现对于两个(不同的)小Ci和j,如果其 ...

  5. BZOJ 4264 小C找朋友 哈希+脑子

    好吧我觉得是脑子,别人觉得是套路$qwq$ 这道题相当于是求除了$u,v$两点互相连接,所连的点相同的点对$(u,v)$ 我们首先每个点一个随机权值,对于$u$点记为$w[u]$,然后记与$u$点相连 ...

  6. BZOJ 4264 小c找朋友 - hash

    传送门 题目大意: 给定一张无向图,求满足以下条件的点对 (x,y) 数目:对任意点 z (z!=x,y),边 (x,z) 和 (y,z) 同时存在或同时不存在. 题目分析: 首先要分析的出如果xy满 ...

  7. hunnu--11548--找啊找啊找朋友

    找啊找啊找朋友 Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 14,  ...

  8. 51nod 1463 找朋友 (扫描线+线段树)

    1463 找朋友  基准时间限制:1.5 秒 空间限制:262144 KB 分值: 80 难度:5级算法题  收藏  关注 给定: 两个长度为n的数列A .B 一个有m个元素的集合K 询问Q次 每次询 ...

  9. Java程序设计——反转字符串 & 找朋友 & 计算int型二进制1的个数 & 情报加密 & 计算日期 & 求近似数 & 输出较小数(练习1)

    作为刚刚入门Java的选手,其实C++的功底起到了很大的作用.但是,Java之于C++最大的不同,我个人认为,是其类的多样性.才入门的我,写着老师布置的简单的面对过程的题,如果是C++,可以算是简单了 ...

随机推荐

  1. 切换nPar或vPar的启动模式

    在EFI Shell中执行vparconfig即可随意切换vpar和npar模式 该命令在\EFI\HPUX目录下 vparconfig        显示当前的模式 vparconfig reboo ...

  2. sqli-labs学习笔记 DAY5

    DAY 5 sqli-labs lesson 26a 闭合符号为单引号和括号,并且不回显错误,如果服务器是Linux,尝试%a0代替空格,这里尝试使用布尔型 数据库名长度:?id=1')&&a ...

  3. Python-opencv摄像头图像捕获

    实例一 (灰色调度) #!/usr/bin/env python # _*_ coding:utf-8 _*_ import cv2 as cv import numpy as np capture ...

  4. SDWebImage 错误汇总

    1.  [UIImageView sd_setImageWithURL:placeholderImage:]: unrecognized selector sent to instance 打包静态库 ...

  5. DebuggerVisualizer时,序列化引出的问题。

    实现如下功能:http://www.cnblogs.com/devil0153/archive/2010/09/01/Visual-Studio-Custom-Debugger.html#288924 ...

  6. IDEA2017.3.4破解方式及lombok图文配置详解

    下载jetbrainsCrack-2.7-release-str.jar包 下载地址: https://files.cnblogs.com/files/xifenglou/JetBrains.zip ...

  7. maven实战读书笔记(一)

    环境变量设置 MAVEN_HOME:G:\maven-3.2\apache-maven-3.2.5 Path: G:\maven-3.2\apache-maven-3.2.5\bin 其实正确的设置应 ...

  8. centos下配置gitosis服务器遇到的困难

    这篇博客主要讲的是在centos下配置gitosis遇到的问题. 背景:centos7.2 64 :gitosis2.0 1.困难1 1)产生的问题及原因.gitosis没有安装成功,没有出现fini ...

  9. (2016.2.2)1001.A+B Format (20)解题思路

    https://github.com/UNWILL2LOSE/object-oriented 解题思路 目标: *首先运算要求实现输入2个数后,输出类似于银行的支票上的带分隔符规则的数字. 代码实现思 ...

  10. 项目Beta冲刺(团队)第三天

    1.昨天的困难 记住密码打勾之后点击登录记住密码这四个字会变成省略号 点赞点击以后本应该呈现的爱心形状变成了方块 2.今天解决的进度 成员 进度 陈家权 私信模块探索ing,回复详情界面设计 赖晓连 ...