ZOJ 2975-K - Kinds of Fuwas-暴力+bitset
给出一个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相关推荐
- 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 ...
- zoj 2975 Kinds of Fuwas(数学题)
转载请注明出处!谢谢! Kinds of Fuwas Description In the year 2008, the 29th Olympic Games will be held in Beij ...
- ZOJ 2975 Kinds of Fuwas(暴力)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2975 给出n*m的矩阵,要求算出四个角类型相同的小矩形的数目 使 ...
- The 5th Zhejiang Provincial Collegiate Programming Contest------ProblemK:Kinds of Fuwas
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1974 题意:问四个角都有同一个福娃的矩形有多少个. 1 #include< ...
- C 简单瞎搞题(牛客练习赛22)(bitset优化dp)
Bitset优化Dp 题目链接 一般DP做法 显然后面的数是与前面的数字相关的,所以我们有dp数组,dp[i][j]dp[i][j]dp[i][j]选取了jjj个数,iii是否可以被创造出来,如果可以 ...
- NOIP 好题推荐(DP+搜索+图论)POJ ZOJ
NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS) 1090 Chain ->格雷码和二进制码 ...
- luogu P4183 Cow at Large P (暴力吊打点分治)(内有时间复杂度证明)
题面 贝茜被农民们逼进了一个偏僻的农场.农场可视为一棵有N个结点的树,结点分别编号为 1,2,-,N .每个叶子结点都是出入口.开始时,每个出入口都可以放一个农民(也可以不放).每个时刻,贝茜和农民都 ...
- 【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 ...
- LeetCode-402:移除k位数字
题目描述: 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : ...
最新文章
- java运行时_java编译时与运行时概念与实例详解
- shiro---注解
- 数据格式转换 (三)Office文档转HTML
- adaboost代码实现
- rust里面的柴油桶有什么用_用了橡木桶的红酒就一定好吗?什么样的酒才适合橡木桶?...
- BUMO 3.0原理以及设计.
- 密码编码学与网络安全 核心理论知识梳理
- Nginx(九):Nginx网页压缩技术
- 申请德国农工大学计算机案例,德州农工大学世界排名怎么样?
- 计算机考在职研究生有用吗,报考计算机在职研究生有用吗?
- Python-Scrapy 获取历史双色球开奖号码
- 二面深信服前端,秋招面经分享
- GD32F4xx串口收发,DMA+空闲中断
- Redis 客户端使用与监控
- 求整型矩阵主对角线元素之和
- ipad上html语言编辑,在 iPad 上键入和编辑文本的小技巧
- 微信小程序上拉刷新下拉加载
- 什么是高端的IPv6?和IPv4有什么差别呢?
- html5 dpi,关于meta viewport中target-densitydpi属性详解(推荐)_哒哒_前端开发者
- java lock park_java并发编程-LockSupport中park与unpark基本使用与原理简单分析
热门文章
- 日文配列键盘修改和映射自定义
- 05概率论与数理统计笔记 数理统计基础——基于《概率论与数理统计》许忠好
- 为什么win10只有一个账户而此电脑C盘“其他人员”却占用空间呢?
- XCTF-PWN pwn-200(使用DynELF利用write泄露system地址)
- relation-graph实现企业架构图,关系图等(天眼查,企查查等企业架构图等实现)
- 数字电路之Verilog红绿灯设计
- 软件开发中的CI、CD、CD概念
- 教女朋友学会用ESP8266实现wifi杀手——有固件
- 云计算、数据中心的现状和未来发展
- 增量学习三个场景的理解