UVA - 10061 How many zero's and how many digits ?

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19099

给定一些点,求构成三角形最大面积,并且这个三角形不能不能包含其他点(在边上也不行)。

因为数据范围很小,所以直接枚举就好,并且还把面积公式告诉了我们,判断点在三角形内的方法是,这个点与其他顶点的面积之和是否等于这个三角形的面积。

#include<cstdio>
#include<cmath>
struct point
{
    char z;
    int x,y;
}p[20];

double area(point a,point b,point c)
{
    return fabs(0.5*((c.y-a.y)*(b.x-a.x)-(b.y-a.y)*(c.x-a.x)));
}

bool check(point a,point b,point c,point d)
{
    if((area(a,b,d)+area(b,d,c)+area(a,d,c))==area(a,b,c)) return 1;
    else return 0;
}

int main()
{
    //freopen("a.txt","r",stdin);
    int n,i,j,k,l;
    while(~scanf("%d",&n))
    {
        if(n==0) break;
        getchar();
        for(i=0;i<n;i++)
        {
            scanf("%c %d %d",&p[i].z,&p[i].x,&p[i].y);
            //printf("%c %d %d\n",p[i].z,p[i].x,p[i].y);
            getchar();
        }
        double s,sum=0;
        char a,b,c;
        for(i=0;i<n;i++)
        {
            for(j=i+1;j<n;j++)
            {
                for(k=j+1;k<n;k++)
                {
                    s=area(p[i],p[j],p[k]);
                    if(s>sum)
                    {
                        for(l=0;l<n;l++)
                        {
                            if(l!=i&&l!=j&&l!=k&&check(p[i],p[j],p[k],p[l])) break;
                        }
                        if(l==n)
                        {
                            sum=s;
                            a=p[i].z;
                            b=p[j].z;
                            c=p[k].z;
                        }
                    }
                }
            }
        }
        printf("%c%c%c\n",a,b,c);
    }
    return 0;
}

UVA - 10061 How many zero's and how many digits ?

时间: 2024-10-04 09:10:08

UVA - 10061 How many zero's and how many digits ?的相关文章

UVA 10061 How many zero&#39;s and how many digits ? (m进制,阶乘位数,阶乘后缀0)

题意:给出两个数字a和b,求a的阶乘转换成b进制后,输出(1)后缀中有多少个连续的0? (2)有多少位? 思路:逐个问题解决. 设a!=k.  k暂时不用直接转成b进制. (1)阶乘后缀0问题.先看这个十进制后缀0的例子:http://www.cnblogs.com/xcw0754/p/4604473.html 解法差不多,稍变化. 首先将b分解成若干质数(比如8={2*2*2})保存在一个集合A中(注意自然数的质数分解是唯一的),只要有一个序列A就能构成一个0,因为满b就进位,b可以表示成10

UVA - 10061 How many zero&amp;#39;s and how many digits ?

n!=x*b^y, 当x为正整数时,最大的y就是n!末尾0的个数了, 把n,b分别拆成素因子相乘的形式: 比如, n=5,b=16 n=5,b=2^4, 非常明显,末尾0的个数为0 10进制时,n!=a*10^x b进制时,n!=c*b^y 非常明显,n!的位数就是最大的x+1 这里计算我用了log,精度设置为1e-9 #include<iostream> #include<cstdio> #include<vector> #include<cstring>

uva 10061(数学)

题解:题目要在b进制下输出的是一个数字阶乘后有多少个零,然后输出一共有多少位.首先计算位数,log(n)/log(b) + 1就是n在b进制下有多少位,而log有个公式就是log(M×N) = logM + logN,n! 的位数用公式可以化为( log(1) + log(2) +...+log(n) ) / log(b) + 1,为了精确再加 10^-6.阶乘后的零的数量计算是根据进制数的最大质因数和其数量确定的,比如10 = 2 × 5,所以10进制的最大质因数是5,数量是num = 1,例

UVA题目分类

题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494 - Kindergarten Counting Game 414 - Machined Surfaces 490 - Rotating Sentences 445 - Marvelous Mazes

n!在k进制下的后缀0

问n! 转化成k进制后的位数和尾数的0的个数.[UVA 10061 How many zeros and how many digits?] Given a decimal integer number you will have to find out how many trailing zeros will be there in its factorial in a given number system and also you will have to find how many di

UVA 562 Dividing coins --01背包的变形

01背包的变形. 先算出硬币面值的总和,然后此题变成求背包容量为V=sum/2时,能装的最多的硬币,然后将剩余的面值和它相减取一个绝对值就是最小的差值. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; #define N 50007 int c[102],d

UVA 10341 Solve It

Problem F Solve It Input: standard input Output: standard output Time Limit: 1 second Memory Limit: 32 MB Solve the equation: p*e-x + q*sin(x) + r*cos(x) + s*tan(x) + t*x2 + u = 0 where 0 <= x <= 1. Input Input consists of multiple test cases and te

UVA 11014 - Make a Crystal(容斥原理)

UVA 11014 - Make a Crystal 题目链接 题意:给定一个NxNxN的正方体,求出最多能选几个整数点.使得随意两点PQ不会使PQO共线. 思路:利用容斥原理,设f(k)为点(x, y, z)三点都为k的倍数的点的个数(要扣掉一个原点O).那么全部点就是f(1),之后要去除掉共线的,就是扣掉f(2), f(3), f(5)..f(n).n为素数.由于这些素数中包括了合数的情况,而且这些点必定与f(1)除去这些点以外的点共线,所以扣掉.可是扣掉后会扣掉一些反复的.比方f(6)在f

[UVa] Palindromes(401)

UVA - 401 Palindromes Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description A regular palindrome is a string of numbers or letters that is the same forward as backward. For example, the string "ABCDED