这两题是一模一样的```

题意:给了一系列递推关系,但是由于这些递推很复杂,所以递推起来要花费很长的时间,所以我要编程序在有限的时间内输出答案。

w(a, b, c):

如果a,b,c中有一个值小于等于0,那么w(a, b, c)的值为1

如果a,b,c中有一个值大于20,那么w(a, b, c)的值为w(20, 20, 20)

如果a<b<c,那么w(a, b, c)=w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c)

否则w(a, b, c)=w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1)

我尝试过,就按这个输入进去,然后a=15,b=15,c=15,基本上是等不到头的,不断的递推会花上几个小时,所以我的第一想法是:找规律!!!是的我就是这么蠢没有办法。

我找了很久很久的规律,然后通过打表的方法几乎找出了一半的规律,我满心欢喜得用这些规律替代了部分的递推让答案很容易被求出,然后我尝试了一下我尝试的值也都非常快得输出了,于是我就作死提交了,T了。我```我竟无言以对啊,我以为是我找的规律不够深刻,然后```总之并找不出规律的我终于放弃了,粗看题解:记忆化搜索。

再见吧朋友我根本思路就完全错了嘛```知道真相的我作死地在我找的规律上面修改出记忆化,提交之后```WA了```

我想起了一句话:不要沮丧,矮不是你的错,抬起头来告诉大家,你不仅矮,你还丑```

是的,我思路完全是错的,并且,我找的规律也是错的!

好吧,我认了,去掉我那该死的规律之后,我终于A了```就这样吧,代码顺便附上我作死的规律,恩它是错的```

 #include<stdio.h>
#include<string.h>
#include<math.h>
int dp[][][];/*
void fun(){
int i,j,k;
for(i=0;i<=20;i++){
for(j=0;j<=20;j++){
for(k=0;k<=20;k++){
if(i<=0||j<=0||k<=0)dp[i][j][k]=1;
else if(j==1&&k==1)dp[i][j][j]=i+1;
else if(j>=i||k>=i)dp[i][j][k]=pow(2,i);
}
}
}
}*/
int w(int a,int b,int c){
if(a<=||b<=||c<=)return ;
if(a>||b>||c>)return w(,,);
if(dp[a][b][c])return dp[a][b][c];
if(a<b&&b<c){
dp[a][b][c]=w(a,b,c-)+w(a,b-,c-)-w(a,b-,c);
return dp[a][b][c];
}
dp[a][b][c]=(w(a-,b,c)+w(a-,b-,c)+w(a-,b,c-)-w(a-,b-,c-));
return dp[a][b][c];
} int main(){
memset(dp,,sizeof(dp));
// fun();
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c)!=EOF&&(a!=-||b!=-||c!=-)){
printf("w(%d, %d, %d) = ",a,b,c);
printf("%d\n",w(a,b,c));
}
return ;
}

hdu1331&&hdu1579记忆化搜索(DP+DFS)的更多相关文章

  1. 记忆化搜索(DP+DFS) URAL 1183 Brackets Sequence

    题目传送门 /* 记忆化搜索(DP+DFS):dp[i][j] 表示第i到第j个字符,最少要加多少个括号 dp[x][x] = 1 一定要加一个括号:dp[x][y] = 0, x > y; 当 ...

  2. hdu1428漫步校园( 最短路+BFS(优先队列)+记忆化搜索(DFS))

    Problem Description LL最近沉迷于AC不能自拔,每天寝室.机房两点一线.由于长时间坐在电脑边,缺乏运动.他决定充分利用每次从寝室到机房的时间,在校园里散散步.整个HDU校园呈方形布 ...

  3. HDU 1078 FatMouse and Cheese 记忆化搜索DP

    直接爆搜肯定超时,除非你加了某种凡人不能想出来的剪枝...555 因为老鼠的路径上的点满足是递增的,所以满足一定的拓补关系,可以利用动态规划求解 但是复杂的拓补关系无法简单的用循环实现,所以直接采取记 ...

  4. 【10.31校内测试】【组合数学】【记忆化搜索/DP】【多起点多终点二进制拆位Spfa】

    Solution 注意取模!!! Code #include<bits/stdc++.h> #define mod 1000000007 #define LL long long usin ...

  5. HDU - 6415 多校9 Rikka with Nash Equilibrium(纳什均衡+记忆化搜索/dp)

    Rikka with Nash Equilibrium Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K ...

  6. 记忆化搜索 dp学习~2

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1331 Function Run Fun Time Limit: 2000/1000 MS (Java/ ...

  7. BZOJ1048:[HAOI2007]分割矩阵(记忆化搜索DP)

    Description 将一个a*b的数字矩阵进行如下分割:将原矩阵沿某一条直线分割成两个矩阵,再将生成的两个矩阵继续如此分割(当然也可以只分割其中的一个), 这样分割了(n-1)次后,原矩阵被分割成 ...

  8. hdu 4960 记忆化搜索 DP

    Another OCD Patient Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Ot ...

  9. HNU OJ10086 挤挤更健康 记忆化搜索DP

    挤挤更健康 Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 339, A ...

随机推荐

  1. 雷林鹏分享:Ruby 环境变量

    Ruby 环境变量 Ruby 解释器使用下列环境变量来控制它的行为.ENV 对象包含了所有当前设置的环境变量列表. 变量描述 DLN_LIBRARY_PATH动态加载模块搜索的路径. HOME当没有参 ...

  2. [.NET开发] C# 如何创建Excel多级分组

    要设置显示或者隐藏分类数据下的详细信息,在便于数据查看.管理的同时也使文档更具美观性.那么,在C#中如何来创建Excel数据的多级分组显示呢?下面将进行详细阐述.方法中使用了免费版组件Free Spi ...

  3. [Java学习] Java继承的概念与实现

    继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似. 继承可以理解为一个类从另一个类获取方法和属性的过程.如果类B继承于类A,那么B就拥有A的方法和属性. ...

  4. English trip -- Review Unit1 Personal Information 个人信息

    1.重点内容进行自我介绍 What's you name? I'm Loki Where are you from? I'm Local, I'm Chengdu How old are you? t ...

  5. LeetCode--118--杨辉三件I

    问题描述: 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出: [ [1], [1,1], [1,2 ...

  6. P4173 残缺的字符串 fft

    题意:给你两个字符串,问你第一个在第二个中出现过多少次,并输出位置,匹配时是模糊匹配*可和任意一个字符匹配 题解:fft加速字符串匹配; 假设上面的串是s,s长度为m,下面的串是p,p长度为n,先考虑 ...

  7. python-day7--%s与%d的使用,python2中的input及raw_input

    #coding:utf-8 #utf-8格式打开#%s %d# name='egon'# age=18# print('my name is',name)# print('my name is my ...

  8. AIX的iostat命令解析(翻译红皮书)

    1.确定磁盘使用率 $ iostat -T 2 10System configuration: lcpu=8 drives=29 paths=52 vdisks=0tty:      tin      ...

  9. 共享内存创建shmget控制操作shmat,shmctl

    1.共享内存的数据结构 共享内存就是分配一块能被其他进程访问的内存.每个共享内存段在内核中维护着一个内部结构: struct shmid_ds { struct ipc_perm shm_perm; ...

  10. java并发编程:线程安全管理类--原子操作类--AtomicReference<V>

    1.类 AtomicReference<V> public class AtomicReference<V>extends Objectimplements Serializa ...