POJ 2346 DP or打表
这题 不算重复的数。。 就变成水题了。
思路:
1.打表
2.DP
打表的:
// by SiriusRen
#include <cstdio>
using namespace std;
int a[6]={0,10,670,55252,4816030,432457640},n;
int main(){
scanf("%d",&n);
printf("%d\n",a[n/2]);
}
第一种DP方法:
f[i][j]表示前i个数,和为j,有f[i][j]种方案。
f[i][j+k]+=f[i-1][j]; k为枚举下一位填什么数字。
// by SiriusRen
#include <cstdio>
using namespace std;
int n,f[6][55],ans=0;
int main(){
scanf("%d",&n),n>>=1;
for(int i=0;i<=9;i++)f[1][i]=1;
for(int i=2;i<=n;i++)
for(int j=0;j<=45;j++)
for(int k=0;k<=9;k++)
f[i][j+k]+=f[i-1][j];
for(int k=0;k<=45;k++)ans+=f[n][k]*f[n][k];
printf("%d\n",ans);
}
第二种DP方法:
f[i][j][k] j表示前i位和为j,k表示后i位 和为k。
f[i][j+x][k+y]+=f[i-1][j][k]; x,y为枚举的中间填的数。
ans+=f[n][i][i]即可。
// by SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,f[7][55][55],ans=0;
int main(){
scanf("%d",&n),n>>=1;
for(int j=0;j<=9;j++)
for(int k=0;k<=9;k++)
f[1][j][k]=1;
for(int i=2;i<=n;i++)
for(int j=0;j<=45;j++)
for(int x=0;x<=9;x++)
for(int k=0;k<=45;k++)
for(int y=0;y<=9;y++)
f[i][j+x][k+y]+=f[i-1][j][k];
for(int k=0;k<=45;k++)ans+=f[n][k][k];
printf("%d\n",ans);
}
POJ 2346 DP or打表的更多相关文章
- dp的刷表法和填表法
dp的刷表法和填表法 参考: 动态规划刷表法 - acmer_xue的博客 - CSDN博客http://blog.csdn.net/qq_30241305/article/details/52198 ...
- poj 2346 Lucky tickets(区间dp)
题目链接:http://poj.org/problem?id=2346 思路分析:使用动态规划解法:设函数 d( n, x )代表长度为n且满足左边n/2位的和减去右边n/2位的和为x的数的数目. 将 ...
- 【简单dp】 poj 2346
题意:给定一个N 求一共有多少个N位数 前N/2个数的和等于后N/2个数的和思路:令F[i][j] 为sum值为j的i位数的个数则问题转化成 求 sum(F[n/2][j] * F[n/2][ ...
- POJ 2346 【DP】
题意: 给一个正的不大于10的偶数n,求n个数字组成的数字串前n/2位和后n/2位的和相等的个数. 思路: dp[i][j]由i位数组成的和为j的数字串的个数. dp[i][j]+=dp[i-1][j ...
- hdu 1513 && 1159 poj Palindrome (dp, 滚动数组, LCS)
题目 以前做过的一道题, 今天又加了一种方法 整理了一下..... 题意:给出一个字符串,问要将这个字符串变成回文串要添加最少几个字符. 方法一: 将该字符串与其反转求一次LCS,然后所求就是n减去 ...
- poj 1080 dp如同LCS问题
题目链接:http://poj.org/problem?id=1080 #include<cstdio> #include<cstring> #include<algor ...
- poj 1609 dp
题目链接:http://poj.org/problem?id=1609 #include <cstdio> #include <cstring> #include <io ...
- Palindrome(POJ 1159 DP)
Palindrome Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 58168 Accepted: 20180 De ...
- POJ 1037 DP
题目链接: http://poj.org/problem?id=1037 分析: 很有分量的一道DP题!!! (参考于:http://blog.csdn.net/sj13051180/article/ ...
随机推荐
- 如何在Hexo中实现自适应响应式相册功能
用最清晰简洁的方法整合一个响应式相册 效果 技术选型 由于我选用的主题使用了fancyBox作为图片弹出展示的框架,查看后表示很不错,能满足需要 http://fancyapps.com/fancyb ...
- day09网络编程
一 操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...
- 记一次vip视频破解过程(爱奇艺 芒果 腾讯 优酷 )
1. 在爱奇艺或者优酷中拿到视频的url地址.此时拿到的是加密地址(也可以直接在牛巴巴里面搜名字然后开f12跟踪路由) 2.进入牛巴巴vip视频解析网站.粘贴拿到的url.点击解析 3.f12在net ...
- 小白学习Spark系列六:Spark调参优化
前几节介绍了下常用的函数和常踩的坑以及如何打包程序,现在来说下如何调参优化.当我们开发完一个项目,测试完成后,就要提交到服务器上运行,但运行不稳定,老是抛出如下异常,这就很纳闷了呀,明明测试上没问题, ...
- MySQL笔记5-----索引(覆盖索引等)
1.概念: 覆盖索引:(个人理解)就是包含所有查询记录的索引.当查询量过大时可以采用覆盖索引来进行查询,效率较高. 回表:建立覆盖索引就是避免回表,回表效率会很慢. select查询的字段只有索引列, ...
- 关于linux系统的sendmail使用中的问题与解决
系统环境是ubuntu16.04 安装 sudo apt-get install sendmail 检查运行情况 sudo service sendmail status 结果如下,表示正在运行 ● ...
- ES6标准入门(第三版)学习笔记(1)
ES6声明变量的六种方法 ES5只有两种 var,function命令 ES6新增了let,const,class,import命令 验证var与let用法上的不同 var a = []; for ( ...
- Django入门--模板标签、继承与引用
一.模板标签 Django模板引擎提供的可以在模板中进行的各种逻辑操作,是函数调用的一种特殊形式,如循环.判断等功能,期语法规则为: {% tag %} content {% tag 参数1 参数2 ...
- 洛谷—— P2668 斗地主
https://www.luogu.org/problem/show?pid=2668 题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54 ...
- 用 query 方法 获得xml 节点的值
DECLARE @result xml SET @result='<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelo ...