2036: 聪明的阿卑多
来源:互联网 发布:南京证券开户软件 编辑:程序博客网 时间:2024/05/21 11:28
题目链接
题目大意:求用最少多少个数可以表示出1–n的所有数,并求方案数
题解:第一问同1192,第二问暴力dp即可,
我的收获:强强强
#include <vector>#include <algorithm>#include <utility>#include <iostream>#include <cstdio>#include <cmath>#include <cstdlib>#include <cstring>#define rep(i,n) for(int i=0;i<n;i++)#define tr(e,x) for(vector<int>::iterator e=x.begin();e!=x.end();e++)#define All(x) x.begin(),x.end()#define pb push_back#define OK puts("OK")const int inf=~0U>>1,maxn=1000+10,maxt=12;using namespace std;int Dp[maxn][maxt+1][maxn]={},n;int main(){ //freopen("in","r",stdin); Dp[0][0][0]=1; cin>>n; for(int i=0;i<n;i++) for(int j=0;j<maxt;j++) for(int k=0;k<=n;k++) if(int c=Dp[i][j][k]) { Dp[i+1][j][k]+=c; int l=0+i+1,r=k+i+1; if(l<=k+1&&j+1<maxt) { Dp[i+1][j+1][min(r,n)]+=c; } } //int t=1,cnt; //for(;t<=n;t<<=1,cnt++); //cout<<cnt<<" "<<Dp[n][cnt][n]<<endl; for(int t=0;t<maxt;t++) { if(Dp[n][t][n]) { cout<<t<<" "<<Dp[n][t][n]<<endl; return 0; } }}
阅读全文
0 0
- 2036: 聪明的阿卑多
- 聪明的下拉菜单
- 聪明的狗
- 聪明的妻子
- 犹太人的聪明
- 相处的更聪明
- 聪明的广告
- RPM聪明的安装
- 聪明的网站
- 聪明的人类
- 聪明的狗
- 聪明的学生
- 聪明的孩子
- 聪明的媳妇
- poj1184 聪明的打字员
- 总是聪明的太迟
- 聪明的食物
- 聪明的学生问题
- PAT(Basic Level)_1013_数素数
- 程序员面试金典:机器人走方格II、魔术索引I
- Throwing cards away I
- 蓝牙加密三【Definition of Keys】
- 运算符
- 2036: 聪明的阿卑多
- HDU 1465 不容易系列之一
- poj1896—Cable TV Network(点联通度的求解)
- N的N次方
- NYOJ 477 A+B Problem III
- markdown简明语法
- xPath的语法规则
- 深入理解java虚拟机(十) Java 虚拟机运行时栈帧结构
- Hibernate配置文件详解