USACO 1.3Combination Lock
Posted 水郁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了USACO 1.3Combination Lock相关的知识,希望对你有一定的参考价值。
/* TASK:combo LANG:C++ URL:http://train.usaco.org/usacoprob2?a=E6RZnAhV9zn&S=combo SOLVE:自己做,想的是5*5*5*2-重复计算的。 官方题解是超级简单地写个判断枚举每一种解是否可行(n^3),题目没给n的范围,我就认为不可以用O(n^3)的算法。 */ #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #define ll long long using namespace std; int n,a[30][40]; ll ans=1; int main() { freopen("combo.in","r",stdin); freopen("combo.out","w",stdout); scanf("%d",&n); for(int i=1;i<=2;i++) for(int j=1;j<=3;j++) scanf("%d",&a[i][j]); ll s=min(5,n); if(n<=5)ans=s*s*s; else for(int j=1;j<=3;j++) ans*=s-min(s,(ll)min(abs(a[1][j]-a[2][j]),n-abs(a[1][j]-a[2][j]))); printf("%lld\n",s*s*s*2-ans); }
以上是关于USACO 1.3Combination Lock的主要内容,如果未能解决你的问题,请参考以下文章
HDU 3104 Combination Lock(数学题)