博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ3690:Constellations——题解
阅读量:7261 次
发布时间:2019-06-29

本文共 1456 字,大约阅读时间需要 4 分钟。

题目大意:给一个图和几个子图,判断有多少种子图在原图出现过。

——————————————————————

二维哈希即可,操作看代码,我觉得蛮好看的。

注意这题恶心的时限。

pow预处理能少时间,读入字符用getchar不然会TLE。

用multiset查找然后再一个个erase即可,这样set前后size的差值即是答案。

#include
#include
#include
#include
#include
#include
using namespace std;typedef unsigned long long ll;const int N=1001;const int M=1001;const int P=51;const int Q=51;const ll b=2;const ll w=1e8+7;ll ha0[N][M];ll ha1[P][Q];ll qpow[2][P];inline ll tn(char ch){ if(ch=='0')return 0; return 1;}void init(){ qpow[0][0]=qpow[1][0]=1; for(int i=1;i
>n>>m>>t>>p>>q){ if(n+m+t+p+q==0)break; multiset
app; casenum++; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ char ch=getchar(); while(ch==' '||ch=='\n')ch=getchar(); ha0[i][j]=ha0[i][j-1]*b+tn(ch); } } for(int j=1;j<=m;j++){ for(int i=1;i<=n;i++){ ha0[i][j]+=ha0[i-1][j]*w; } } for(int k=1;k<=t;k++){ for(int i=1;i<=p;i++){ for(int j=1;j<=q;j++){ char ch=getchar(); while(ch==' '||ch=='\n')ch=getchar(); ha1[i][j]=ha1[i][j-1]*b+tn(ch); } } for(int j=1;j<=q;j++){ for(int i=1;i<=p;i++){ ha1[i][j]+=ha1[i-1][j]*w; } } app.insert(ha1[p][q]); } for(int i=p;i<=n;i++){ for(int j=q;j<=m;j++){ int si=i-p,sj=j-q; app.erase(ha0[i][j]-ha0[si][j]*qpow[1][p]-ha0[i][sj]*qpow[0][q]+ha0[si][sj]*qpow[1][p]*qpow[0][q]); } } printf("Case %d: %d\n",casenum,t-(int)app.size()); } return 0;}

 

转载于:https://www.cnblogs.com/luyouqi233/p/8010951.html

你可能感兴趣的文章
241. Different Ways to Add Parentheses
查看>>
前嗅ForeSpider教程:字段的取值与清洗
查看>>
react native 原生模块桥接的简单说明
查看>>
Spring Boot 单元测试二三事
查看>>
C++回声服务器_4-UDP connect版本客户端
查看>>
彻底理解浏览器的缓存机制(http缓存机制)
查看>>
实时编辑
查看>>
哪有什么互联网寒冬?只是你穿的少而已!
查看>>
浅析State-Thread
查看>>
数据科学真的是一份有前途的工作吗?
查看>>
Unity 开源双端框架 ET 中初尝热更新技术
查看>>
leetcode讲解--852. Peak Index in a Mountain Array
查看>>
基于Redis消息队列实现的消息推送
查看>>
如何在一分钟内实现微服务系统下的架构可视化
查看>>
dubbo源码解析(十四)远程通信——Http
查看>>
react16 + typescript + webpack4 + mobx + antd的CMS项目
查看>>
示例Express中路由规则及获取请求参数
查看>>
TCP/IP协议介绍
查看>>
原生Android 侧滑菜单实践(部分)
查看>>
【C++】 13_进阶面向对象 (上)
查看>>