10.23刷题记录
来源:互联网 发布:php 开源社区系统 编辑:程序博客网 时间:2024/05/19 22:24
这几天状态一天比一天差……我究竟怎么了
今天撒谎说没作业 做了一个晚上一道题也没做出来。
抄题解是不对的啊。
今天通过的是洛谷上面的01迷宫(一个很简单的bfs+记忆化)以及子矩阵 NOIP2014普及组T4(大概是dp+搜索)
余数求和的原理仍然没看懂。
明明回家的时候状态还不错的啊
明天绝对不能这样了。
#include<iostream>//01迷宫#include<cstdio>using namespace std;int n,m;bool map[1005][10005];char aa[100005];int v[10005][10005];int sum[10000101];int q[5000001][2];int t=0;int dx[4]={-1,0,0,1};int dy[4]={0,-1,1,0};void bfs(int x,int y){ if(v[x][y]!=0) { printf("%d\n",sum[v[x][y]]); return; } t++; int head=0,tail=1,s=1; q[0][0]=x; q[0][1]=y; v[x][y]=t; while(head<tail) { int xx=q[head][0],yy=q[head][1]; for(int i=0;i<4;i++) { int xxx=xx+dx[i],yyy=yy+dy[i]; if(xxx>=1 && xxx<=n && yyy>=1 && yyy<=n) { if(map[xxx][yyy]!=map[xx][yy] && v[xxx][yyy]==0) { q[tail][0]=xxx; q[tail][1]=yyy; v[xxx][yyy]=t; s++; tail++; } } } head++; } printf("%d\n",s); sum[t]=s;}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { scanf("%s",aa+1); for(int j=1;j<=n;j++) { if(aa[j]=='1') map[i][j]=1; if(aa[j]=='0') map[i][j]=0; } } int a,b; for(int i=1;i<=m;i++) { scanf("%d%d",&a,&b); bfs(a,b); } return 0;}
子矩阵代码先不贴因为我没看懂。
我NOIP要爆炸了。
废物。
阅读全文
0 0
- 10.23刷题记录
- OI刷题记录
- OI刷题记录~
- leetcode刷题记录
- 刷题记录
- 6.22刷题记录
- 7.26-刷题记录
- hdu 刷题记录
- 面试刷题记录
- 每日刷题记录
- leetcode刷题记录
- hdu刷题记录
- LightOJ刷题记录
- leetcode刷题记录
- 刷题记录
- leetcode 刷题记录
- 刷题记录
- leetcode刷题记录
- java 中Map 常用的子类 之 TreeMap
- 线上服务内存OOM问题定位三板斧
- 一只爬虫带你看世界【1】
- 文件的读写代码块(二)
- 习题三3.2
- 10.23刷题记录
- 100019. 【NOI2017模拟6.26】A
- Java反射机制
- 为什么在java中不能创建泛型数组
- html上传文件
- 【安全牛学习笔记】CSRF跨站请求伪造攻击漏洞的原理及解决办法
- LeetCode Add Two Numbers
- UVa 133 The Dole Queue
- ROS小白碰壁记之4 读入地图