CF351A Jeff and Rounding 思维】的更多相关文章

Jeff got 2n real numbers a1, a2, ..., a2n as a birthday present. The boy hates non-integer numbers, so he decided to slightly "adjust" the numbers he's got. Namely, Jeff consecutively executes n operations, each of them goes as follows: choose i…
C. Jeff and Rounding time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Jeff got 2n real numbers a1, a2, ..., a2n as a birthday present. The boy hates non-integer numbers, so he decided to sli…
C. Jeff and Rounding time limit per test:  1 second memory limit per test: 256 megabytes input: standard input output: standard output Jeff got 2n real numbers a1, a2, ..., a2n as a birthday present. The boy hates non-integer numbers, so he decided t…
http://codeforces.com/problemset/problem/351/A 题意: 2*n个数,选n个数上取整,n个数下取整 最小化 abs(取整之后数的和-原来数的和) 先使所有的数都下取整,累积更改的sum 那么选1个小数上取整,就会使sum-1 整数上下取整不会产生影响 所以有1个整数就可以使上取整的小数少1个 所以ans=min(abs(i-sum)) i∈[n-整数个数,n] #include<cmath> #include<cstdio> #inclu…
题目链接:http://codeforces.com/contest/351/problem/A 算法思路:2n个整数,一半向上取整,一半向下.我们设2n个整数的小数部分和为sum. ans = |A - B|; sum = A +(n-b)-B; 所以ans = |sum - (n-b) |; 只有b未知,只需要枚举一下b就得到答案. #include<cstdio> #include<iostream> #include<algorithm> #include<…
http://codeforces.com/contest/352/problem/C 题意:给予N*2个数字,改变其中的N个向上进位,N个向下进位,使最后得到得数与原来数的差的绝对值最小 对每一个浮点数都取其下限,得到的差值就是所有浮点数小数部分的和:然后则需要从2*n个数里面选出n个数取其上限,即下限加1,而如果这个数是个整数,那么不需要加1:因此统计加1个数的上限和下限即可:然后选择min abs(小数部分的和-加1的个数): #include <cstdio> #include <…
给予N*2个数字,改变其中的N个向上进位,N个向下进位,使最后得到得数与原来数的差的绝对值最小 考虑小数点后面的数字,如果这些数都非零,则就是  abs(原数小数部分相加-1*n), 多一个0 则 min( abs(原数小数部分相加-1*n) ,abs(原数小数部分相加-1*(n-1)) )以此类推 #include<stdio.h> int abs(int a){ )return -a; else return a; } int Min(int a,int b){ if(a<b)ret…
http://codeforces.com/problemset/problem/351/C 题意:有2*n个浮点数a1,a2,a3...a2*n,把他们分成n队,对于每对<A,B>,对A做floor() 操作,对B 做ceil()操作.生成b1...b2*n, 求|(b1+b2+...+b2*n)-(a1+a2+a3...+a2*n)|的最小值. 对于每个数ai,对他们做floor()的cost是up()=ai-floor(ai) ,做ceil()的cost是down()=ceil(ai)-…
题意 有一个含有\(2n(n \leqslant2000)\)个实数的数列,取出\(n\)个向上取整,另\(n\)个向下取整.问取整后数列的和与原数列的和的差的绝对值. 就是说,令\(a\)为原数列,\(b\)为取整后数列,求 \[ min(abs(\sum_{i=1}^{2n}a-\sum_{i=1}^{2n}b)) \] 解题思路 刚开始大力猜了一波贪心结论,然后怒WA n发-- 我也不知道怎么会想到以下这个奇怪的结论的-- 如果我们设\(n\)个被向上取整的数的小数部分的和为\(a\)(其…
把每个值的各种贡献算一下即可 /* ai的小数部分为xi,向下取整对答案贡献为xi 向上取整对答案的贡献是xi-1,如果这个数是0,那么对答案的贡献是xi,即如果0向上取整就可以免去-1 然后sum{xi}-1*k来凑最小的绝对值即可 */ #include<bits/stdc++.h> using namespace std; #define N 4005 int n; double x[N]; int main(){ cin>>n; ;i<=*n;i++)cin>&…
Jeff Atwood倾情推荐——程序员必读之书 英文版:<Code Complete 2>中文版:<代码大全(第二版)>作者:Steve McConnell译者:金戈  汤凌  陈硕  张菲出版社:电子工业出版社出版日期:2007 年8月Jeff Atwood的推荐:Steve McConnell的这本书是软件开发领域里的<烹饪的乐趣>.如果你对这本书感兴趣,说明你热爱你现在的工作,你对你正在做的事情是认真的,并且你想不断地提升自己.Steve在这本书里指出,普通程序…
英文版:<Code Complete 2>中文版:<代码大全(第二版)>作者:Steve McConnell译者:金戈  汤凌  陈硕  张菲出版社:电子工业出版社出版日期:2007 年8月Jeff Atwood的推荐:Steve McConnell的这本书是软件开发领域里的<烹饪的乐趣>.如果你对这本书感兴趣,说明你热爱你现在的工作,你对你正在做的事情是认真的,并且你想不断地提升自己.Steve在这本书里指出,普通程序员每年所读的技术书籍不足一本.仅仅只需阅读这本书,…
批判性思维(CriticalThinking)就是通过一定的标准评价思维,进而改善思维,是合理的.反思性的思维,既是思维技能,也是思维倾向. 批判性思维是在普通思维的基础上又加了第二层思考,并对第一层思考进行分析和 评价. 想起以前外教教我们的批判性思维(题外话:怀念Jenny, Valentine, Oscar, Elizabeth, Jeff, Mark ...),最近才发现这不仅仅是一门课程. 首先遇到过很多厉害的人都会批判性思维,比如德勤的Par Mark,比如张化川老师以及朱红军老师,…
前言:作为一名程序员,相信你已经熟练掌握了JavaScript语言,由于其应用领域非常的广泛,所以算得上是每一个程序员必须要掌握的语言.但是JavaScript自身的缺点,相信每一个程序员也是深有体会,约束上的缺陷会使项目存在极大的安全隐患,所以我们经常会说JavaScript不适合开发大型项目.那么要如何解决这个问题呢?是否有更好的语言可以弥补JavaScript的缺陷?本文接下来以JavaScript的痛点展开,总结了一些由类型引发的相关问题,顺便带领大家全面认识TypeScrip. Typ…
Scrum是由Ken Schwaber和Jeff Sutherland在20世纪90年代提出的概念,并在1995年首次正式确定.起初Scrum是为了解决产品和软件开发固有的复杂性,然而现在Scrum被成功地应用于市场营销.组织变革和科学研究等多个领域的复杂问题. Scrum主要建立在以下三个原则的基础上: 透明度:你需要收集数据(比如一些指标.团队成员的反馈或其他团队的经验之谈),从而找到你的目标. 检查:你需要和大家一起监督迭代的进度,并决定迭代完成的标准是什么. 适应:你需要做出改变,希望能…
普通的人生大抵相似,传奇的人生各有各的传奇.Jeff就是这样的传奇人物,年近80的他从来没有"廉颇老矣尚能饭否"的英雄迟暮,不久前还精神矍铄地与好几百名中国学生进行线上交流,积极回答中国粉丝关于Scrum的疑惑. 他在某个领域的成就很可能是很多人一辈子都难以望其项背的存在. 军校和越战 Jeff的教育经历丰富,就从那个大名鼎鼎的西点军校讲起吧!西点军校成立于1802年,由当时的美国第三届总统托马斯·杰弗逊签署法令成立,培养了麦克阿瑟.艾森豪威尔.巴顿.鲍威尔众多军事政治人才.西点军校入…
用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html  目录 马桶排序(令人作呕的排序) 冒泡排序(面试都要问的算法) 快速排序(见证亚当和夏娃的爱情之旅) 马桶排序(令人作呕的排序) 一.场景:期末考试完了,老师要将同学们的分数从高到低排序.假设班上有 5 名同学,分别考了 5 分.3 分.5 分.2 分和 8 分[满分:10 分],排序后的结果就是 8 5 5 3 2,…
半年前学习Photoshop时记得的思维导图笔记,可能不是很全,常用的基本都记下了.…
前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括使用方式,及相关介绍,都容易引人误解. 为此,我打算重新写个系列来介绍最新的版本,让大伙从传统的ORM编程过渡到自动化框架型思维编程(自已造的词). 于是:这个新系列的名称就叫:CYQ.Data 从入门到放弃ORM系列 什么是:CYQ.Data 1:它是一个ORM框架. 2:它是一个数据层组件. 3…
看似简单的char 通过前两节,我们应该对字符和文本的编码和乱码有了一个清晰的认识,但前两节都是与编程语言无关的,我们还是不知道怎么在程序中处理字符和文本. 本节讨论在Java中进行字符处理的基础 - char,Java中还有Character, String, StringBuffer, StringBuilder等类进行文本处理,他们的基础都是char,我们在后续文章中介绍这些类. char看上去是很简单的,正如我们在第2节所说,char用于表示一个字符,这个字符可以是中文字符,也可以是英文…
上节介绍了单个字符的封装类Character,本节介绍字符串类.字符串操作大概是计算机程序中最常见的操作了,Java中表示字符串的类是String,本节就来详细介绍String. 字符串的基本使用是比较简单直接的,我们来看下. 基本用法 可以通过常量定义String变量 String name = "老马说编程"; 也可以通过new创建String String name = new String("老马说编程"); String可以直接使用+和+=运算符,如: S…
数组是存储多个同类型元素的基本数据结构,数组中的元素在内存连续存放,可以通过数组下标直接定位任意元素,相比我们在后续章节介绍的其他容器,效率非常高. 数组操作是计算机程序中的常见基本操作,Java中有一个类Arrays,包含一些对数组操作的静态方法,本节主要就来讨论这些方法,我们先来看怎么用,然后再来看它们的实现原理.学习Arrays的用法,我们就可以避免重新发明轮子,直接使用,学习它的实现原理,我们就可以在需要的时候,自己实现它不具备的功能. 用法 toString Arrays的toStri…
Joda-Time上节介绍了JDK API中的日期和时间类,我们提到了JDK API的一些不足,并提到,实践中有一个广泛使用的日期和时间类库,Joda-Time,本节我们就来介绍Joda-Time.俗话说,工欲善其事,必先利其器,Joda-Time就是操作日期和时间的一把利器. Joda-Time的官网是http://www.joda.org/joda-time/.它的基本概念和工作原理与上节介绍的是类似的,比如说,都有时刻和年历的概念,都有时区和Locale的概念,主要工作,都是在毫秒和年月日…
之前几节介绍了各种具体容器类和抽象容器类,上节我们提到,Java中有一个类Collections,提供了很多针对容器接口的通用功能,这些功能都是以静态方法的方式提供的. 都有哪些功能呢?大概可以分为两类: 对容器接口对象进行操作 返回一个容器接口对象 对于第一类,操作大概可以分为三组: 查找和替换 排序和调整顺序 添加和修改 对于第二类,大概可以分为两组: 适配器:将其他类型的数据转换为容器接口对象 装饰器:修饰一个给定容器接口对象,增加某种性质 它们都是围绕容器接口对象的,第一类是针对容器接口…
在线精简cheatsheet备查表:intellij.linesh.twGithub项目:intellij-mac-frequent-keymap Intellij的快捷键多而繁杂,从官方推荐的keymap,到网络上很多的个人总结,资料可谓浩如烟海.相反,如何从众多的快捷键中快速找到使用频率最高.对工作效率提升最多的快捷键,则成为一个难题.这个cheatsheet速查表,正是为了解决Intellij快捷键学习过程可能遇到的这个问题. 这一年里我拉拉杂杂地阅读了许多Intellij快捷键与使用理念…
<Becoming Functional>是O'Reilly公司今年(2014)7月发布的一本薄薄的小册子,151页,介绍了函数式编程的基本概念.全书使用代码范例都是基于JVM的编程语言,比如Java,Groovy,Scala.为了能够讲解所有的知识点,作者不得不在多个语言之间做切换,其实使用Erlang,Elixir甚至是C#做范例都不会这么累(因为C#有Linq,Lazy.....).      这本书侧重点是讲解基本概念,以及思维方式的转变.所以无论是搞哪一种函数式编程语言,都可以读一读…
在网上看到有个人总结的java技术的东东,觉得很好,就保存下来了,码农还真是累啊,只有不断的学习才能有所提高,才能拿更多的RMB啊. java技术思维导图 服务端思维导图 前端思维导图…
我们在XMind 6对导图进行局域网共享时,一般都是对XMind文件先进行保存再共享,那样是忘记保存呢,该如何共享.局域网共享功能是XMind 6特有的功能之一,自是较为完善,性能强大的功能,当然有办法解决,下面我们就看一看如何在XMind 6中共享未保存的思维导图. 首先,我们打开XMind 6思维导图进行绘制后,点击确认到未保存的思维导图导图. 我们点击[文件]中的局域网内共享. 这时,将会自动跳出提示窗口,提醒局域网共享前请先对XMind文件进行保存. 点击确定后,随即会跳转到保存页面,这…
思维导图软件使用的坎坷之路 一直想将思维导图加入到工作环境当中 最开始使用的是 MindManager(http://www.mindmanager.cc/) ,而且感觉利用它制作出来的导图外观也比较不错.可惜MindManager走的是收费软件的路线,而且价格也稍高,一个月的试用期之后就无法使用了,没办法只好放弃使用! 之后,尝试开始在网站跟"MindManager破解版"相关的资源搜罗... 前后折腾了好几周,中间间断地尝试下载安装,但是结果是装了又卸,卸了又装...花费了不少宝贵…
湘潭邀请赛的一题,名字叫"超级FFT"最终暴力就行,还是思维不够灵活,要吸取教训. 由于每组数据总量只有1e5这个级别,和不超过1e6,故先预处理再暴力即可. #include<cstdio> #include<iostream> #include<cstdlib> #include<cstring> #include<string> #include<algorithm> #include<map>…