给出一个n*m的矩阵 里面有BJHYN的 五种字母,

求出所有 矩形 满足 四个角的字母 是相同的

我们发现 如果对于任意两行,满足  这两行的 第   i,j,k位置的字母都一样,则 可以得到1*2*3*....n-1个合法矩形

思路:位运算

预处理,把矩阵中为B的字母看作1,其余都是0

对于01矩阵任意两行,看成两个数,a,b  则a&B得到的就是  两行对应位置同时存在 B字母的结果

那么数出a&b 里面有几个1,则这两行形成的合法矩形就是 num*(num-1)/2个

对于任意两行来一次,  求可以求出所有的

同样的方法处理JHYN,

复杂度5*n*m*m  最后一个m是数数a&b里面有几个1的操作

ac 代码:

#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
#include <queue>
#include <map>
#include <bitset>
#include <vector>
using namespace std;int tm[255][255];bitset<255> sb[255];
bitset<255> ss;
int n,m;
long long ans;
void solve(char X);
int main()
{int h;int i,j;int t;cin>>t;while(t--){scanf("%d%d",&n,&m);getchar();for (i=1;i<=n;i++){  for (j=1;j<=m;j++) scanf("%c",&tm[i][j]);  getchar();}ans=0;solve('B');solve('J');solve('H');solve('Y');solve('N'); printf("%lld\n",ans);}return 0;} void solve(char X)
{int i,j;for (i=1;i<=n;i++) sb[i].reset(); for (i=1;i<=n;i++){for (j=1;j<=m;j++){if (tm[i][j]==X)sb[i].set(j); }}for (i=1;i<=n;i++){for (j=i+1;j<=n;j++){ss=sb[i];//     cout<<ss;ss&=sb[j];//        cout<<ss;int num=ss.count();if (num<=1)continue;else{ans+=num*(num-1)/2;}}}}

ZOJ 2975-K - Kinds of Fuwas-暴力+bitset相关推荐

  1. K - Kinds of Fuwas----(2015 summer training #4 (Qualifying))

    K - Kinds of Fuwas 时限:2000MS     内存:65536KB     64位IO格式:%lld & %llu 问题描述 In the year 2008, the 2 ...

  2. zoj 2975 Kinds of Fuwas(数学题)

    转载请注明出处!谢谢! Kinds of Fuwas Description In the year 2008, the 29th Olympic Games will be held in Beij ...

  3. ZOJ 2975 Kinds of Fuwas(暴力)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2975 给出n*m的矩阵,要求算出四个角类型相同的小矩形的数目 使 ...

  4. The 5th Zhejiang Provincial Collegiate Programming Contest------ProblemK:Kinds of Fuwas

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1974 题意:问四个角都有同一个福娃的矩形有多少个. 1 #include< ...

  5. C 简单瞎搞题(牛客练习赛22)(bitset优化dp)

    Bitset优化Dp 题目链接 一般DP做法 显然后面的数是与前面的数字相关的,所以我们有dp数组,dp[i][j]dp[i][j]dp[i][j]选取了jjj个数,iii是否可以被创造出来,如果可以 ...

  6. NOIP 好题推荐(DP+搜索+图论)POJ ZOJ

    NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS)  1090 Chain ->格雷码和二进制码 ...

  7. luogu P4183 Cow at Large P (暴力吊打点分治)(内有时间复杂度证明)

    题面 贝茜被农民们逼进了一个偏僻的农场.农场可视为一棵有N个结点的树,结点分别编号为 1,2,-,N .每个叶子结点都是出入口.开始时,每个出入口都可以放一个农民(也可以不放).每个时刻,贝茜和农民都 ...

  8. 【Codeforces - 769D】k-Interesting Pairs Of Integers(暴力,统计,思维,数学,异或)

    题干: Vasya has the sequence consisting of n integers. Vasya consider the pair of integers x and y k-i ...

  9. LeetCode-402:移除k位数字

    题目描述: 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : ...

最新文章

  1. java运行时_java编译时与运行时概念与实例详解
  2. shiro---注解
  3. 数据格式转换 (三)Office文档转HTML
  4. adaboost代码实现
  5. rust里面的柴油桶有什么用_用了橡木桶的红酒就一定好吗?什么样的酒才适合橡木桶?...
  6. BUMO 3.0原理以及设计.
  7. 密码编码学与网络安全 核心理论知识梳理
  8. Nginx(九):Nginx网页压缩技术
  9. 申请德国农工大学计算机案例,德州农工大学世界排名怎么样?
  10. 计算机考在职研究生有用吗,报考计算机在职研究生有用吗?
  11. Python-Scrapy 获取历史双色球开奖号码
  12. 二面深信服前端,秋招面经分享
  13. GD32F4xx串口收发,DMA+空闲中断
  14. Redis 客户端使用与监控
  15. 求整型矩阵主对角线元素之和
  16. ipad上html语言编辑,在 iPad 上键入和编辑文本的小技巧
  17. 微信小程序上拉刷新下拉加载
  18. 什么是高端的IPv6?和IPv4有什么差别呢?
  19. html5 dpi,关于meta viewport中target-densitydpi属性详解(推荐)_哒哒_前端开发者
  20. java lock park_java并发编程-LockSupport中park与unpark基本使用与原理简单分析

热门文章

  1. 日文配列键盘修改和映射自定义
  2. 05概率论与数理统计笔记 数理统计基础——基于《概率论与数理统计》许忠好
  3. 为什么win10只有一个账户而此电脑C盘“其他人员”却占用空间呢?
  4. XCTF-PWN pwn-200(使用DynELF利用write泄露system地址)
  5. relation-graph实现企业架构图,关系图等(天眼查,企查查等企业架构图等实现)
  6. 数字电路之Verilog红绿灯设计
  7. 软件开发中的CI、CD、CD概念
  8. 教女朋友学会用ESP8266实现wifi杀手——有固件
  9. 云计算、数据中心的现状和未来发展
  10. 增量学习三个场景的理解