zoukankan      html  css  js  c++  java
  • TYVJ博弈论

    一些比较水的博弈论...(为什么都没有用到那什么SG呢....)

     

    TYVJ 1140  飘飘乎居士拯救MM

    题解:

      歌德巴赫猜想

     1 #include <cmath>
     2 #include <cstdio>
     3 
     4 int n, a, b, ta, tb;
     5 
     6 inline bool isPrime(int x){
     7     if (x==1) return true;
     8     for (int i=2; i<=sqrt(x); i++)
     9         if (!(x%i)) return false;
    10     return true;
    11 }
    12 
    13 inline int getTime(int x){
    14     if (isPrime(x)) return 1;
    15     if (isPrime(x-1)) return 2;
    16     if (x&1 && isPrime(x-2)) return 2;
    17     return x&1 ? 3 : 2;    
    18 }
    19 
    20 inline bool work(){
    21     scanf("%d %d", &a, &b);
    22     ta = b>a ? 1 : 0;
    23     ta += getTime(a), tb = getTime(b);
    24     return ta<=tb;
    25 }
    26 
    27 int main(){
    28     scanf("%d", &n);
    29     while (n--)
    30         if (work()) puts("YES");
    31         else puts("NO");
    32 }
    TYVJ 1140

     

    TYVJ 1420  红豆子和绿豆子

    题解:

      看完题后发现判断绿豆的奇偶就行了

      开始有个点WA了看了下数据遭吓到了...数据范围都不告诉简直坑

     1 #include <cstdio>
     2 #define isDig (48<=c&&c<=57)
     3 
     4 char c;
     5 bool cj;
     6 
     7 int main(){
     8     do 
     9         c = getchar();
    10     while (isDig);
    11 
    12     do 
    13         c = getchar();
    14     while (!isDig);
    15 
    16     do {
    17         if (isDig) cj = (c-48)&1;
    18         c = getchar();
    19     } while (isDig);
    20     
    21     puts(cj ? "Yes" : "No");
    22 }
    TYVJ 1420

     

    TYVJ 1567  吃糖果游戏

    题解: 

      数学归纳法:借用题解里的话

        设a=[2,3,7,8]
        设b=[1,4,5,6,9,10]
        如果两个数都可写为10i+a的形式,设吃掉了第一个数,留下的第二个数10i+a,这时你无论怎么分,分出来的两个数一定有一个属于10i+b的形式。
        而我们发现每个b都能写成两个a的形式。

        因此如果两个数都是10i+a的形式,经过一轮之后回到手里的还是10i+a,所以必败。
        但如果两个数中有一个数不是10i+a,这时可以把另外一个吃掉,然后把这个数分成两个10i+a,这时对方必败。

     1 #include <cstdio>
     2 #include <cstring>
     3 #define isDig (48<=c&&c<=57)
     4 #define win (c-48==2||c-48==3||c-48==7||c-48==8)
     5 
     6 char c;
     7 bool cj, anna;
     8 
     9 inline void work(){
    10     do 
    11         c = getchar();
    12     while (!isDig);
    13     
    14     do {
    15         if (isDig) cj = win;
    16         c = getchar();
    17     } while (isDig);
    18 
    19 
    20     do 
    21         c = getchar();
    22     while (!isDig);
    23     
    24     do {
    25         if (isDig) anna = win;
    26         c = getchar();
    27     } while (isDig);
    28     
    29     puts(cj&&anna ? "Shadow" : "Matrix67");
    30 }
    31 
    32 int main(){
    33     for (int i=0; i<10; i++)
    34         work();
    35 }
    TYVJ 1567

     

  • 相关阅读:
    elasticsearch 中的Multi Match Query
    activiti 流程部署的各种方式
    elasticsearch 嵌套对象之嵌套类型
    elasticsearch Java High Level REST 相关操作封装
    elasticsearch 字段数据类型
    ubuntu 安装 docker
    elasticsearch 通过HTTP RESTful API 操作数据
    facenet 人脸识别(二)——创建人脸库搭建人脸识别系统
    POJ 3093 Margaritas(Kind of wine) on the River Walk (背包方案统计)
    墨卡托投影, GPS 坐标转像素, GPS 坐标转距离
  • 原文地址:https://www.cnblogs.com/cjhahaha/p/3914534.html
Copyright © 2011-2022 走看看