30pts TLE

P2660 zzc 种田

尝试过改成循环,结果是T飞辣!
by Rainsleep @ 2022-07-17 19:31:12


“While” Code: ```cpp #include<bits/stdc++.h> using namespace std; typedef long long ll; //考虑当我选取的矩形最大时我的体力值耗费最少 //题目给定一定为矩形 //画图发现其实就是每次在矩阵中选择一个最大的正方形,加上其周长 //递归处理割去最大正方形的矩形 ll n,m,res(0); unsigned long long Area; inline void solve(int l,int w) { if(Area == 0) { printf("%lld",res); exit(0); } int Edge(min(l,w)); res+=Edge*4; Area -= pow(Edge,2); solve(max(l,w)-Edge,Edge); } int main() { scanf("%lld %lld",&n,&m); Area = n*m; //solve(n,m); bool flag = n < m ; while(Area) { int Edge(flag ? n : m); res+=Edge*4; Area -= pow(Edge,2); flag ? m-Edge,n=Edge : n-Edge, m=Edge ; } printf("%d",res); return 0; } /* 5 3 25 */ ```
by Rainsleep @ 2022-07-17 19:34:48


|