【数论 Day2】基础归纳法 题目

20170530-1数论_归纳

题解:http://www.cnblogs.com/ljc20020730/p/6920046.html


日期


序号


题目名称


输入文件名


输出文件名


时限


内存


算法


难度


分类


081105


1


烧水问题


heat.in


heat.out


1s


256MB


数学


2


03数论_归纳


120912


2


六边形


Hexagons.in


hexagons.in


1s


256M


数论


1


03数论_归纳


081106


3


最大子序和


max.in


max.out


1s


256MB


前缀和


2


03数论_前缀


111008


4


哥德巴赫矩阵


pmatrix.in


pmatrix.out


1s


128M


前缀和


2


03数论_前缀

1.烧水问题

【题目描述】

把总质量为1kg的水分装在n个杯子里,每杯水的质量均为(1/n)kg,初始温度均为0℃。现需要把每一杯水都烧开。我们可以对任意一杯水进行加热。把一杯水的温度升高t℃所需的能量为(4200*t/n)J,其中,“J”是能量单位“焦耳”。如果一旦某杯水的温度达到100℃,那么这杯水的温度就不能再继续升高,此时我们认为这杯水已经被烧开。显然地,如果直接把水一杯一杯地烧开,所需的总能量为(4200*100)J。

在烧水的过程中,我们随时可以在两杯温度不同的水之间进行热传递操作。热量只能从温度较高的那杯水传递到温度较低的那杯水。由于两杯水的质量相同,所以进行热传递操作之后,原来温度较高的那杯水所降低的温度总是等于原来温度较低的那杯水所升高的温度。

一旦两杯水的温度相同,热传递立刻停止。

为了把问题简化,我们假设:

没有进行加热或热传递操作时,水的温度不会变化。

加热时所花费的能量全部被水吸收,杯子不吸收能量。

热传递总是隔着杯子进行,n杯水永远不会互相混合。

热传递符合能量守恒,而且没有任何的热量损耗。

在这个问题里,只要求把每杯水都至少烧开一遍就可以了,而不要求最终每杯水的温度都是100℃。我们可以用如下操作把两杯水烧开:先把一杯水加热到100℃,花费能量(4200*100/2)J,然后两杯水进行热传递,直到它们的温度都变成50℃为止,最后把原来没有加热到100℃的那杯水加热到100℃,花费能量(4200*50/2)J,此时两杯水都被烧开过了,当前温度一杯100℃,一杯50℃,花费的总能量为(4200*75)J,比直接烧开所需的(4200*100)J少花费了25%的能量。

你的任务是设计一个最佳的操作方案使得n杯水都至少被烧开一遍所需的总能量最少。

【输入文件】输入文件只有一个数n。(1≤n≤50000)

【输出文件】输出n杯水都至少被烧开一遍所需的最少的总能量,单位为J,四舍五入到小数点后两位。

【输入样例】2

【输出样例】315000.00

2.六边形(hexagons.pas/c/cpp)

【试题描述】有一个由小正六边形拼成的大六边形,对边的长度是相同的(形状如图)

(图中所示的是 a=2,b=3,c=4 的情况)

现在给出 a, b, c,求构成六边形的小正六边形的数量

【输入格式】 一行三个整数 a,b,c

【输出格式】一个整数表示答案

【输入样例】2 3 4

【输出样例】18

【数据规模】

2 <= a, b, c <= 1000

3.最大子序和

【题目描述】输入一个长度为N的整数序列(A1,A2,……,An),从中找出一段连续的长度不小于A,且不超过B的子序列,使得这个子序列的和最大。

例如:序列   1, -3, 5, 1, -2, 3

当A=2,B=2或3时  S=5+1=6

当A=3,B=4时  S=5+1+(-2)+3=7

【输入文件】第一行三个整数N,A,B(1<=A<=B<=N)。

第二行为N整数,每个整数用空格隔开,表示该整数序列。

【输出文件】输出文件仅一个整数,为最大子序和。

【输入样例】

6 3 4

1 -3 5 1 -2 3

【输出样例】7

【数据规模和约定】

对于30%的数据N<=1000;

对于100%的数据N<=500000。

4.哥德巴赫矩阵

【题目描述】根据哥德巴赫猜想(每个不小于6的偶数都可以表示为两个奇素数之和),定义哥德巴赫矩阵A如下:对于正整数对(i,j),若i+j为偶数且i,j均为奇素数,则a[i,j]=1,否则a[i,j]=0。现在有若干询问(x1,y1,x2,y2),你需要回答的值是多少。

【输入格式】第一行一个整数m;

接下来m行,每行四个整数x1 y1 x2 y2,表示一个询问。

【输出格式】m行,每行一个整数,表示对应询问的答案。

【样例输入】

1

1 1 3 5

【样例输出】2

【数据范围】

30%的数据保证x2,y2,m≤100

100%的数据保证1≤x1≤x2≤106;1≤y1≤y2≤106;m≤1000

时间: 2024-10-25 06:31:01

【数论 Day2】基础归纳法 题目的相关文章

PYTHON 一些基础面试题目总结

