本文主要是介绍2013年北京师范大学新生程序设计竞赛网络赛--I. nonodog,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
I. nonodog
众所周知,nonopanda是不禁冻的,当附近冷到一定程度的时候就会冻成nonodog…所以他每天都宅在家里烤火…但是很郁闷的是他还是个吃货…所以每天都要冒着严寒出去吃饭…经过一番权衡,他决定从明天(第1天)开始叫外卖……每天晚上8点外卖都会被准时的送到nonopanda家门口,nonopanda会冒着冻成狗的风险打开门,收下外卖,然后关上门边吃外卖边烤火……
为了方便表示,我们将nonopanda所在的区域抽象为一个二维平面。已知nonopanda的家住在(0,0)点,他所在的区域有N个冷空气团,在第k天的晚上8:00,第i个冷空气团所在的位置为(xi+vxi*k, yi+vyi*k)。记ri表示nonopanda打开门时第i个冷空气团到他家的距离,nonopanda感受到的第i个冷空气团的寒冷程度为Ci/ri2,他感受到的总寒冷程度为所有冷空气团的寒冷程度的总和,当他感受到的总寒冷程度超过T时他就会冻成狗,问nonopanda第一次被冻成狗是在第几天。
Input
输入的第一行为两个正整数N,T,接下来N行每行五个整数xi,yi,vxi,vyi,Ci。1≤N, T, Ci≤1000,-1000≤xi,yi,vxi,vyi≤1000。
Output
如果nonopanda永远不会冻成狗,则输出"Nono/Stay Panda";否则输出一个正整数表示nonopanda在叫外卖后第一次被冻成狗是在第几天。
Sample Input
2 5 -10 0 1 0 100 0 8 0 -1 80
Sample Output
3
#include <stdio.h>
int main()
{int i , k , n , t , a[1002][5];double now ;scanf("%d %d", &n, &t);for(i = 1 ; i <= n ; i++){scanf("%d %d %d %d %d", &a[i][0], &a[i][1] , &a[i][2] , &a[i][3] , &a[i][4]);}for(k = 1 ; ; k++){now = 0 ;for(i = 1 ; i <= n ; i++){now += ( a[i][4] *1.0 / ( (a[i][0] + a[i][2]*k)*(a[i][0] + a[i][2]*k) + (a[i][1]+a[i][3]*k)*(a[i][1]+a[i][3]*k) ) );}if(now > t){printf("%d\n", k);break;}if(k > 2000){printf("Nono/Stay Panda\n");break;}}return 0;
}
这篇关于2013年北京师范大学新生程序设计竞赛网络赛--I. nonodog的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!