#网易互娱笔试第二题

笔试的时候差一点就写出来了,但是最后只能无奈骗分5%,考试的时候dfs老是写不对,快麻了,下面是我考完写出来的,应该是正确的,通过了一些测试用例。
#include<iostream>
using namespace std;
void dfs(int n,int m,int res,int i,int count,int&amp; maxres,int num){
    if(num==m&amp;&amp;count==n){
        if(maxres<res){
            maxres=res;
        }
        return;
    }
    if(count==n){
        return;
    }
    for(int j=1;j<8;++j){
        num=num+j;
        if(j==i){
            ++res;
        }
        ++count;
        dfs(n,m,res,i,count,maxres,num);
        if(j==i){
            --res;
        }
        --count;
        num=num-j;
        if(count==0){
            return;
        }
    }
}
int main(){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<8;++i){
        int num=i;
        int maxres=1;
        int res=1;
        int count=1;
        dfs(n,m,res,i,count,maxres,num);
        cout<<maxres<<endl;
    }
}
全部评论
第二题不是列个式子o1时间复杂度就好了嘛
1 回复 分享
发布于 2024-05-30 15:26 美国
这个题用二分,100%通过
点赞 回复 分享
发布于 2024-05-30 13:22 重庆
做题前要有看数据量的习惯,来大致判断时空复杂度,这种时空复杂度就在明示你了去找O(1)的解法,不然不可能通过的
点赞 回复 分享
发布于 2024-05-29 14:17 湖北
这题使用公式常数时间复杂度解决的,dfs过不了
点赞 回复 分享
发布于 2024-05-29 10:04 浙江
贪心
点赞 回复 分享
发布于 2024-05-29 02:47 山东
我也写的类似深搜只能过15% 数据范围是10e9太大了
点赞 回复 分享
发布于 2024-05-29 01:59 广东

相关推荐

评论
4
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务