首页 > 其他分享 >日记

日记

时间:2024-05-07 22:56:12浏览次数:16  
标签:return 22 long printf 20 日记 lld

今天了解了一下记忆化搜索,作为一种dp,我难以理解

#include<iostream>
#include<cstdio>
using namespace std;
long long dp[22][22][22];
long long  w(long long  a,long long  b,long long  c){
	if(a<=0||b<=0||c<=0){
		return 1;
	}
	 if(a>20||b>20||c>20){
		return w(20,20,20);
	}
	 if(a<b&&b<c){
		if(dp[a][b][c-1]==0){
			dp[a][b][c-1]=w(a,b,c-1);
		}
		if(dp[a][b-1][c-1]==0){
			dp[a][b-1][c-1]=w(a,b-1,c-1);
		}
		if(dp[a][b-1][c]==0){
			dp[a][b-1][c]=w(a,b-1,c);
		}
		dp[a][b][c]=dp[a][b][c-1]+dp[a][b-1][c-1]-dp[a][b-1][c];
	 }
	 else {
		if(dp[a-1][b][c]==0){
			dp[a-1][b][c]=w(a-1,b,c);
		}
		if(dp[a-1][b-1][c]==0){
			dp[a-1][b-1][c]=w(a-1,b-1,c);
		}
		if(dp[a-1][b][c-1]==0){
			dp[a-1][b][c-1]=w(a-1,b,c-1);
		}
		if(dp[a-1][b-1][c-1]==0){
			dp[a-1][b-1][c-1]=w(a-1,b-1,c-1);
		}
		dp[a][b][c]=dp[a-1][b][c]+dp[a-1][b-1][c]+dp[a-1][b][c-1]-dp[a-1][b-1][c-1];
	 }
	return dp[a][b][c];
}
long long a,b,c;
int main(){
	while(cin>>a>>b>>c){
		if(a==-1&&b==-1&&c==-1){
			return 0;
		}
			printf("w(%lld, %lld, %lld) = ",a,b,c);
			printf("%lld\n",w(a,b,c));
	}
	return 0;
}
出自洛谷P1464 Function
输入:
1 1 1
2 2 2
-1 -1 -1
输出:
w(1, 1, 1) = 2
w(2, 2, 2) = 4

标签:return,22,long,printf,20,日记,lld
From: https://www.cnblogs.com/2401377187PandZ/p/18178624

相关文章

  • 文化课日记
    博主还活着!2024.3.10退役三天,直接第一次月考。最后语数英物化生拿到了94+73+107.5+30+32+32,年排833。数学前面做不下去了直接开19,最后没做出来/cf。语文作文瞎蒙出来49,感觉厉害。2024.4.23来描述一下近况。开学考之后学校专门给我们补了快三周的课,大概是除了语文的另外......
  • 九下五月上旬日记
    5.1闲话做题纪要luoguP3521[POI2011]ROT-TreeRotationsWhatis先序遍历?对于一棵子树的根节点\(x\),交换其左右子树,不会对以前的节点产生影响(不会更改贡献)。这棵子树产生的贡献值来自三种情况,分别是都在左子树,都在右子树,左子树和右子树各一个。只考虑第三种情......
  • 投资日记_2
    一直以来,我都想建立自己的量化模型,开设自己的金融分析网站。如今,网站已经有了雏形,但是算法还没到位。2021年,我曾经短暂地将它部署上线。目前,手头持有的投资项目有:A股、基金、理财、数字货币、合约和定期存款。基金、合约盈利为负,其他为正。手头持有方正科技、伊利股份和永泰能......
  • IOS CI踩坑日记
    ZACMSProject.xcodeproj:error:Invalidtrustsettings.Restoresystemdefaulttrustsettingsforcertificate"iPhoneDeveloper:xxxxx(xxxxxxxxxx)"inordertosigncodewithit.(intarget'xxxxxx'fromproject'xxxxxxxx')......
  • 2024日记
    4.24:打由乃打扑克然后……我招谁惹谁了啊!加个代码,求神帮调#include<bits/stdc++.h>usingnamespacestd;#defineinfile(x)freopen(x,"r",stdin)#defineoutfile(x)freopen(x,"w",stdout)#defineerrfile(x)freopen(x,"w",stderr)usingll=longlo......
  • 主题捣鼓日记
    主题捣鼓日记sakura版本(YYDS)主要框架都没怎么动,功能挺完整的。但是如果要DIY还是得自己把代码捋一遍,不然从哪改起都不知道,注释不能说完全没用。。。捣鼓了两天两夜,还是有很多细节没改好,main.js翻了四五遍,看评论区发现诸多细节还要改CSS文件,太难了。。前端都忘得差不多了,赶紧借......
  • 九下四月下旬日记
    4.21闲话做题纪要4.22闲话做题纪要luoguP1494[国家集训队]小Z的袜子设\([l,r]\)内每个数出现的次数为\(cnt_{i}\),有\(\begin{aligned}\frac{\sum\limits_{i=1}^{\max\limits_{j=1}^{n}\{c_{j}\}}\binom{cnt_{i}}{2}}{\binom{r-l+1}{2}}\end{aligned}\)......
  • 日记
    2024/4/21#include<stdio.h>voidf(doublea,doubleb,doublec,double*max){  *max=a;  intarr[3]={a,b,c};  for(inti=0;i<3;i++){    if(*max<arr[i])*max=arr[i];  }}intmain(){  doublea=0.0,b=0.0,c=0.0;  doublemax_1=0......
  • 日记
    2024.4.19#include<stdio.h>voiddot(intarr[6][6],int*num,int*row,int*col){ intc=0; intc_1=0; for(inti=1;i<=5;i++){ for(intj=1;j<=5;j++){ for(intp=1;p<=5;p++){ if(arr[i][j]<=arr[p][j]){ c++; } } if(c==5)......
  • 组会日记
    2024-4-18日记大的方向:看完一篇论文!!1.puncturedcode:为什么每一个locallity都要捎带着提一下puncturedcode呢?每一个码都一定有locality属性,但是可能很差,我们需要一个衡量的标准,那么怎么来定义这个标准呢,就是通过punctured来定义,因为punctured是截断的,我们可以通过截断,来判断该......