2 条题解

  • 0
    @ 2025-10-16 19:42:57

    #include <bits/stdc++.h> #define int long long using namespace std; const int N = 1e5 + 1; int n, m; struct u{ int best;//最好 double pj;//平均 int un;//最坏 }a[N]; bool cmp(u x, u y){ return x.best < y.best; } int sum1 = 0; int sum2 = 0; int sum3 = 0; int ans = 0, hqt, sum = 0; signed main() { // freopen("ddl_sample5.in", "r", stdin); cin >> n >> m; for (int i = 0; i < n; i ++){ int x, y; double z; cin >> x >> y; z = (x + y) / 2; a[i].best = x; a[i].un = y; a[i].pj = z; } for (int i = 0; i < n; i ++){ sum1 += a[i].best; sum2 += a[i].pj; sum3 += a[i].un; } // cout << sum3 << endl << sum2 << endl << sum1 << endl; if(sum3 < m){ cout << "OK"; return 0; }else if(sum2 < m){ cout << "Maybe OK"; return 0; }else if(sum1 < m){ cout << "Maybe"; return 0; } sort(a, a + n, cmp); for (int i = 0; i < n; i ++){ if(sum > m){ hqt = ans; } sum += a[i].un; ans ++; // cout << ans << " "; } cout << hqt; return 0; } 大佬教教我qwq

    • 0
      @ 2025-10-16 18:56:10
      #include<bits/stdc++.h>
      #define int long long
      using namespace std;
      const int N = 1e5 + 1;
      const int inf = 0x3f3f3f3f;
      struct abc{
      	int l , r;
      };
      abc a[N];
      bool hqt(abc x , abc y){
      	return x.l < y.l;
      }
      signed main(){
      //	freopen("ddl_sample5.in" , "r" , stdin);
      //	freopen("1.ans" , "w" , stdout);
      	int n , L;
      	cin >> n >> L;
      //	cout << n  << " " << L << endl;
      	int maxx = 0;
      	int minn = 0;
      	double mid = 0;
      	for(int i = 1 ; i <= n ; i ++){
      		cin >> a[i].l >> a[i].r;
      		maxx += a[i].r;
      		minn += a[i].l;
      		mid += (1.0 * (a[i].r + a[i].l)) / 2;
      	}
      //	cout << maxx << " " << minn << " " << (int)mid << endl;
      	if(L >= maxx){
      		cout << "OK";
      		exit(0);
      	}else if(L >= minn && (double)L < mid){
      		cout << "Maybe";
      		exit(0);
      	}else if((double)L >= mid && L >= minn){
      		cout << "Maybe OK";
      		exit(0);
      	}
      	int ans = 0;
      	sort(a + 1 , a + n + 1 , hqt);
      	for(int i = 1 ; i <= n ; i ++){
      		if(L < a[i].l) break;
      		L -= a[i].l;
      		ans ++;
      	}
      	cout << ans;
      	return 0;
      }
      
      • 1

      信息

      ID
      4444
      时间
      1000ms
      内存
      256MiB
      难度
      8
      标签
      (无)
      递交数
      23
      已通过
      5
      上传者