Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
42561 董承诺 加强版密码锁 C++ 解答错误 0 0 MS 344 KB 640 2022-07-02 17:14:09

Tests(0/10):


#include <bits/stdc++.h> using namespace std; int a,b[105],c[105]; long long d=2100000000; long long e[105][105]; long long f(int g,int h) { return pow(min(abs(b[g]-h),min(100+h-b[g],100+b[g]-h)),2); } int main(){ cin>>a>>c[1]; for(int i=1;i<=a;i++) { b[i]=c[i]%100; c[i+1]=(c[i]*6807+2831)%201701; } memset(e,-2100000000,sizeof(e)); for(int i=0;i<=99;i++){ e[1][i]=f(1,i); } for(int i=2;i<=a;i++){ for(int j=i-1;j<=99-(a-i);j++){ for(int k=i-2;k<=j-1;k++){ e[i][j]=min(e[i][j],e[i-1][k]+f(i,j)); } } } for(int i=a-1;i<=99;i++){ d=min(d,e[a][i]); } cout<<d<<endl; return 0; }


测评信息: