状压DP

这里已POJ3254为例。POJ3254题目大意是在1的位置放牛,并且所放的牛不能相邻。
可根据行数分阶段,每个阶段的状态是根据上一阶段的状态得来的也就是 dp[i][s]=sum(dp[i][t])

如何高效地学习

我相信我们天朝的孩子很多都会在中学时代养成背书的习惯,一直沿用到了大学的各种期末考试。上了大学,有幸接触了不以考试为目的的编程竞赛之后,渐渐懂得了其实最好的学习方法并不是记忆,而是理解,继而掌握,最后实践。今天google了几篇文章后简单结合自己的想法简单总结下。

动态规划基础(复习)

菲波那西数列
记忆化搜索写法(递归)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<string.h>
using namespace std;
int dp[50];
int f(int i){
if(dp[i]!=-1)return dp[i];
else return dp[i]=f(i-1)+f(i-2);
}
int main(){
int n;
while(cin>>n){
memset(dp,-1,sizeof dp);
dp[0]=1;dp[1]=1;
cout<<f(n)<<endl;
}
return 0;
}

人不聪明怎么办?

哎,最近被惨了。发现自己的智商有问题..为什么同样的一道题目,没有过多的算法,我却想不到怎么做而他们却轻松解决。
我一开始想是不是我的智商有问题,其实这个问题已经翻来覆去想了很多遍了,初中,高中翻来覆去的想,每次想完都觉得不是智商的问题,是自己不够努力。还记得刘老师曾经说“马虎”的问题,不要说这道题结果算错了..说到底就是你做题少不熟练,1+1=2谁都不会算错。其实也是怎么回事…

,