3 条题解
-
1
:
#include <bits/stdc++.h> #define ll long long #define re register int #define Rep(x, a, b) for (int x = a; x <= b; x++) #define Dep(x, a, b) for (int x = a; x >= b; x--) #define MAXN 100005 using namespace std; struct T { int d, t; }a[MAXN]; ll p[MAXN], ans; int n; inline bool cmp(T x, T y) { return (double)x.d / x.t * 1.0 > (double)y.d / y.t * 1.0; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; Rep(i, 0, n - 1) cin >> a[i].t >> a[i].d; sort(a, a + n, cmp); p[0] = a[0].d; Rep(i, 1, n - 1) p[i] = p[i - 1] + a[i].d; Rep(i, 0, n - 1) ans += (p[n - 1] - p[i]) * a[i].t * 2; cout << ans << endl; return 0; }
-
0
#include<bits/stdc++.h> using namespace std; int n; struct node { int t,d; }a[100001]; bool cmp(node x,node y) { return x.t*y.d<y.t*x.d; } int main() { cin>>n; for(int i=1;i<=n;i+=1) { cin>>a[i].t>>a[i].d; } sort(a+1,a+n+1,cmp); long long ans=0,T=0; for(int i=1;i<=n;i+=1) { ans+=T*a[i].d; T+=2*a[i].t; } cout<<ans; }
AC代码,请放心食用。
-
0
#include<bits/stdc++.h> int n,m,k,s,t; struct node { int t,d; }a[100001]; bool cmp(node x,node y) { return x.t*y.d<y.t*x.d; } int main() { std::cin>>n; for(int i=1;i<=n;i+=1)std::cin>>a[i].t>>a[i].d; std::sort(a+1,a+n+1,cmp); long long ans=0,T=0; for(int i=1;i<=n;i+=1) { ans+=T*a[i].d; T+=2*a[i].t; } std::cout<<ans; }
- 1
信息
- ID
- 561
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 4
- 标签
- 递交数
- 618
- 已通过
- 263
- 上传者