为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。
Sgu/165
来自NOCOW
< Sgu
贪心构造,如果你提交上去出现PE,说明你的答案WA了
先把所有身高减去2。。。
设 tot[i] 为答案顺序中 第 1 到 第i个人的身高和,那么对于所有i如果都有 fabs(tot[i])<0.05 那么任意一段之和不会大于0.1,然后就贪心构造
#include<iostream> #include<utility> #include<algorithm> using namespace std; typedef pair<double,int> Pr; int n,st,en;double tp,sum; Pr sz[6005]; int main() { cin>>n; for(int i=1;i<=n;i++){cin>>tp;tp-=2;sz[i]=Pr(tp,i);} sort(sz+1,sz+n+1); st=1;en=n; cout<<"yes"<<endl; for(int i=1;i<=n;i++) if(sum>=0) {cout<<sz[st].second<<" ";sum+=sz[st++].first;} else {cout<<sz[en].second<<" ";sum+=sz[en--].first;} return 0; } </sorce>