博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SGU 165.Basketball
阅读量:7223 次
发布时间:2019-06-29

本文共 815 字,大约阅读时间需要 2 分钟。

题意

       输入n个在[1.95,2.05]范围内的数。
       保证他们的平均数为2.00。
       现在要求把这些数调整出一个顺序,
       使得任意长度为K的子段和与2.00*K的差值的绝对值不超过0.01(K=1,2...,n)

 

 

 

 

 


 

Solution:

             由于数的范围,和平均数为2,保证了有解。

             对所有数-2,使得前缀和的绝对值不超过0.1即可。

             由于数的范围在1.95~2.05之间,减去2后小于0的数一定等于大于0的数。

             只要每两个位置放上一正一负即可

 

code

 

#include 
#include
#include
#include
using namespace std;int n,m;double s[6009];int ans[6009],g[6009];bool cmp(int a,int b){ return s[a]
>n; for(int i=1;i<=n;i++) cin>>s[i],s[i]-=2,g[i]=i; sort(g+1,g+1+n,cmp); int i=1,j=n,t=0; double tem=0; while(t
=0){ tem+=s[g[i]]; ans[++t]=g[i++]; } else{ tem+=s[g[j]]; ans[++t]=g[j--]; } } puts("yes"); for(int i=1;i<=n;i++) cout<
<<" "; return 0;}

 

  

 

转载于:https://www.cnblogs.com/keam37/p/3910209.html

你可能感兴趣的文章
Golang数据库编程之GORM模型定义与数据库迁移
查看>>
Oracle redo解析之-4、rowid的计算
查看>>
Easy Scheduler 1.0.3 发布,分布式工作流任务调度系统
查看>>
java 颠倒整数
查看>>
Python入门教程100天:Day05-练习总结
查看>>
环境搭建,8种基本类型,Static,package和import,log4j
查看>>
即将到来的 Debian 10 Buster 发布版的新特点
查看>>
iOS 头部视图下拉变大
查看>>
Disruptor并发框架
查看>>
react-hooks 实现简单的评论list
查看>>
【多图警告】学会JavaScript测试你就是同行中最亮的仔(妹)
查看>>
19-04-25
查看>>
一个JAVA程序员成长之路分享
查看>>
30K iOS程序员的简述:如何快速进阶成为高级开发人员
查看>>
Go 夜读 - 每周四晚上 Go 源码阅读技术分享
查看>>
tranform知多少
查看>>
Android电量优化
查看>>
[爬虫手记] 我是如何在3分钟内开发完一个爬虫的
查看>>
【译】Css Grid VS Flexbox: 实践比较
查看>>
iOS 开发知识索引
查看>>