首页 > 其他分享 >牛客小白月赛70

牛客小白月赛70

时间:2023-04-09 15:34:46浏览次数:30  
标签:二进制位 return int 70 dfs 牛客 相等 小白月赛 打表

A.小d和答案修改

收获isupper函数。

B.小d和图片压缩

关键在于找到坐标的对应关系,或者将每个小方格加到左上角。

C.小d和超级泡泡堂

简单dfs。

D.小d和孤独的区间

只包含1个1的区间可以用总区间数减去2端的区间数,也可以直接由左端点的个数乘以右端点的个数得到。

E.小d的博弈

 博弈

1.考虑简单情况或边界情况,能够由此递推出别的情况。

2.考虑可维持的状态,无论一方怎样操作,另一方总是能通过操作(如模仿棋)抵消影响。

3.考虑打表找规律。

#include<bits/stdc++.h>

using namespace std;

#define endl '\n'
typedef long long LL;
typedef pair<int,int> PII;
const int INF=0x3f3f3f3f;

const int N=110;
int f[N][N];

int dfs(int x,int y){
    if(x<y)return dfs(y,x);
    if(~f[x][y])return f[x][y];
    //在博弈问题中,状态一定是必胜或必输的
    //如果能到达必输状态就必胜,否则必输
    for(int i=1;i<x;i++){
        if(i>=x-i)break;
        int t=dfs(i,y);
        if(t==0)return f[x][y]=1;
    }
    for(int i=1;i<x;i++){
        if(i>=y-i)break;
        int t=dfs(x,i);
        if(t==0)return f[x][y]=1;
    }
    return f[x][y]=0;
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    memset(f,-1,sizeof f);
    for(int i=1;i<=50;i++){
        for(int j=1;j<=50;j++){
            cout<<(dfs(i,j)?"O":"X");
        }
        cout<<endl;
    }
    return 0;
}

该题由打表结果可知,如果n+1和m+1的二进制位相等先手必败,否则必胜。

可维持的状态就是这个二进制位想等,如果初始不相等便可经过一次操作相等,而初始相等则怎样都无法逃脱这个局面。

最终无法操作的局面就是二进制位相等。

如果不打表还是很难发现这个的,所以不要蛮干,要有方法。

F.小d和送外卖

树上背包

待补。。。

 

标签:二进制位,return,int,70,dfs,牛客,相等,小白月赛,打表
From: https://www.cnblogs.com/F-beginner/p/17299989.html

相关文章

  • 小白月赛70
    题目链接https://ac.nowcoder.com/acm/contest/53366A.小d和答案修改字母的大小写的ASCII码相差32。#include<bits/stdc++.h>intmain(){ std::stringstr; std::cin>>str; for(inti=0;i<str.size();i++){ if(str[i]<='z'&&st......
  • 【牛客小白月赛70】A-F题解【小d和超级泡泡堂】【小d和孤独的区间】【小d的博弈】【小
    比赛传送门:https://ac.nowcoder.com/acm/contest/53366难度适中。......
  • 力扣1070(MySQL)-产品销售分析Ⅲ(中等)
    题目:销售表 Sales: 产品表 Product:编写一个SQL查询,选出每个销售产品 第一年销售的产品id、年份、数量 和价格。结果表中的条目可以按任意顺序排列。查询结果格式如下例所示:示例1: 来源:力扣(LeetCode)链接:https://leetcode.cn/problems/product-sales-analysis......
  • day22| 235+701+450
    235.二叉搜索树的最近公共祖先 题目简述:给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。......
  • 安装wsl的必备操作——开启CPU虚拟化——WslRegisterDistribution failed with error_
    参考:https://www.cnblogs.com/smdtxz/p/16837946.htmlhttps://www.cnblogs.com/wenonly/p/17206040.htmlhttps://blog.csdn.net/qq_41460654/article/details/118026986  ======================================================  因为实验室需要炼丹,而炼丹要用ubun......
  • day20| 654+617+700+98
    654.最大二叉树 题目简述:给定一个不重复的整数数组 nums。 最大二叉树 可以用下面的算法从 nums递归地构建:创建一个根节点,其值为 nums中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值右边的 子数组后缀上 构建右子树。 思......
  • UVA - 10706 Number Sequence 子序列
    #include<cstdio>#include<cmath>#include<algorithm>usingnamespacestd;constintmaxn=32761;longlongS[maxn];//存放的是S1,S2,到SK的和,S[5]表示了S1到S4的和,当数字变化到K的时候,一共有多少个字数了intborder[9]={0,1,10,100,1000,10000,100000,1000000,10000000......
  • 代码随想录Day22-Leetcode235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,4
    235.二叉搜索树的最近公共祖先题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/又玩了一天,手又生疏了好多;这道题看了题解,先用公共解法了,之前的题没刷,就给现在留坑了/***Definitionforabinarytreenode.*functionTree......
  • 牛客小白月赛63 ABCD
    https://ac.nowcoder.com/acm/contest/49030这套题目质量挺好的,E过了200+,状态不佳,改天补补A-子序列的权值最小值输入6114514输出0#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;constLLMAXN=1e18,MINN=-MAXN......
  • DS4700/DS4800 存储巡检
    DS4800——(M02,连B控1口)192.168.128.100ping192.168.128.102DS4700——(O07,M04)port1B控192.168.128.102/241.安装点击0035.exe,简体中文(ok),next,next,accept(next),选择路径(next),Typical(next),Automaticallystartmonitor(next),install,Done2.连接3.查看......