首页 > 其他分享 >洛谷 P1464 Function(dfs+记忆化搜索)

洛谷 P1464 Function(dfs+记忆化搜索)

时间:2022-10-31 21:45:34浏览次数:84  
标签:Function 洛谷 P1464 LL dfs return 搜索 20

https://www.luogu.com.cn/problem/P1464

  1. 单个返回条件的时候,直接return
  2. 多个返回条件的时候,采用记忆化搜索思想,边存储边继续往下搜索
  3. 中间穿插记忆化判断,如果之前有过此类记录,直接拿来用,没有的话就继续往下搜索
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=202;
int mp[M][M][M];
LL dfs(LL x,LL y,LL z)
{
    if(x<=0||y<=0||z<=0) return 1;
    if(x>20||y>20||z>20) return dfs(20,20,20);
    if(mp[x][y][z]) return mp[x][y][z];
    if(x<y&&y<z) return mp[x][y][z]=dfs(x,y,z-1)+dfs(x,y-1,z-1)-dfs(x,y-1,z);
    else return mp[x][y][z]=dfs(x-1,y,z)+dfs(x-1,y-1,z)+dfs(x-1,y,z-1)-dfs(x-1,y-1,z-1);
}
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    //init();
    LL T=1;
    //cin>>T;
    while(T--)
    {
        LL x,y,z;
        while(cin>>x>>y>>z)
        {
            if(x==-1&&y==-1&&z==-1) break;
            cout<<"w("<<x<<", "<<y<<", "<<z<<") = "<<dfs(x,y,z)<<endl;
        }
    }
    return 0;
}

标签:Function,洛谷,P1464,LL,dfs,return,搜索,20
From: https://www.cnblogs.com/Vivian-0918/p/16845926.html

相关文章

  • 【洛谷P7816 】【Stoi2032】以父之名
    在洛谷题解中看到了两种做法。法一:与zjr巨佬说的类似,我们先能观察出这个图的几个性质:若只保留边权为\(1\)的边,那么所有点的度数都是奇数。那么也可以得到\(n\)为偶......
  • C++11绑定器bind及function机制
    前言之前在学muduo网络库时,看到陈硕以基于对象编程的方式,大量使用boost库中的bind和function机制,如今,这些概念都已引入至C++11,包含在头文件<functional>中。本篇文章主要......
  • 洛谷 P1153 点和线
    前置知识(1)求两条线段的交点方法1,运用高中的解析几何知识求.方法2,运用向量点积求.考虑向量叉乘。若\(\veca\times\vecb>0\),那么\(\vecb\)在\(\veca\)......
  • 洛谷 P1789【Mc生存】插火把
    萌新写的代码,长但模块化#include<stdio.h>#defineROW100#defineCOLUMN100intmap[ROW][COLUMN];/*函数测试数据={1,1,1,0,0,1,1,0,1,0,1,1,1,0,0,0,0,0,0,0......
  • drools_10_function
    在drl文件定义function在drl规则文件中可定义函数,这些函数可以在规则中被使用.示例:packagecom.sample.rulesimportcom.sample.Order;functionvoidprintInfo(String......
  • drools_07_macro_functions
    delete()和retract()宏函数delete()用于在ruleRHS中将对象从工作内存中删除,retract()函数有同样的作用,不过已经被标记为废弃状态.insert()宏函数insert()用于在rul......
  • 洛谷P8539 「Wdoi-2」来自地上的支援 题解
    ST表做法思路当进行第\(x\)次操作时,若\(b_1\)到\(b_{x-1}\)中有比\(b_x\)大的数,那这次操作轮不到\(b_x\),并且前面的本来就比它大的数只会越来越大,所以以后的......
  • P1597洛谷刷题
    #include<iostream>#include<string>usingnamespacestd;intmain(intargc,char**argv){ stringstr="a:=3;b:=4;c:=5"; for(inti=1;i<=3;i++){ ints......
  • 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in
    原因分析:我们创建函数时必须指定我们的函数是否是DETERMINISTIC不确定的NOSQL没有SQl语句,当然也不会修改数据READSSQLDATA只是读取数据,当然也不会修改数据MODIFIES......
  • 【Vue】问题:TypeError: vite.createFilter is not a function
    问题内容➜vite-vue3npmrundev>[email protected]>vitefailedtoloadconfigfrom/vite-vue3/vite.config.tserrorwhenstartingdevserver:TypeError:vite.c......