题意: 给一个数字n,让1到n的所有数都以波浪形排序,即任意两个相邻的数都是一高一低或者一低一高 比如:1324   4231,再比如4213就是错的,因为4高,2低,接下来1就应该比2高,但是它没有 点击打开题目链接 接下来思路用笔记截图形式表示 #include<bits/stdc++.h> #define ll long long using namespace std; ; ll dp[maxn][]; ll c[maxn][maxn]; int main() { ll n; cin&…
点击加号查看代码 #include<bits/stdc++.h>//前缀和优化版本,不易理解 using namespace std; #define ll long long ; ; ll sum[maxn][maxn]; ll dp[maxn][maxn]; char str[maxn]; int main() { str[]='*'; str[]='*'; scanf(); ll len=strlen(str)-; sum[][]=; dp[][]=; ;i<=len;i++) ;…
HDU 4489 The King's Ups and Downs 思路: 状态:dp[i]表示i个数的方案数. 转移方程:dp[n]=∑dp[j-1]/2*dp[n-j]/2*C(n-1,j-1). 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset(a,b,sizeof(a)) ; ll dp[N]; ll C(l…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4489 The King's Ups and Downs Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 问题描述 The king has guards of all different heights. Rather than line them up in increasing o…
The King’s Ups and Downs Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 582    Accepted Submission(s): 409 Problem Description The king has guards of all different heights. Rather than line the…
The King's Ups and Downs Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVALive. Original ID: 617764-bit integer IO format: %lld      Java class name: Main   The king has guards of all different heights. Rather than line the…
hdu 4055: 一开始我想的递推方向想得很复杂,看了别人的博客后才醍醐灌顶: 参照他的思路和代码: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; ; char s[N]; int dp[N][N], sum[N][N]; int main() { )) { memset(dp,,sizeof(dp)); // memset(sum,0,sizeof(sum)…
题目链接: acm.hdu.edu.cn/showproblem.php?pid=4747 Mex Time Limit: 15000/5000 MS (Java/Others)Memory Limit: 65535/65535 K (Java/Others) 问题描述 Mex is a function on a set of integers, which is universally used for impartial game theorem. For a non-negative i…
所谓递推,是指从已知的初始条件出发,依据某种递推关系,逐次推出所要求的各中间结果及最后结果.其中初始条件或是问题本身已经给定,或是通过对问题的分析与化简后确定.关于递推的知识可以参阅本博客中随笔“递推(一):递推法的基本思想”. HDU 2044~2050这7道题是针对初学者进行递推学习的专项练习,下面给出它们的AC程序供参考. HDU 2044:一只小蜜蜂 不妨将图示的蜂箱结构看成从1--—2——-3——…的一个“W”型楼梯.蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.可以等效地看成蜜蜂每次上楼…
http://acm.hdu.edu.cn/showproblem.php?pid=4489 题意:有n个身高不同的人,计算高低或低高交错排列的方法数. 思路:可以按照身高顺序依次插进去. d[i][0]表示i个人以高低结尾的方法数,d[i][1]表示i个人以低高开头的方法数. 将第i个人插入时,当它左边为j个人的时候,右边就是i-1-j,并且左边必须要以高低结尾,右边必须以低高开头.也就是d[i-1][0]*d[i-1][1].当然了,后面还得再乘c(i-1,j),表示选j个人的方法数. #i…