题意:给定N个物品的重量Li 背包的容量M 同时要求每个背包最多装两个物品 求至少要多少个背包才能装下所有物品 简单贪心 注意输出: #include<bits/stdc++.h> using namespace std; #define N 200000+5 int n,w; int a[N]; int main() { int cas;cin>>cas; while(cas--) { cin>>n>>w; ;i<n;i++) scanf(&qu…
每个bin最多只能放两个,所以最佳的贪心策略是从大的开始放,如果有空间放第二个,尽量放最大的. #include <bits/stdc++.h> using namespace std; + ; int t; int n,l; int a[maxn]; int b[maxn]; int flag[maxn]; void solve(){ ; memset(flag, , sizeof(flag)); ; i <= n; ++i){ if(flag[i]){ continue; } els…
https://vjudge.net/problem/UVA-1149 题意:给定N个物品的重量和背包的容量,同时要求每个背包最多装两个物品.求至少需要的背包数. 思路:很简单的贪心.每次将最轻的和最重的放一个背包里,如果放不下,则只放一个最重的. #include<iostream> #include<algorithm> using namespace std; + ; int n, m; int a[maxn]; int ans; void solve() { ans = ;…