hdu 2060 Snooker(数学题)

题意:桌上有n个球,一人得分为a,另一人为b,问如果第一个人将n个球都打进洞后,得分能否超过(或等于)第二个人。

分析:1。如果n>6,那么桌上有6个彩球和n-6个红球,每打进一个红球都要补一个黑球,所有打进n个球的得分为

(n-6)*1+(n-6)*7+2+3+4+5+6+7

2.如果n<=6,那么桌上剩下n个分值大的求,例如n=1时,那么剩下一个黑球,此时打进n个球的得分为

(7+7-n+1)*n/2。

代码:

#include<cstdio>
#include<cstring>
using namespace std;

int main()
{
    int n,a,b;
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d%d",&n,&a,&b);
        if(n>6)
        {
            if(a+(n-6)*1+(n-6)*7+2+3+4+5+6+7>=b)
            {
                printf("Yes\n");
            }
            else
                printf("No\n");
        }
        else
        {
            if(a+(7+7-n+1)*n/2>=b)
                printf("Yes\n");
            else
                printf("No\n");
        }
    }
    return 0;
}

时间: 2024-11-09 00:16:35

hdu 2060 Snooker(数学题)的相关文章

hdu 5587 Array 数学题

Array Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5587 Description Vicky is a magician who loves math. She has great power in copying and creating.One day she gets an array {1}. After that, every day she cop

HDU 1018(数学题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1018 Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 27548    Accepted Submission(s): 12526 Problem Description In many applications ve

HDU 6467 简单数学题 【递推公式 &amp;&amp; O(1)优化乘法】(广东工业大学第十四届程序设计竞赛)

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6467 简单数学题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 308    Accepted Submission(s): 150 Problem Description 已知 F(n)=∑i=1n(i×∑j=inCij) 求 F(n) m

HDU 5019 简单数学题

这道题是说给定A和B,求第C大的公约数. 我们最长求的就是最大公约数了,也就是通常用的GCD算法.但是现在要求第C大的公约数,我们可以想见如果令第C大的公约数为x,最大公约数为g的话,那么x|g的,为什么呢? 我们可以直观的理解,最大公约数其实就是A和B分别进行素因子分解之后,能取到公共素因子乘起来得到的.而对于任意A.B的公约数,那么肯定包含了部分的最大公约数所包含的素因子,因此x|g. 于是要求第C大的公约数,只需要枚举g的因子就行了,我们知道求一个数的因子情况,是可以进行O(sqrt(n)

HDU 1722 Cake 数学题

#include<iostream> #include<stdio.h> #include<math.h> using namespace std; long long gcd(long long a,long long b) { return b==0?a:gcd(b,a%b); } int main() { long long a,b; while(cin>>a>>b)//这道题居然是多CASE= =,题目也不给说一声 cout<<

HDU 4279 Number(数学题,找规律)

题目大意: Here are two numbers A and B (0 < A <= B). If B cannot be divisible by A, and A and B are not co-prime numbers, we define A as a special number of B. For each x, f(x) equals to the amount of x's special numbers. For example, f(6)=1, because 6

hdu 2060

ps:天了噜...WA了无数次...结果就是粗心了...先是YES和Yes的错,再后来是运算的错....想死 题意:先给出N,接下来是N个数据,给出a,b,c,分别是桌面剩下的球数,p的分数,q的分数,P先打,一杆清.问能不能追上... 代码: #include "stdio.h" int main(){ int N,i,k,a,b,c; int dp[]={0,7,13,18,22,25,27}; scanf("%d",&N); while(N--){ s

HDU 1220 简单数学题

题目大意是 在魔方上找到有多少对小立方块它们之间连接的点不超过两个 因为任意两个立方块之间相连的点就只有0,1,2,4 这样4种情况 那么我们只需要考虑总共的组成立方块对数 sum = C(2 , n*n*n)  = (n*n*n*(n*n*n-1))/2  在n*n*n个立方块中任选两个组合 然后减去邻接4个点的情况 4个点邻接只会出现在两个立方块有公共平面的情况 我们可以考虑4种情况,用a[4]数组保存 8个角上的立方块 , 每个都有3个立方块和其邻接 12个棱上(除去顶角) , 共有12*

hdu2060-2062

hdu 2060 斯诺克,读懂题意直接模拟 1 #include<stdio.h> 2 3 int main(){ 4 int N; 5 int i,a[21]; 6 a[0]=0; 7 for(i=1;i<=6;i++){ 8 a[i]=(15-i)*i/2; 9 } 10 for(i=7;i<=21;i++){ 11 a[i]=a[i-1]+8; 12 } 13 while(scanf("%d",&N)!=EOF){ 14 for(i=1;i<