2025/1/21学习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | #include<bits/stdc++.h> using namespace std; #define int long long const int N=1e5+10; int Max,Min,n,t; int a[N],b[N]; bool check( int x){ int lim=Max-x; int L=-1,R; for ( int i=1; i<=n; ++i){ b[i]=a[i]; if (a[i]<lim){ if (L==-1) L=i; R=i; } } if (L==-1) L=R=t; for ( int i=L; i<=R; ++i) b[i]*=2; int Min1=b[1],Max1=b[1]; for ( int i=2; i<=n; ++i) Min1=min(Min1,b[i]),Max1=max(Max1,b[i]); if (Max1-Min1<=x) return 1; return 0; } void solve(){ cin>>n; for ( int i=1; i<=n; ++i) cin>>a[i]; if (n==1){ cout<<0; return ; } Min=Max=a[1]; for ( int i=2; i<=n; ++i) Min=min(Min,a[i]),Max=max(Max,a[i]); for ( int i=1; i<=n; ++i) if (a[i]==Min) t=i; int l=0,r=2*(Max-Min),Ans=2*(Max-Min); while (l<=r){ int mid=l+r>>1; if (check(mid)) Ans=mid,r=mid-1; else l=mid+1; } cout<<Ans; } signed main(){ ios_base::sync_with_stdio( false ); cin.tie(0),cout.tie(0); int _=1; //cin>>_; while (_--) solve(); return 0; } //正解 #include <bits/stdc++.h> void solve() { int n; std::cin >> n; std::vector< int > a(n); for ( int i = 0; i < n; i++) { std::cin >> a[i]; } std::vector< int > id(n); std::iota(id.begin(), id.end(), 0); auto cmp = [&a] ( int x, int y) -> bool { return a[x] < a[y]; }; std::sort(id.begin(), id.end(), cmp); int l = id[0]; int r = l; a[l] *= 2; std::multiset< int > S(a.begin(), a.end()); int ans = INT_MAX; for ( int i : id) { while (i < l) { int p = --l; S.erase(S.find(a[p])); a[p] *= 2; S.insert(a[p]); } while (r < i) { int p = ++r; S.erase(S.find(a[p])); a[p] *= 2; S.insert(a[p]); } ans = std::min(ans, *S.rbegin() - *S.begin()); } std::cout << ans << '\n' ; } int main() { int T = 1; // std::cin >> T; while (T--) { solve(); } return 0; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2024-01-21 2024 1.21