贪心
贪心这东西会贯彻你的OI生涯。。。你会在CSP-J中见到ta,你还回在NOI里见到ta(当然你要先过省选
贪心其实就是找到一个最优决策,并每一步都按照决策操作(听起来是不是很simple。。。
如何证明我的贪心是正确的???
你写一下不就知道了??- 尝试证明做出任何更改都会使结果更劣
- 尝试直接数学证明
- 尝试感性理解
思路:
对$a$进行排序,定义$l=1,r=n$
每次尝试把al,ar放进当前组,不行则ar单独一组
Code:
建议读者自己先Code
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
| #include<iostream> #include<algorithm> using namespace std;
int main() { int w,n; cin>>w; cin>>n; int a[n]; for(int i=0;i<n;i++) { cin>>a[i]; } sort(a,a+n); int l=0,r=n-1,s=0; while(l<=r) { if(a[l]+a[r]<=w) { l++; r--; } else r--; s++; } cout<<s; return 0; }
|
发现我以前的码风是真的丑qwq推荐练习:
NOIP 2012 国王游戏
「USACO09OPEN」工作调度 Work Scheduling