传送门

这题其实没有题面看起来复杂,实际上我们贪心的去想:对于下式

                                                                          

如果我们有这么一种操作可以把某个减一,现在问一次操作后S的最小值,

那么很容易便可以知道我们肯定是去找最大的那个去减一,最后的结果才会最小.

对于这道题其实也一样,我们肯定也是选相对于圆心数值的差(加绝对值)大的维度优先去减小,这样一直贪心下去,

最后落到上面的点肯定就是我们要求的点。

对于这样一种操作,我们可以发现,在经过若干次操作后,这k个维度的向量的长度的最大的那几个肯定数值是相等的,

这是由于我们贪心的选取最大的去减所导致的,由于我们每次减的数值很小,误差小于题目中给的1e-4,那么对于结果来说数值就是无误的.

这样一来,对于这么些操作我们便可以用二分去替代,二分我们最后划定的那个最大值的数值便可以解决此问题。

#include<bits/stdc++.h>
using namespace std;
double eps=1e-6;
double c[105],s[105];
double conv[105];
double ans[105];
int main()
{int t;scanf("%d",&t);while(t--){int n,k,r;scanf("%d%d",&n,&k);scanf("%d",&r);for(int i=1;i<=k;i++) scanf("%lf",&c[i]);for(int i=1;i<=n;i++){for(int j=1;j<=k;j++) scanf("%lf",&s[j]),conv[j]=abs(s[j]-c[j]);double L=0,R=1e8;while(L<R-eps){double mid=(L+R)/2.0;double sum=0;for(int j=1;j<=k;j++) sum+=max(0.0,conv[j]-mid);if(sum<=r) R=mid;else L=mid;}for(int j=1;j<=k;j++){if(conv[j]>=R) conv[j]=R;if(s[j]>c[j]) ans[j]=-conv[j]+s[j];else ans[j]=conv[j]+s[j];printf("%.5f ",ans[j]);}printf("\n");}}
}

ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 K-Dimensional Foil II(二分瞎搞)相关推荐

  1. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 【bfs + 记忆化搜索 + 剪枝】 AC 代码

    ACM 北京区域赛 bfs+剪枝+ms 第一个一遍过的题目,基本没有看题解 记忆搜索当中,注意初始化成一个特殊值:而在访问之后,每个点就会有一个不同于INF(或者 -1等特殊标记)的值 先到先得,适者 ...

  2. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 Tomb Raider(map+二进制枚举)

    #1829 : Tomb Raider 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Lara Croft, the fiercely independent daugh ...

  3. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 80 Days(双向队列+尺取法)

    #1831 : 80 Days 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 80 Days is an interesting game based on Jules ...

  4. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 D【队列】

    #1831 : 80 Days 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 80 Days is an interesting game based on Jules ...

  5. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 D. 80 Days

    题解 题目大意 n个点组成一个环形 初始钱为m 从i走到j需要-b[i] + a[j] 要求按照顺时针走完所有的点(不用再回到起点) 过程中m不能小于0 输出最小的起点编号 直接把a[i]和b[i]合 ...

  6. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛

    Saving Tang Monk II Tomb Raider Cheat 80 Days Odd Chess Shortest Path Problem The Mole K-Dimensional ...

  7. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 A Saving Tang Monk II【分层bfs】

    时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 <Journey to the West>(also <Monkey>) is one of the ...

  8. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 A. Saving Tang Monk II

    题解 题目大意 给一个图S是起点 T是终点 .是空房间 #是毒气室 B是氧气瓶存放室 P是加速室 每次走到空房间或者起点消耗1秒 走到氧气室获得一个氧气瓶最多携带5个氧气瓶 进入毒气室需要一瓶氧气并且 ...

  9. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 80 Days ——尺取

    描述 80 Days is an interesting game based on Jules Verne's science fiction "Around the World in E ...

  10. ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 C-cheat

    超级水的模拟的,我也就会做模拟了--坑有点多,一直没调出来bug,赛后才发现少了一个数字-- 描述 Cheat is a card game played by four players sittin ...

最新文章

  1. 卓瑞机器人_校企合作专业共建记涪陵职教中心机器人专业中泰学术交流活动
  2. 中专是计算机专业毕业论文,中专计算机专业毕业论文内容
  3. golang 时间原点 时间日期格式化
  4. win7下构建swarm nodes实现跨host的容器之间的通信
  5. CST normalize S-parameter to given impedance
  6. Light OJ 1007
  7. 修改UITextField中的placeholder的字体
  8. docker mysql主从_使用docker 实现MySQL主从同步/读写分离
  9. 建筑与计算机技术,建筑设计中常用的计算机技术与注意点
  10. 20万DBA在关注的11个问题
  11. 力扣1716.计算力扣银行的钱
  12. 华为P50系列相机全球首发新技术:告别偏色做到真实原色捕捉
  13. C4D快速入门教程——可编辑模式
  14. 手写字体识别用python实现_Python3实现简单可学习的手写体识别
  15. 实现将exe格式的软件重新打包为msi格式的静默安装软件,方便域控使用策略分发软件
  16. python_面向对象,以及类的相关知识
  17. 围观知乎真福利话题,放松一下。
  18. HTML使用无序列表制作一级菜单和二级下拉菜单
  19. linux 鼠标卡顿,树莓派鼠标延迟以及其它问题汇总
  20. 2022 七校联合NewStarCTF 公开赛赛道 WEEK2|MISC

热门文章

  1. python实现人脸识别代码_手把手教你用1行代码实现人脸识别——Python Face_recogni...
  2. python两位小数向上取整函数_python3中的函数如何实现小数向上取整
  3. java-php-python-ssm绿叶有限公司工资管理信息系统计算机毕业设计
  4. white/black-box attack(黑盒白盒攻击基础)
  5. 基于stm32的linux开发的书籍,跟工程师学嵌入式开发:基于STM32和μC OS-Ⅲ 带目录高清版pdf...
  6. java factorial_[Java]函数求阶乘n!(factorial)(四种方法)
  7. 计算机网络最大传输速率求解
  8. 属实8错的电饭煲蛋糕
  9. oracle tabe unlock_Oracle命令全集
  10. Flot chart学习笔记