首页 > ACM题库 > HDU-杭电 > HDU 3402-Ants run![解题报告]HOJ
2014
03-23

HDU 3402-Ants run![解题报告]HOJ

Ants run!

问题描述 :

Professor Yang likes to play with ants when he is free.
This time, Professor Yang caught several ants after finishing his lecture for freshmen. At the beginning of the game, he puts N ants around a plate and numbers them in clockwise order. The ants are so obedient that they run clockwise under the guide of Professor Yang on the boundary of the plate which is a circle. At first the distances of every two adjacent ants are the same around the boundary of the circle. When one ant catches up with its previous ant, the game is over. Knowing the speed of ants, Professor Yang wants you to help him to change the order of the ants to make the game last longer.

输入:

The first line of the input is T (no more than 100), which stands for the number of test cases you need to solve.
Each test case begins with N and R, representing the number of ants participating the game is N ( N <= 100000)and the radius of the circle is R(R <= 100000) cm. The next line lists N integers and the i-th number is the speed (cm/s) of the i-th ant in clockwise direction. All these N numbers are positive integer not larger than 1000.

输出:

The first line of the input is T (no more than 100), which stands for the number of test cases you need to solve.
Each test case begins with N and R, representing the number of ants participating the game is N ( N <= 100000)and the radius of the circle is R(R <= 100000) cm. The next line lists N integers and the i-th number is the speed (cm/s) of the i-th ant in clockwise direction. All these N numbers are positive integer not larger than 1000.

样例输入:

2
3 1
1 1 1
2 1
1 2

样例输出:

Inf
3.142

#include<iostream>
#include<cstdio>
#include<cstring>
#include<ctime>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
typedef double db; 
const db PI = acos( - 1.0) ;
const int maxn = 100860;
int v[ maxn ];
int n, r;

void get(){
 scanf("%d%d", &n, &r);
 int i;
 for(i = 0; i < n; ++ i) scanf("%d", v + i);
}

void work(){ 
 sort( v, v + n );
 int ma = 0;
 int i;
 for(i = 0; i < n - 1; ++ i) ma= max( ma, v[ i + 1] - v[ i ] );
 if( ma == 0) puts("Inf");
 else printf("%.3f\n", 2.0 * PI * r / n / (db)ma);
}

int main(){
 int T;
 cin >> T;
 while(T --){
 get();
 work(); 
 }
 	return 0;
}

  1. #include <stdio.h>
    int main()
    {
    int n,p,t[100]={1};
    for(int i=1;i<100;i++)
    t =i;
    while(scanf("%d",&n)&&n!=0){
    if(n==1)
    printf("Printing order for 1 pages:nSheet 1, front: Blank, 1n");
    else {
    if(n%4) p=n/4+1;
    else p=n/4;
    int q=4*p;
    printf("Printing order for %d pages:n",n);
    for(int i=0;i<p;i++){
    printf("Sheet %d, front: ",i+1);
    if(q>n) {printf("Blank, %dn",t[2*i+1]);}
    else {printf("%d, %dn",q,t[2*i+1]);}
    q–;//打印表前
    printf("Sheet %d, back : ",i+1);
    if(q>n) {printf("%d, Blankn",t[2*i+2]);}
    else {printf("%d, %dn",t[2*i+2],q);}
    q–;//打印表后
    }
    }
    }
    return 0;
    }

  2. 博主您好,这是一个内容十分优秀的博客,而且界面也非常漂亮。但是为什么博客的响应速度这么慢,虽然博客的主机在国外,但是我开启VPN还是经常响应很久,再者打开某些页面经常会出现数据库连接出错的提示

  3. 你的理解应该是:即使主持人拿走一个箱子对结果没有影响。这样想,主持人拿走的箱子只是没有影响到你初始选择的那个箱子中有奖品的概率,但是改变了其余两个箱子的概率分布。由 1/3,1/3 变成了 0, 2/3