如何优化
查看原帖
如何优化
933814
QBW1117楼主2024/1/25 14:30

请教一下各位神犇, 代码:

#include<bits/stdc++.h>
#define f(i,a,b) for(int i = a ; i<=b ; i++)
#define maxn 10
#define maxm 1000005
#define P 1000000007
using namespace std;
long long n,m,delta,ans,a[maxm][maxn];
typedef long long ll;
bool same[maxm][maxn];
void work(int x,int y){
	if(y == n+1){
		ans = (ans+1)%P;
		return ;
	}
	int tx = x+1,ty = y;
	if(tx>=m+1) tx = 1,ty+=1;
	f(i,0,1){
		if(i<a[x+1][y-1]) continue;
		if(same[x][y-1] && y-1>=1 && x+1<=m && i!=a[x+1][y-1]) continue;
		a[x][y] = i;
		same[x][y] = a[x][y-1] == a[x-1][y]||same[x-1][y]||same[x][y-1];
		work(tx,ty);
	} 
}
long long kkksc03(int x,int y,int p){
	long long ans = 1;
	for(;y;y>>=1,x = x*x%p) if(y&1) ans = ans*x%p;
	return ans;
} 
int main(){
	cin>>n>>m;
	if(n>m) swap(n,m); 
	delta = max(0ll,m-(n+1));
	m = min(m,n+1);
	f(i,1,n)a[0][i] = 8;
	f(i,1,n)a[i][0] = -8;
	work(1,1);
	if(n == 1) cout<<1ll*ans*kkksc03(2,delta,P)%P<<endl;
	else cout<<1ll*ans*kkksc03(3,delta,P)%P<<endl;
	return 0;
}

不吸氧80pts,吸氧100pts

如何让不吸氧能100pts?

2024/1/25 14:30
加载中...