PYTHON 一些基础面试题目总结http://www.bieryun.com/1191.html 1.       Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一.对象的引用计数机制 python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数. 引用计数增加的情况: 1,一个对象分配一个新名称 2,将其放入一个容器中(如列表.元组或字典) 引用计数减少的情况: 1,使用del语句对对象别名显示的销毁 2,引用超出作

【数论 Day2】基础归纳法 题解

题目: http://www.cnblogs.com/ljc20020730/p/6919989.html 1.烧水问题SDOI2008(山东省队选拔) 对于本题,O(n2)的贪心算法很好找出,就是让前几杯水都加热到100℃后面进行热传递. 打印出前几项,会发现规律--可以优化到O(n). 或者,也可以无耻地打表-- 提醒:令第一杯水需要提高t度,找出第二杯.第三杯--需要提高温度的比例关系,找规律解决. 推倒如下: 设沸腾温度为a 则第一杯温度为a,需要加热t1=a 第二杯可以中和的最高温度为

【计算几何】基础总结+题目推荐

刷了很久计算几何,好歹算是有些收获,总结一下吧. 计算几何不同与解析几何,这里大部分使用的是向量和点,而不是解析式. 直线/射线:一个点+一个方向向量. 线段:两个端点. 多边形:按逆时针排序的点集. 圆:圆心+半径. 点积:两个向量的数量积. 叉积:两个向量组成的四边形的有向面积. 基础部分有这些差不多了.比起解析式的运算过程来说,向量法的误差要小很多,而且基本不需要考虑特殊情况. 下面举个例子吧,分析解析几何和计算几何的差别. 最普通的,判断两直线是否相交或者重合,如果相交就计算交点. 解析

【数论Day4】数学 题目

题解:http://www.cnblogs.com/ljc20020730/p/7041059.html 20170603-1数论_数学 日期 序号 题目名称 输入文件名 输出文件名 时限 内存 算法 难度 09qd02 1 离散函数 function.in function.out 1s 512MB 数论 1 101021 2 能量采集 energy.in energy.out 1s 256MB 数论 1 091118 3 大逃亡 escape.in escape.out 1s 256MB 数

若干经典基础算法题目练习

练习1,判断是否为素数: // ConsoleAppIsPrime1.cpp : 定义控制台应用程序的入口点. // /* *函数功能:判断一个输入的数是否为素数 *函数原形:bool Prime( int x ) *参数:int x:将要判断的数 *返回值:bool型变量,判断是否是素数 *备注:需要包含头文件<math.h> *日期:2014/11/25 *原创:否 *作者:EbowTang *Email:[email protected] */ #include "stdafx

基础知识题目

考试主要考察基础知识的掌握和应用,考的内容会比上的免费课的内容简单一些.考试合格后方可参加正式课. 考试分A,B卷,同桌之间的题是不一样的.分为笔记题和上机题,笔答题要过70分才行,上机题要能正常运行起来. 考试范围如下:(除这些之外,第一天的教材里有一份习题,也是考试的范围) 默写以下单词并且知道其中的意思: 对象 布尔 字符串 数字 方法(函数) 未定义 (以上这几个就是让你写出JS中的六种变量类型来,当然是英文的) 判断数据类型的运算符 js中表示浏览器的对象 js中表示文档对象 把"12

基础逆向题目分析

文件地址:https://pan.baidu.com/s/1dFAiVy5 在某群里看到了一道基础题, 下载下来看下  用010 editor打开:  ,文件头是zip文件头,先改成zip格式再说 解压缩后发现里面是apk文件的形式: 去网上查了下相关资料,用到了dex2jar和jd-gui这两个工具,前者用来反编译apk文件,后者反编译jar文件,使用dex2jar反编译classes.dex,生成一个jar文件,用jd-gui打开,结果如下:  没怎么学过Android,一个文件一个文件看吧

软件测试基础知识题目

基础题(65分) 1.什么是需求?需求有哪些来源?(3分) 答:需求的分类:直接需求(用户直接需求告知要求)和间接需求(行业需求要求):需求的定义:准确的描述用户需求: 来源:行业.用户.团队.运营.客服.自己(调研反馈.数据分析.竞品分析):数据分析:产品功能使用情况,如行业报告.产品后台数据等挖掘用户需求:调研反馈:通过市场调研或用户调研等方式挖掘用户真实需求:竞品分析:确立竞品分析的目的,然后分析竞品的功能和内容都有什么,通过与竞品的对比得出自身产品的需求: 直白点说:01:来源客户要求:

PTA基础编程题目集——爬动的蠕虫

原题链接https://pintia.cn/problem-sets/14/problems/797 这题一开始考虑时犯了一些错误,一开始是这样考虑的,按题目的意思,每2分钟蠕虫爬行的距离是(U-D)寸.那么平均每分钟爬行的距离是(U-D+1)/2寸.然后对照样例数据N=12,U=3,D=1算出需要8分钟爬完,当然这个结果是错的.调整一下思路,假设时间为t,爬行距离为s.当t=0时,s=0:当t=1时,s=U:当t=2时,s=U-D:当t=3时,s=U-D+U:当t=4时,S=U-D+U-D:.