1300ms 求卡常
  • 板块学术版
  • 楼主Pollococido
  • 当前回复2
  • 已保存回复2
  • 发布时间2025/1/19 20:47
  • 上次更新2025/1/20 08:51:25
查看原帖
1300ms 求卡常
919410
Pollococido楼主2025/1/19 20:47

#pragma GCC target("avx")
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#include <bits/stdc++.h>
using namespace std;
int n, m, ans = 0x3f3f3f3f, cur = 0;
char c[45][45];
bool vis[45][45];
int dx[] = {0, 0, -1, 0, 1}, dy[] = {0, -1, 0, 1, 0};
//char buf[1 << 20], *_now = buf, *_end = buf;
//#define getchar() (_now == _end && (_end = (_now = buf) + fread(buf, 1, 1 << 20, stdin), _now == _end) ? EOF : *_now++)
//char *p1,*p2,buf[100000];
//#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
inline int read()
{
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while(ch>='0' && ch<='9')
        x=x*10+ch-'0',ch=getchar();
    return x*f;
}



void dfs(int x, int y) {
	cur++;
	if (x == n && y == m) {
		ans = min(ans, cur);
		return ;
	}
	for (int i = 1; i <= 4; i++) {
		int nx = x + dx[i], ny = y + dy[i];
		if (1 <= nx && nx <= n && 1 <= ny && ny <= m && c[nx][ny] != '#' && !vis[nx][ny]) {
			vis[nx][ny] = true;
			dfs(nx, ny);
			cur--;
			vis[nx][ny] = false; 
		}
	}
}

int main() {
	n = read(), m = read();
	//cout << n << " " << m;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			scanf(" %c", &c[i][j]);
		}
	}
	dfs(1, 1);
	printf("%d", ans);
	return 0;
}

拼尽全力无法战胜

2025/1/19 20:47
加载中...