Nspyia


私信TA

用户名:nspyia

访问量:14256

签 名:

等  级
排  名 1396
经  验 2823
参赛次数 2
文章发表 14
年  龄 0
在职情况 学生
学  校 yb
专  业

  自我简介:

解题思路:
   

    基本的博弈都可以用递归来求解,这道题由于想不到有效解法,则用 递归+优化

    1. 尝试所有走法,把局面交给对手,如果对手的局面是必输,则当前局面必胜;

    2. 尝试所有走法后,还是赢不了那 当前局面比输

    

    递归思路:

    dfs(局面s){

      尝试走一步s变成s1,把s1交给对手

         如果存在一个s1局面必输:返回赢了;

      返回必输;

    }


    不优化 只有50%成绩

    优化思路:1.优先当前可选的数字大的卡片(数字越大,则约倍数在100内越少,所以递归的层数就越少)

                    2.常数优化,递归之前预处理每张卡片的下一次可选卡片集合


注意事项:

    这个C语言网不知为什么代码AC不了一直超时17%,我去蓝桥杯官网提交了两次都600msAC了

  1.png

参考代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <stack>
#define _for(i,a,b) for(int i=a;i<b;i++)
#define _unfor(i,a,b) for(int i=a;i>=b;i--)
#define mset(a,val,n) for(int i=0;i<n;i++)a[i]=val;
#define FO freopen("out.txt","w",stdout)
#define RI(a) scanf("%d",&a)
using namespace std;
typedef long long LL;

int a[111],b[111],c='A';
vector<int> G[111];
int ri(){
    int x=0;
    while(!isdigit(c))if((c=getchar())=='\n')return 0;
    while(isdigit(c)){x=x*10+c-'0';c=getchar();}
    return x;
}
int dp(int i){
    if(!a[i])return 0;
    a[i]--;
    int len=G[i].size();
    _for(k,0,len){
        int j=G[i][k];
        if((!(i%j)||!(j%i))&&a[j])
        if(!dp(j)){a[i]++;return 1;}
    }
    a[i]++;
    return 0;
}
int main(){

    int x;
    while(x=ri()){
        a[x]++;
        if(c=='\n')break;
    }
    //预处理
    _for(i,1,101)
        _unfor(j,100,1)if((!(i%j)||!(j%i))&&a[j])
            G[i].push_back(j);
    //
    while(x=ri()){
        b[x]++;
        if(c=='\n')break;
    }
    _for(i,1,101)if(b[i])
        if(!dp(i)){printf("%d\n",i);return 0;}
    printf("%d\n",-1);
    return 0;
}


 

0.0分

6 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

朱朱同学。一个一个来,你他妈的那个垃圾,我他妈真的无语呀,凭什么?凭什么?凭什么你个垃圾?都是你你个小瘪三,就你拍你会写代码,你他妈没实力,就他妈别逼逼,好不好?我无语了好吧。再见,小明,上他妈你谁呀你?这个
2023-04-23 17:53:17
不是不是我说这不对吧?你他妈你个傻逼垃圾袋吗我他妈真的无语他妈你个垃圾玩意儿我真的他妈很无语啊你知道吗你就你他妈就你们词汇呀我他妈你这么垃圾就别给我写了吗天天逼逼逼的妈妈天天写你妈,真的无语,你个什么垃圾东西,我他妈就你也配啊,天天逼逼逼,妈的,就你瞎逼逼呀,你个小逼,我他妈真的无语,我他妈一群死你妈逼的,我他妈把你鸡巴鸡巴大家不要去超市买他买垃圾东码真的无语
2023-04-23 17:49:13
他的输入文件应该增加了一些,卡数据量了...
2019-11-30 20:12:44
  • «
  • 1
  • »