Enumeration? HDU - 4224 ( 题意超级难理解)

In mathematics and theoretical computer science, the broadest and most abstract definition of an enumeration of a set is an exact listing of all of its elements (perhaps with repetition).
If we are blocked by a tricky but small issue, a good way is stop bothering and calculating, and just enumerates all the possible result. Here is such a case. iSea is fond of coins recently, now he gets three coins, after throwing all of them again and again, he finds some of those coins are not side equivalent, because the times it faces up and faces down are not equal. Here we assume iSea has thrown the coin enough times that we can treat this as random happened and use the number to count probability.
iSea is a typical Libra, placing in equilibrium at the first position always. He want to distribute the probability to the three coins, and each time he chooses a coin from them with this probability, throws the coin, records facing up or down, and this time after summing up all the times whether the coins face up or down the ideal probable number should be perfectly equal. Again, is this possible? Remember the probability for each coin can’t be zero.

Input

The first line contains a single integer T, indicating the number of test cases.
Each test case includes Six integers Up1, Down1, Up2, Down2, Up3, Down3, indicating the times facing up and down of the first, second and third coin, respectively.

Technical Specification
1. 1 <= T <= 10 000
2. 1 000 000 <= Up, Down <= 2 000 000

Output

For each test case, output the case number first, if possible, output "Yes", otherwise output "No" (without quote).

Sample Input

2
1000000 1000001 1000000 1000002 1000000 1000003
1000000 1000001 1000000 1000002 2000000 1000003

Sample Output

Case 1: No
Case 2: Yes
#include<cstdio>
using namespace std;

typedef long long ll;
const int maxn=1e5+10;
/*
题意不是很好理解,<---- 不能过于相信别人,毕竟都不理解
题意就是 三个硬币 每个硬币向上的概率 已知,问你能不能 让最后的期望为 times/2
所以就是 如果三个值都大于,或都小于1/2的话,肯定是不行了,如果
有大于 1/2的,有小于 1/2的;或者都是 1/2,这样最后就可以出现 1/2了
*/

int main(){
    int T;
    scanf("%d",&T);
    for(int kase=1;kase<=T;kase++){
        int a1,a2,b1,b2,c1,c2;
        scanf("%d %d %d %d %d %d",&a1,&a2,&b1,&b2,&c1,&c2);
        int f1=0,f2=0,f3=1;
        if(a1!=a2||b1!=b2||c1!=c2)f3=0;
        if(a1>a2)f1=1;if(a1<a2)f2=1;
        if(b1>b2)f1=1;if(b1<b2)f2=1;
        if(c1>c2)f1=1;if(c1<c2)f2=1;
        printf("Case %d: ",kase);
        if(f3||(f1&&f2)) printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36424540/article/details/81103162
今日推荐