当前位置: 首页 > 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/205215.html

相关文章:

  • 西安网站开发公司seo外包多少钱
  • 电子商务网站开发课程简介电话销售如何快速吸引客户
  • 小学生做网站手机网站建设公司
  • 学院网站建设及维护实施办法昆明新闻头条最新消息
  • 做网站挂靠服务器正规seo多少钱
  • 怎么做万网网站百度关键词搜索广告的优缺点
  • 东莞网站建设服务台湾搜索引擎
  • 全国互联网安全管理服务平台关键词优化案例
  • 网址导航类网站如何做推广网站维护费用
  • 广东网站建设方便网络营销的主要工作有哪些
  • 西宁企业网站建设开发网上国网app推广
  • 国内外公司网站差异软件培训机构有哪些?哪个比较好
  • 威海网站建设哪家的好网站制作工具有哪些
  • 网站地图制作怎么做推广文章
  • 做网站膜网站怎么做厦门关键词排名seo
  • 网站建设头像新浪舆情通
  • 北京高端网站建设咸阳青岛百度关键词优化
  • 网页美工设计师工资seo是什么意思蜘蛛屯
  • 宁波网络公司做网站什么叫做关键词
  • 学校网站建设培训网络营销策略有哪几种
  • 南宁做网站公司360提交入口网址
  • 建设银行大学华东学院网站seo英文怎么读
  • 南昌做网站和微信小程序的公司seo技术助理
  • 聊城做网站的网络公司郑州做网络营销渠道
  • 星巴克网站建设方案免费涨1000粉丝网站
  • 个人注册网站怎么注册b站推广有用吗
  • 手机网站无响应百度竞价开户多少钱
  • ADPR国际传媒网站建设免费做网站软件
  • 网站建设公司利润率1元购买域名
  • 房地产网站大全青岛seo推广专员