UVA 1524 - Hot or Cold?(数学)

UVA 1524 - Hot or Cold?

题目链接

题意:给一个一元n次方程,带入x表示时间,f(x)表示温度,现在要求[s, e]的平均温度

思路:平均温度就是 总温度/ (e - s),画出曲线,可以发现温度总和为[s,e]上区间与x轴围成的面积,那么利用f(x)的原函数就能求面积了

代码:

#include <cstdio>
#include <cstring>
#include <cmath>

const int N = 105;

int n;
double a[N], s, e;

double F(double x) {
    double ans = 0;
    for (int i = 0; i <= n; i++)
	ans += a[i] * pow(x, i + 1);
    return ans;
}

int main() {
    int cas = 0;
    while (~scanf("%d", &n) && n) {
	for (int i = n; i >= 0; i--) {
	    scanf("%lf", &a[i]);
	    a[i] = a[i] / (i + 1);
	}
	scanf("%lf%lf", &s, &e);
	printf("%.3lf\n", (F(e) - F(s)) / (e - s));
    }
    return 0;
}

UVA 1524 - Hot or Cold?(数学)

时间: 2025-01-18 01:35:45

UVA 1524 - Hot or Cold?(数学)的相关文章

UVa 1524 - Hot or Cold?

题目:给你一个温度随时间的多项式函数,计算某一时间内的平均温度. 分析:数学题,微积分.直接对f(x)求积分得到f(x)的原函数F(x)+ C,C为某常数: 平均温度即为(F(e)- F(s))/ (e - s)= (F(e)+ C - F(s)- C)/ (e - s). 说明:╮(╯▽╰)╭. #include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #i

uva 467 - Synching Signals(暴力+数学)

题目连接:uva 467 - Synching Signals 题目大意:有n个红绿灯,给出红灯的时间t,那么该灯从0时刻开始就以2*t为周期绿黄红三灯交替,时间分别为t-5,5,t.问所这n个等从第一变为有一个灯不为绿灯开始,要多久才能变成所有的灯刚好都为绿灯.时间超过1小时输出unable to synch after one hour. 解题思路:一小时才3600秒,枚举秒数判断即可. #include <cstdio> #include <cstring> #include

uva 618 - Doing Windows(暴力+数学)

题目链接:uva 618 - Doing Windows 题目大意:给出电脑桌面的大小W和H,现在在桌面上有4个窗口,给出窗口的初始大小,问说能不能通过调整各个窗口的大小(长宽比例不能变)使得4个屏幕刚好占满整个屏幕,并且互相不覆盖. 解题思路:其实可以直接暴力出所有情况,不过细节比较多,而且要考虑所有的细节. 我的做法的是先将4个窗口缩小至最小的状态,然后枚举左下角的窗口, 有四种可能 蓝色部分为另外枚举的窗口,3,4种情况要分别保证说长.宽相等,然后S部分就是子问题. 所以用一个二进制数来表

uva live 4123 Glenbow Museum 数学递推

// uva live 4123 Glenbow Museum 数学递推 // // 题目大意: // // 对于一个边平行于坐标轴的多边形,我们可以用一个序列来描述,R和O,R表示 // 该顶点的角度为90度,O表示该定点的角度为270.给定序列的长度.问能由这些RO序 // 列组成的星型多边形(内部存在一个点可以看到所有的节点的多边形)的方法数有多少. // // 解题思路: // // 顶点数一定是序列的长度.n小于4无法组成多边形.n为奇数的时候也不行.设R的个数有 // x个,O的个数

Uva 1069 Always an Integer ( 数学 )

Uva 1069 Always an Integer ( 数学 ) #include <cstdio> #include <cstring> #include <algorithm> #include <cctype> using namespace std; typedef long long LL; #define MAXN 105 #define CLR( a, b ) memset( a, b, sizeof(a) ) LL c[ MAXN ], d

uva 11490 - Just Another Problem(数学)

题目链接:uva 11490 - Just Another Problem 题目大意:有n个士兵,要排列成一个方阵,要求方阵尽量大,于是在方正的中间会空出两个正方形的区域,空出来的局域要求厚度相同,即正方形的四条边向相应方向均再有x行或者列. 解题思路:根据题意可以知道x(6x+7r)=n,x为厚度,r为正方形的边长.接着枚举x,x是n的因子. #include <cstdio> #include <cstring> #include <cmath> typedef l

UVA 12723 Dudu, the Possum --数学期望

题意不说了,概率和期望值要分开处理,可以先算出到达每层的概率,然后再乘以每层的期望,每层的期望是固定的.也可以从后往前直接推期望. #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; #define N 100007 double ex[516]; double dp[

Uva 1315 - Creaz tea party ( 数学 + 规律 )

Uva 1315 - Creaz tea party (  数学 + 规律 ) 题意: 一个环,围在一个坐了N个人.每次操纵可以交换相邻的两个人的位置.求最少需要交换几次,可以变为逆序. 这里的逆序指的是原来在A左边的人在A的右边,在A右边的在A的左边. 分析: 如果是线性的,,,果断类似冒牌排序(n)(n-1)/2 但是这里是环,推了推但是推不出结果..结论是将环分为两段线性的序列,线性的满足上面的公式. 如:     1 2 3 4 5  线性:  5 4 3 2 1  ( 10次 ) 环状

uva 12230 - Crossing Rivers(求数学期望)

利用了数学期望的线性性质:有线个随机变量之和的数学期望的关于每个随机变量的期望之和: 由于过每条河的时间为L / V和3L / V的均匀分布,因此期望过河时间为2L / V. #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n;double d; int main() { int kase=0; while(scanf("%d%lf",&a