#2 TLE 求调

P1874 快速求和

虽然用些奇奇怪怪的手段能过就是了 ```cpp #include<bits/stdc++.h> using namespace std; #define MAXN 50 long long sn,n,ans=0x3f3f3f3f; char s[MAXN]; clock_t ti; void dfs(long long pos,long long now,long long k){ if(clock()-ti>950){ printf("-1"); exit(0); } if(now>n)return; else for(int i=pos,sum=0;i<sn&&sum+now<=n;++i){ sum=sum*10+s[i]-'0'; if(now+sum==n&&i+1==sn)ans=min(k+1,ans); if(sum) dfs(i+1,now+sum,k+1); } // for(int i=0;i<k;++i)printf(" "); // printf("%lld\n",now); } int main(){ scanf("%s",s); sn=strlen(s); scanf("%lld",&n); ti=clock(); dfs(0,0,-1); printf("%lld",ans==0x3f3f3f3f?-1:ans); } ```
by HeW3 @ 2023-11-28 13:56:33


|