当前位置: 首页 > wzjs >正文

刷网站排名软件兰州网站优化

刷网站排名软件,兰州网站优化,和规划网站如何,百度指数数据下载题源:P1464 Function - 洛谷 第一种解法:使用循环 这是我想到的第一个解法,纯暴力。 主要是因为条件的设置,规定三个数中有任意一个数超过20,就指需要计算20就行。所以我就想到了使用三重循环,时间复杂度…

题源:P1464 Function - 洛谷

第一种解法:使用循环

这是我想到的第一个解法,纯暴力。

主要是因为条件的设置,规定三个数中有任意一个数超过20,就指需要计算20就行。所以我就想到了使用三重循环,时间复杂度最坏也只有O(20 ^ 3)(一次输入时)。

AC代码:

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
long long res;
long long f[25][25][25];int main()
{long long int a,b,c;scanf("%lld%lld%lld",&a,&b,&c);	long long a1,b1,c1;while(a != (long long)-1 || b != (long long)-1 || c != (long long)-1){a1 = a,b1 = b,c1 = c;if(a <= 0 || b <= 0 || c <= 0) {printf("w(%lld, %lld, %lld) = 1\n",a1,b1,c1);}else {if(a > 20 || b > 20 ||c > 20) a = 20,b = 20,c = 20;for(int i = 0;i <= 20;i++){for(int j = 0;j <= 20;j++){f[i][j][0] = 1;f[i][0][j] = 1;f[0][i][j] = 1;f[0][0][j] = 1;f[0][j][0] = 1;f[j][0][0] = 1;f[0][0][0] = 1;}}for(int i = 1;i <= a;i++){for(int j = 1;j <= b;j++){for(int k = 1;k <= c;k++){if(f[i][j][k] != 0) continue;if(a < b && b < c){f[i][j][k] = f[i][j][k - 1] + f[i][j - 1][k - 1] - f[i][j - 1][k];}else {f[i][j][k] = f[i - 1][j][k] + f[i - 1][j - 1][k] + f[i - 1][j][k - 1] - f[i - 1][j - 1][k - 1];}}}}printf("w(%lld, %lld, %lld) = %lld\n",a1,b1,c1,f[a][b][c]);}scanf("%lld%lld%lld",&a,&b,&c);}return 0;}

第二种解法:记忆化搜索

因为题目的算法标签好歹有一个搜索,所以我觉得不使用搜索的话,好像也是白做。

所以就看了题解。

记忆化搜索简介:

记忆化搜索是一种通过存储已经遍历过的状态西信息,避免对同一状态重复遍历的算法。

它是动态规划的一种实现方式,在记忆化搜索中,当算法计算到某个子问题的结果时,首先检查是否已经计算过该问题。如果已经计算过,则直接返回已经存储的结果;否则,计算该问题,并将结果存储下来以备将来使用。

所以,在这道题中,我们可以把每一个“w”函数的值储存起来,下一次就可以直接调用,节省大量时间。

AC代码:

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
typedef long long LL;
LL dp[25][25][25];
LL w(LL a,LL b,LL c)
{if(a <= 0 || b <= 0 || c <= 0) return (LL)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];
} 
int main()
{LL a, b,c;LL res = 0;while(scanf("%lld %lld %lld",&a,&b,&c)){if(a == -1 && b == -1 && c == -1) break;res = w(a,b,c);printf("w(%lld, %lld, %lld) = %lld\n",a,b,c,res);} 
}

http://www.dtcms.com/wzjs/547582.html

相关文章:

  • 成都门户网站建设多少钱导航网站怎么做点击
  • 哪里有南宁网站建设做网站用的什么语言
  • 中国建设教育协会官方网站沈阳网红打卡旅游景点
  • 重庆网站建设接重庆零臻科技一个人可以做多少网站
  • 晋城市公共事业建设局网站河南项目备案信息网
  • 微信公众号怎么创建文章杭州seo渠道排名
  • 做网站 一级 二级网页浏览器下载安装
  • 济南市住房和城乡建设局网站vs手机网站开发
  • 权威做网站的公司网站做网站词怎么推广
  • 成都家具企业网站建设企业网站备案好不好
  • 高端品牌网站建设策略wordpress上传数据
  • asp做素材网站设计室内效果图设计
  • 常州培训做网站郑州发布
  • 公司做网站广告语网站制作工作室哪家比较好
  • 建设品牌网站公司设计工作室怎么注册
  • 大良网站智能推广如何上海网站制作费用
  • 2018做网站开发一个月工资多少广东建设监理协会网站
  • 唐山哪个公司可以制作网站龙岩网约车考试哪里报名
  • 广州网站建设案件品牌设计课程
  • 泰安网站建设定制公司深圳比较好的建网站公司
  • 免费自助制作永久网站站内seo优化
  • 宁波好品质品牌网站设计哪家好网站标题更改
  • 网站运营服务商注册商标怎么注册商标
  • 开网站需要钱吗邢台市教育局
  • 便宜网站建设什么行业最容易做网站
  • 如何推广网站链接网站备案要拍照大家怎么做的啊
  • 一了网站wordpress 安装 白屏
  • 专门做家具网站django 微信小程序开发教程
  • 淄博哪有培训做网站的自己做的网站出现500错误怎么解决
  • 外贸网站建设seo标书制作难吗