摘要:
洛谷1025 简单dp f[i][j]表示把数i分成j分的方案数,则最终答案为f[n][k]。把f分为两种状态,第一种为分出来的数中最小值为1,即f[i-1][j-1];另一种为最小值大于一,怎么办呢?可以先在j个位置上放1,再划分,即f[i-j][j],所以转移方程为f[i][j]=f[i-1][ 阅读全文
摘要:
洛谷1091 合唱队列 觉得自己就是个ZZ,打眼一看,没思路,一看数据,n<=100,这不会是大法师吧。。。于是打暴力,快一小时(加上30分钟下课~~哦,下课时和陈国凯聊了一会QQ,%%%学神,mac啊)也没调出来,信心倍挫,然后放弃,看题解,哦cao,是最长上升子序列,然后秒掉了。。。。。。。。。 阅读全文
摘要:
//拓扑排序 #include using namespace std; queueq; int n,m; int in[1000]; bool b[1001]; struct node { int n; node *next; }*e[1000]; int main() { cin>>n>>m; node *p; int x; for(int ... 阅读全文
摘要:
阅读全文
摘要:
等价表达式 栈的经典题目,开两个栈,一个存符号,一个存数字; 分情况讨论: 1.如果当前读到的运算符优先级小于栈顶,就进行一次运算,直到大于等于; 2.如果读到数字用类似读入优化的方法读入进来; 3.如果当前符号为“(”则直接入栈; 4.如果当前符号为“)”则进行运算直到碰到“(”; 5.小技巧 在 阅读全文