您当前的位置: 首页 >  ar

HeartFireY

暂无认证

  • 4浏览

    0关注

    334博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[GYM101173K] CERC 16 A.Appearance Analysis map哈希+暴力判断

HeartFireY 发布时间:2021-10-27 22:42:42 ,浏览量:4

题目大意:给定一个图片,要求你找出上面窗户的种类,每个窗户上都被染上了不同性状的颜色。其中有一些窗户可能会被旋转,旋转之后的窗户和原窗户等效。求有多少种不同的窗户。

思路分析:一开始考虑字符矩阵状态数组,储存一下横行和纵行的计数状态,然后开个 m a p map map映射一下。但是发现这样无法确切的表示状态;然后又考虑哈希,发现不是很好写。于是采用队友的思路:直接将每个窗户旋转四次合成一个字符串,然后对字符串打一个 m a p map map,每次旋转之后判断是否存在先前的状态。不存在就插入一个。最后输出 m a p map map的大小即可。

#include 
using namespace std;

const int N = 200;
char mp[N][N];

map mpp;

inline void findwh(int &w, int &h, int r, int c){
    bool flag1 = false, flag2 = false;
    int lhcx, lhcy, rdcx, rdcy;
    for(int i = 1; i  r >> c;
    for(int i = 1; i  mp[i][j];
    int w = 1, h = 1; //!w--横向宽度
    findwh(h, w, r, c);
    if(w == c && h == r) return cout             
关注
打赏
1662600635
查看更多评论
0.0380s