???

P1123 取数游戏

@[shooting__star](/user/955954) 你咋老做DFS啊/kk
by query_getfa @ 2024-02-10 23:37:17


@[query_getfa](/user/1061770) 咋了我又怎么你了/kk
by shooting__star @ 2024-02-10 23:40:01


@[shooting__star](/user/955954) 我没说啥啊,就是你一直做DFS不无聊么/kk
by query_getfa @ 2024-02-10 23:41:05


@[query_getfa](/user/1061770) 所以你没必要说啊,这是求助帖啊哥(((
by shooting__star @ 2024-02-10 23:42:47


@[shooting__star](/user/955954) 6,但你连啥问题都不说
by query_getfa @ 2024-02-10 23:43:27


样例没过,然后输出了一些……很那个的数字
by shooting__star @ 2024-02-10 23:45:57


@[query_getfa](/user/1061770) 我家dfs是最棒的,怎么可能会无聊呢?
by scy_love_zb @ 2024-02-15 10:07:42


``` for(int i=0;i<2;i++) { if(i) { ``` 这个for和if有啥用
by zqhbxsgs @ 2024-02-15 10:28:37


y对应的是m,越看越不懂了
by zqhbxsgs @ 2024-02-15 10:34:27


```cpp #include<bits/stdc++.h> using namespace std; int t; int n,m; int mp[10][10]; long long maxx,ans; int vis[10][10]; int dx[8]= {1,-1,0,0,1,-1,-1,1}; int dy[8]= {0,0,1,-1,1,-1,1,-1}; void dfs(int x,int y) { if(y > m) { dfs(x + 1,1); return ; } if(x > n) { ans = max(maxx,ans); return ; } dfs(x,y + 1); if(!vis[x][y]) { maxx += mp[x][y]; for(int i = 0; i < 8; i ++) { int xx,yy; xx = x + dx[i]; yy = y + dy[i]; vis[xx][yy] ++; } dfs(x,y + 1); for(int i = 0; i < 8; i ++) { int xx,yy; xx = x + dx[i]; yy = y + dy[i]; vis[xx][yy] --; } maxx -= mp[x][y]; } } int main() { cin >> t; for(int i=0; i < t; i ++) { cin >> n >> m; memset(vis,0,sizeof(vis)); for(int j = 1; j <= n; j ++) { for(int k = 1; k <= m; k ++) { cin >> mp[j][k]; } } ans = maxx = 0; dfs(1,1); cout << ans << endl; } return 0; } ```
by zqhbxsgs @ 2024-02-15 10:46:29


|