2 条题解
-
0
#include<iostream> #include<algorithm> using namespace std; long long h[1000001];//储存树的高度 long long N, M, L, mid; int main() { int i; cin >> N >> M;//输入树的数量N和所需的木材总长度 for (i = 1; i <= N; i++) { cin >> h[i]; } sort(h, h + N + 1);//将所有树木进行排序,以便找到最高的树 L = 1;//左边界 long long max = h[N];//右边界 while (L <= max) { mid = (L + max) / 2; long long x = 0;//每个测试案例中木材的总长度 for ( i = 1; i <= N; i++) if (h[i] > mid) x += h[i] - mid; if (x < M)//测试案例中的木材总长度小于需求量 max = mid - 1;//右边界改变,降低锯片高度以增加所砍木材总长度 else//超过则改变左边界,以提高锯片高度 L = mid + 1; } cout << max;//输出锯片的最大高度 return 0; }
-
-5
#include<bits/stdc++.h> using namespace std; struct zzh{ char xm[100]; int xb; int n; int y; int r; }; zzh a[1000]; bool hzz(zzh f,zzh g) { if(f.n>g.n) { return 0; } if(f.n==g.n) { if(f.y>g.y) { return 0; } if(f.y==g.y) { if(f.r>g.r) { return 0; } } return 1; } return 1; } int main() { cout<<"请输入一共有多少人"<<endl; int n; cin>>n; cout<<"输入每个人的 姓名 出生年份 出生月份 出生日"<<endl; for(int i=1;i<=n;i++){ cout<<"第"<<i<<"个人:"; cin>>a[i].xm>>a[i].n>>a[i].y>>a[i].r; } sort(a+1,a+n+1,hzz); cout<<"排序结果"<<endl; for(int i=1;i<=n;i++) { cout<<"第"<<i<<"大的:"; cout<<a[i].xm<<" "<<a[i].n<<" "<<a[i].y<<" "<<a[i].r<<endl; } return 0; }
- 1
信息
- ID
- 904
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 191
- 已通过
- 32
- 上传者