physics---hdu5826(积分)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5826

题意:有n个小球在一条直线上滚动,起始位置为xi, 方向为di(-1往左走,1往右走),初始速度为 vi; 这n个球的加速度ai和vi的关系是 ai * vi = C, C是已知常数;

n个球可能会发生碰撞,碰撞为完全弹性碰撞。然后给你q个询问,每次问你t秒后第 k 小 的速度是多少;

碰撞为完全弹性碰撞,即速度交换,但是大小不变,所以我们可以忽略碰撞,也可以忽略小球的位置以及运动方向;

让求t秒后的第k小的速度,其实就是求初始时第k小的速度t秒后变为多少;因为v是越来越大的(题中说了a和v同向的),所以a是越来越小的,

当一个球A的起始速度<另一个球B时,那么A的速度最大也就是和球B的速度相等,永远不会超过球B的速度;

所以我们现在要考虑的就是已知初速度 v0 求 t 秒后的速度 v 其中加速度 a 和速度 v 的关系是 av=C;

a = dv/dt = C/v

-----> vdv = Cdt

两边同时积分v是从v0-V,t是从0到t

-----> [v*v/2](v0---v) = Ct(0----t)

-----> v = sqrt(2*C*t+v0*v0);

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;

#define INF 0xfffffff
#define N 100050
typedef long long LL;

int v[N];

int main()
{
    int T;
    scanf("%d", &T);
    while(T--)
    {
        int n, C, x, d;

        scanf("%d %d", &n, &C);

        for(int i=1; i<=n; i++)
            scanf("%d %d %d", &v[i], &x, &d);

        sort(v+1, v+n+1);

        int q, t, k;

        scanf("%d", &q);

        for(int i=1; i<=q; i++)
        {
            scanf("%d %d", &t, &k);
            double ans = sqrt(2.0*C*t + 1.0*v[k]*v[k]);
            printf("%.3f\n", ans);
        }
    }
    return 0;
}

时间: 2024-10-20 10:38:25

physics---hdu5826(积分)的相关文章

hdu 5826 physics (物理数学,积分)

physics Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 817    Accepted Submission(s): 454 Problem Description There are n balls on a smooth horizontal straight track. The track can be considere

hdu-5826 physics(数学)

题目链接: physics Time Limit: 6000/3000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Problem Description There are n balls on a smooth horizontal straight track. The track can be considered to be a number line. The balls can be consider

二维码扫码积分系统定制开发

微信积分系统 二维码扫码积分系统定制开发找丽姐[158.1816.6626/电微]二维码营销模式系统定制开发 微信扫二维码营销系统开发 扫码领积分系统开发 一.如何实现扫二维码领红包功能? 1.使用扫描二维码领取红包对活动进行设置,包括红包数量.红包金额.促销地区.中奖概率等. 2.将生成的二维码赋到商品上面并赋涂层,一方面可以起到保证二维码的一次性,另一方面也可以引起消费者的好奇心. 3.通过手机微信打开扫一扫,扫码商品二维码关注公众号并领取红包,如果参与分享还可以获得抽奖的机会. 二.微信扫

完成打印购物小票并计算积分

import java.util.Scanner; /** * @author 蓝色以太 * 完成打印购物小票并计算积分 */ public class ShoppingReceipt { public static void main(String[] args) { Scanner sc=new Scanner(System.in); final int NUM1=245,NUM2=570,NUM3=320; System.out.println("请输入购买T恤数量:"); in

[BZOJ 1502][NOI2005]月下柠檬树(自适应Simpson积分)

Description 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理. 李哲是一个喜爱思考的孩子,当他看到在月光的照射下柠檬树投在地面上的影子是如此的清晰,马上想到了一个问题:树影的面积是多大呢? 李哲知道,直接测量面积是很难的,他想用几何的方法算,因为他对这棵柠檬树的形状了解得非常清楚,而且想好了简化的方法. 李哲将整棵柠檬树分成了 n 层,由下向上依次将层编号为 1,2,...,n.从第

积分系统开发总结

1.把握需求. 例如切月份,实际上是一个代价特别大的功能,因为若要对以往的月份评分,就要保留以往月份一整套的数据.当时并没有考虑到这点就开始做了,最后才发现根本做不了.这是最大的一个失误. 后来发现做不了之后,就想着把切月份功能做成一个展示历史数据的功能.但是之后发现也没必要这样做,因为用户是不需要查这些历史记录的.虽然有权知道,但是并不是一个必须的功能.而且也不该在这里做,应该在一个专门展示历史记录的地方做.并且历史记录有历史记录的逻辑,我依据谁给谁评得分得出的下属历史记录虽然行得通,但是依据

微信分享获得积分 jquery微信分享获得积分 原理

//发送给好友成功 res.err_msg=="send_app_msg:ok" //分享到朋友圈成功 res.err_msg=="share_timeline:ok" //分享到微博成功 res.err_msg=="share_weibo:ok" 2 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { // 发送给好友 WeixinJSBridg

Codeforces 444A DZY Loves Physics(图论)

题目链接:Codeforces 444A DZY Loves Physics 题目大意:给出一张图,图中的每个节点,每条边都有一个权值,现在有从中挑出一张子图,要求子图联通,并且被选中的任意两点,如果存在边,则一定要被选中.问说点的权值和/边的权值和最大是多少. 解题思路:是图论中的一个结论,最多两个节点,所以枚举两条边就可以了.我简单的推了一下,2个点的情况肯定比3个点的优. 假设有3个点a,b,c,权值分别为A,B,C 现a-b,b-c边的权值分别为u,v 那么对于两点的情况有A+Bu,B+

Physics 碰撞检测回调方法出错或者没有效果解决方法

1.碰撞检测回调方法编译出错; auto *listener = EventListenerPhysicsContact::create(); listener->onContactBegin = CC_CALLBACK_1(HelloWorld::onContactBegin,this); 在3.0rc版本中回调函数的参数变为一个,不能使用原来的两个参数; bool HelloWorld::onContactBegin(PhysicsContact& contact) { auto spr

一物一码积分商城系统对商家有什么价值

一物一码积分商城系统功能介绍 (1)中奖规则设置 一物一码积分商城系统的上线和下线时间可精准把控,让活动在计划中安全开展!传统促销活动会经常出现经费预算超额导致的大量问题,所以中奖规则设置功能应运而生.您可以通过一物一码积分商城系统实时调控活动的中奖奖品数量.中奖率,使活动经费不仅能精确预算,并且在活动过程中能可控可调! (2)商品信息查询 奖品信息查询,类似于商品防伪.消费者通过一物一码积分商城系统抽奖查询商品的生产厂商.地址.时间,了解商品的真假信息,可对每一批的商品进行防伪信息的单独配置,