易讯企业建站系统,百度优化 几个网站内容一样,怎么看网站的访问量,oa办公系统手机版下载sj登录—专业IT笔试面试备考平台_牛客网
这是dfs的一道基础题#xff0c;可惜我还是没有学会
但是有时候错误也是一种成长方式
我的代码E题带路
#includebits/stdc.h
//#define int long long
using namespace std;const long long MAX1e310;
//lon…sj登录—专业IT笔试面试备考平台_牛客网
这是dfs的一道基础题可惜我还是没有学会
但是有时候错误也是一种成长方式
我的代码E题带路
#includebits/stdc.h
//#define int long long
using namespace std;const long long MAX1e310;
//long a[MAX],bian[MAX],q[MAX],n,m,minnMAX;//res0;
int res0,cnt0,n,m;
int a[MAX][MAX];
bool vis[MAX][MAX];
int dis[4][4]{{-1,-1},{1,1},{0,1},{0,-1}};
void check(int x,int y){int dx,dy;memset(vis,0,sizeof(vis));if(vis[x][y]0){if(a[x][y]1){res;vis[x][y]1;return ;}}//keyint fla0;for(int ix;xn;i){if(a[x][y]1){fla1;}}for(int j1;jm;j){if(a[x][y]1){fla1;}}if(fla0){res0;}while(y0xn)check(x1,y);//upwhile(x0ym)check(x-1,y);//downwhile(y0xn)check(x,y-1);//lwhile(x0ym)check(x,y1);//r
}
int main(){std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n,m;cinnm;//int temx,temy;for(int i1;in;i){for(int j1;jm;j){char c;cinc;if(c.){a[i][j]1;//temxi;temyj;}}}for(int i1;in;i){for(int j1;jm;j){if(a[i][j]1){check( i, j);resmax(res,-1); } }}coutres;
}
当时写着写着本来是比较想写dfs的但是我自己不太熟练所以还是写了一个其他的方式但是在那个阻隔那里困扰了我好久不知道如何去跳到一个新的地方解决这个问题然后我想用到防火墙一样的东西看看是否有一排或者是一行全是0的数嘛多练还是要多练的其次是我不太能熟练使用我的爆步并结合我的吸掌来使用。
正确代码使用dfs深度优先搜索
#includebits/stdc.h
using namespace std;
#define int long long
int disx[4]{-1,1,0,0},disy[4]{0,0,1,-1};
int st[1010][1010],res;
string s[1001];int n,m;
void dfs(int x,int y,int ans){//int xx,yy;resmax(res,ans);for(int i0;i4;i){int xxdisx[i]x,yydisy[i]y;if(xx1||xxn||yy1||yym||s[xx][yy]#||st[xx][yy]) continue;st[xx][yy]1;dfs(xx,yy,ans1);st[xx][yy]0;}
}
signed main(){cinnm;for(int i1;in;i){string x;cinx;x x;//string x;xs;s[i]x;}for(int i 1; i n; i ){for(int j 1; j m; j ){if(s[i][j] .){st[i][j] 1;dfs(i, j, 1);st[i][j] 0;}}}cout res \n;return 0;
}
在这里遇到一个边界判断语句是判断上下左右是否有”.“的一个语句也就是所谓的围墙方便数数。这里也是我的能力一大不足之处好好学习一下
K题质量检测登录—专业IT笔试面试备考平台_牛客网
#includebits/stdc.h
//#define int long long
using namespace std;
const long long MAX1e610;
long a[MAX],bian[MAX],q[MAX],n,m,minnMAX;//res0;
int main(){cinnm;for(int i1;in;i){cina[i];}/*for(int j1;jm;j){minnmin(minn,a[j]);}*///printf(%d\n,minn);int um,o1;for(;un;){minnMAX;for(int io;iu;i){minnmin(minn,a[i]);}printf(%d\n,minn);u1;o1;}/*for(int i1;in-m1;i){printf(%d\n,q[im-1]);}*/
}
在这里我虽然知道会运行超时时间0nm但是自己也没有想到什么好的方式来解决这个问题今天了解到了ST表什么时候去深入去了解一下说这个方式可以大大解决时间复杂度的关系了解到http://t.csdn.cn/44l0W还有就是那个log2算法我也不知道如何解决的本蒟蒻
#include bits/stdc.husing namespace std;
using i64 long long;template class T
struct SparseTable {int n;vectorvectorT a;SparseTable(const vectorT init) : n(init.size()) {int lg __lg(n);a.assign(lg 1, vectorT(n));a[0] init;for (int i 1; i lg; i) {for (int j 0; j n - (1 i); j) {a[i][j] min(a[i - 1][j], a[i - 1][(1 (i - 1)) j]);}} }T get(int l, int r) {// [l, r)int lg __lg(r - l);return min(a[lg][l], a[lg][r - (1 lg)]);}
};int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n, m;cin n m;vectorint a(n);for (int i 0; i n; i) {cin a[i];}SparseTableint mn(a);for (int i 0; i m n; i) {cout mn.get(i, i m) \n;}return 0;
}
说ST表也是优化了时间复杂度的关系其中还有一个模板之类的找时间好好看看0nlog2m
J题登录—专业IT笔试面试备考平台_牛客网
我的dabian
#includebits/stdc.h
//#define int long long
using namespace std;const long long MAX1e610;
//long a[MAX],bian[MAX],q[MAX],n,m,minnMAX;//res0;
int res0,cnt0,n,m;
void check(int x){}
int main(){std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cinnm;for(int i1;in-1;i){res0;if(im){res;}else if(im){res0;if(im){res1;}else {res(i-m);resres1;}}cntmax(cnt,res);}coutcnt;
}
再看一下大佬的真是满眼的羡慕啊写得真好我好喜欢真牛逼
#includebits/stdc.h
using namespace std;
const int MAXN1e610;
int num[MAXN],ans;
int n,k,goal;
int vis[MAXN];
void dfs(int now,int step)
{int a(now1)%n;int b(nowk)%n;if(num[a]step) {num[a]step;dfs(a,step1);}if(num[b]step) {num[b]step;dfs(b,step1); }}
int main()
{cinnk;for (int i1;in;i){num[i]MAXN;}dfs(0,1);for (int i1;in;i){ansmax(ans,num[i]);}coutansendl;return 0;
}
D题签到了登录—专业IT笔试面试备考平台_牛客网
#includebits/stdc.h
#define int long long
using namespace std;
const int MAX1000000;
int a[MAX];
signed main(){int n,m;cinnm;for(int i1;in;i){cina[i];}int flag0;for(int i1;im;i){int x,y,z;cinxyz;for(int jy;jz;j){a[j]a[j]-x;if(a[j]0){printf(-1\n);printf(%d,i);flag1;return 0;}}}if(flag0){printf(0);}
}
经常感觉就是签到了不过就是重在参与嘛蒟蒻成长总不会一帆风顺的