poj 3440 java 吐槽

非常蛋疼的一道题,题目本身很简单,但是最后的输出结果太让人恶心了,

其中有三点需要注意的:

1.title单复数问题

2.title单复数后的空格数不一样

3.Case之间要有空行,但是最后个Case后不能有空行,这点太恶心了,开始一直没找着。。。直接循环输出回车,一直报错PE,

最后是代码:方便伸手党:

import java.text.DecimalFormat;
import java.util.Scanner;

public class Main{
    public static void main(String[]args)
    {
        int T,ca=0;
        Scanner s = new Scanner(System.in);
        for(T=s.nextInt();T>0;T--)
        {
            double n,m,t,c;
            double []A = new double[5];
            n=s.nextDouble();
            m=s.nextDouble();
            t=s.nextDouble();
            c=s.nextDouble();
            A[0]=t*t*n*m;
            A[1]=(t-c)*(t-c)*n*m+(c*(t-c)+c*c/4.0)*4+c*(t-c)*(n+m-4);
            A[2]=2*c*(t-c)*n*m-c*(t-c)*(n+m)+c*c*(n+m-2);
            A[4]=Math.PI*c*c/4*(n-1)*(m-1);
            A[3]=A[0]-A[1]-A[2]-A[4];
            System.out.println("Case "+ ++ca+":");
            DecimalFormat df = new DecimalFormat("0.0000");

            for(int i=1;i<=4;i++)
                System.out.println("Probability of covering "+i+(i==1?" tile  = ":" tiles = ")+df.format(A[i]/A[0]*100.0)+"%");
            if(T!=1){
                System.out.println();
            }
        }
    }
}
时间: 2024-10-14 13:15:36

poj 3440 java 吐槽的相关文章

poj 3440 Coin Toss(概率)

http://poj.org/problem?id=3440 大致题意:给出一个n*m的格子,每个格子的边长为t,随意抛一枚硬币并保证硬币的圆心在格子里或格子边上,硬币的直径为c,求硬币覆盖格子的个数的概率. 思路:高中的概率题,ms是几何概型.根据分别覆盖1,2,3,4个格子时圆心可分部的面积比上总面积就是答案. #include <stdio.h> #include <iostream> #include <algorithm> #include <set&g

POJ题目Java代码(一)

POJ 1001 Exponentiation import java.math.BigDecimal; import java.util.Scanner; public class Poj1001 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ BigDecimal bigDecimal = new BigDecimal(sc.next())

【POJ 3440】 Coin Toss(概率公式)

[POJ 3440] Coin Toss(概率公式) Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 3591   Accepted: 957 Description In a popular carnival game, a coin is tossed onto a table with an area that is covered with square tiles in a grid. The prizes ar

poj 3440 (概率)

链接:poj 3440 题意:在m*n的网格盘上,每个格子大小都是t*t, 现将一个直径为c的硬币扔在向网格盘上, 求硬币覆盖1,2,3,4个格的概率分别为多少 注:圆心只可能落在在网格盘上 分析:问题可转化为求覆盖1,2,3,4个格硬币圆心活动的面积 分别推出公式即可求解 注意输出格式... #include<stdio.h> #include<math.h> #define PI 4.0*atan(1.0) int main() { int T,k; double m,n,t,

[ACM] POJ 3440 Coin Toss (几何概率)

Coin Toss Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 3019   Accepted: 817 Description In a popular carnival game, a coin is tossed onto a table with an area that is covered with square tiles in a grid. The prizes are determined by t

POJ 3440 Coin Toss

高中概率的几何概型,这也叫作题,不过输出真的很坑. 题目大意: n*m个边长为t的正方形组成的矩形.往矩形上抛一个直径为c的硬币,问覆盖1,2,3,4个矩形的概率为多少? 解题思路: 计算出覆盖1,2,3,4个矩形时硬币圆心可以在的位置区域.就能求出概率了~ 下面是代码: #include <set> #include <map> #include <queue> #include <math.h> #include <vector> #incl

poj 1750 java

这道题很坑爹,稍微不注意不是PE就是RA要么TLE. 先说下题意: 题干描述的不是很清晰,主要是通过题目给的例子自己总结的,(这个很关键,没找着好的规律永远会TLE): 规律:后面一个字符串和前面一个字符串比较,如果前几位相同的字符数量大于空格的数量,那么空格的数量加1,如果前几位相同字符数量小于空格的数量,那么空格数量变为相同字符的数量. 网上用java实现的代码基本没找着,没办法,之前poj上一共就4位前辈用java Ac的,只能自己动手了, 开始我直接暴力比较直接打印,最后把RA解决了,但

poj 3157 Java vs C++ 模拟

题意: 将java和c++中的变量名相互转换,比如:long_and_mnemonic_identifier装换为longAndMnemonicIdentifier. 思路: 直接模拟遍历替换,陷阱很多.. 代码: //poj 3157 //sep9 #include <iostream> using namespace std; char s[256],ans[256]; void deal() { int i,j; int style1=0,style2=0; for(i=0;s[i]!=

poj 1001 java大精度

import java.io.* ; import java.math.* ; import java.util.* ; import java.text.* ; public class Main { public static void main(String[] args) { Scanner cin=new Scanner (System.in) ; BigDecimal A; int B ; while(cin.hasNext()){ A=cin.nextBigDecimal() ;