T1 终于结束的起点
题解:枚举啊...
斐波那契数 第46个爆int,第92个爆long long....
发现结果一般是m的几倍左右....不用担心T。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int M,N; int t,f1,f2; int main() { scanf("%d",&M);f1=1;f2=1; for(int i=3;i;i++) { t=(f1+f2)%M; f1=f2%M; f2=t; if(f1%M==0&&f2%M==1) { printf("%d\n",i-1); break; } } return 0; }
题解:贪心。
从当前没跳过的最高的和最低的之间来回跳。
//预计10分 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; int n; int h[320],vis[320]; LL ans; void dfs(int now,int a,LL scor) { if(a==n) { ans=max(ans,scor); return ; } for(int i=1;i<=n;i++) { if(vis[i]) continue; vis[i]=true; dfs(i,a+1,scor+(h[now]-h[i])*(h[now]-h[i])); vis[i]=false; } } int main() { freopen("rand.txt","r",stdin); freopen("baoli.txt","w",stdout); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&h[i]); dfs(0,0,0); cout<<ans<<endl; return 0; }