标签:
题目链接:hdu_5826_physics
题意:
给你一些点的速度和初始位置,还有方向,这些速度和加速度满足v*a=c,然后又q个询问,问第t秒第K小的速度是多少
题解:
将物理公式转换为v与t的关系,然后将初始的v排序后直接输出就行
公式为v=sqrt(2*c*t+v02)
1 #include <cstdio> 2 #include <algorithm> 3 #include <cmath> 4 using namespace std; 5 const int N = 1e5 +5; 6 double v[N]; 7 int main() 8 { 9 int t; 10 scanf("%d", &t); 11 while (t--) 12 { 13 int n, c, x, d, q; 14 scanf("%d%d", &n, &c); 15 for (int i = 1; i <= n; i++) scanf("%lf%d%d", &v[i], &x, &d); 16 sort(v + 1, v + 1 + n); 17 scanf("%d", &q); 18 for (int i = 1; i <= q; i++) 19 { 20 scanf("%d%d", &x, &d); 21 printf("%.3f\n", sqrt(2.0 * c * x + v[d] * v[d])); 22 } 23 } 24 return 0; 25 }
标签:
原文地址:http://www.cnblogs.com/bin-gege/p/5762545.html