hdu 4734 数位dp
给一个数A (十进制表示形式为AnAn-1An-2 ... A2A1,定义函数 F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1,给一个B,求B以内的i,满足F(i)<=F(A)
Sample Input
TLE代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int a,b;
int fa; //fa的值
int dp[][],digit[];
int cal(int n)
{
int len=,sum=;
while(n)
{
sum=sum+(n%)*(<<(len-));
len++;
n/=;
}
return sum;
}
int dfs(int p,int s,bool e) { //位数,前面计算的和,任意填
if(s>fa) return ;
if (p==-) return s<=fa;
if (!e &&dp[p][s]!=-) return dp[p][s];
int res = ;
int u = e?digit[p]:;
for (int d=;d<=u;++d)
{
int ns=s+d*(<<p);
res+=dfs(p-,ns,e&&d==u);
}
return e?res:dp[p][s]=res;
}
int solve(int n)
{
int len=;
while(n)
{
digit[len++]=n%;
n/=;
}
return dfs(len-,,);
}
int main()
{
int t;
//freopen("1.in","r",stdin);
scanf("%d",&t);
for(int i=;i<=t;i++)
{
memset(dp,-,sizeof(dp));
scanf("%d%d",&a,&b);
fa=cal(a);
//printf("%d %d\n",a,fa);
printf("Case #%d: %d\n",i,solve(b));
}
return ;
}
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int a,b;
int fa; //fa的值
int dp[][],digit[];
int cal(int n)
{
int len=,sum=;
while(n)
{
sum=sum+(n%)*(<<(len-));
len++;
n/=;
}
return sum;
}
int dfs(int p,int s,bool e) { //位数,小于s的数量,任意填
if (p==-) return s>=;
if(s<) return ;
if (!e &&dp[p][s]!=-) return dp[p][s];
int res = ;
int u = e?digit[p]:;
for (int d=;d<=u;++d)
{
int ns=s-d*(<<p);
res+=dfs(p-,ns,e&&d==u);
}
return e?res:dp[p][s]=res;
}
int solve(int n)
{
int len=;
while(n)
{
digit[len++]=n%;
n/=;
}
return dfs(len-,fa,);
}
int main()
{
int t;
//freopen("1.in","r",stdin);
scanf("%d",&t);
memset(dp,-,sizeof(dp));
for(int i=;i<=t;i++)
{
scanf("%d%d",&a,&b);
fa=cal(a);
//printf("%d %d\n",a,fa);
printf("Case #%d: %d\n",i,solve(b));
}
return ;
}
hdu 4734 数位dp的更多相关文章
- [hdu 4734]数位dp例题
通过这个题目更加深入了解到了数位dp在记忆化搜索的过程中就是实现了没有限制条件的n位数的状态复用. #include<bits/stdc++.h> using namespace std; ...
- hdu 4507 数位dp(求和,求平方和)
http://acm.hdu.edu.cn/showproblem.php?pid=4507 Problem Description 单身! 依旧单身! 吉哥依旧单身! DS级码农吉哥依旧单身! 所以 ...
- hdu 4352 数位dp + 状态压缩
XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6156 数位DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6156 题意:如题. 解法:数位DP,暴力枚举进制之后,就转化成了求L,R区间的回文数的个数,这个直接做 ...
- hdu:2089 ( 数位dp入门+模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位dp的模板题,统计一个区间内不含62的数字个数和不含4的数字个数,直接拿数位dp的板子敲就行 ...
- HDU 4352 XHXJ's LIS HDU(数位DP)
HDU 4352 XHXJ's LIS HDU 题目大意 给你L到R区间,和一个数字K,然后让你求L到R区间之内满足最长上升子序列长度为K的数字有多少个 solution 简洁明了的题意总是让人无从下 ...
- hdu 3709 数位dp
数位dp,有了进一步的了解,模板也可以优化一下了 题意:找出区间内平衡数的个数,所谓的平衡数,就是以这个数字的某一位为支点,另外两边的数字大小乘以力矩之和相等,即为平衡数例如4139,以3为支点4*2 ...
- HDU 2089 数位dp入门
开始学习数位dp...一道昨天看过代码思想的题今天打了近两个小时..最后还是看了别人的代码找bug...(丢丢) 传说院赛要取消 ? ... 这么菜不出去丢人也好吧~ #include<stdi ...
- HDU 2089 数位dp/字符串处理 两种方法
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
随机推荐
- pycharm 2016 注册码
43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...
- HDU 4865 Peter's Hobby(概率、dp、log)
给出2个影响矩阵,一个是当天天气对湿度的影响,一个是前一天天气对当天天气的影响. 即在晴天(阴天.雨天)发生Dry(Dryish.Damp.Soggy)的概率,以及前一天晴天(阴天.雨天)而今天发生晴 ...
- linux下QT Creator常见错误及解决办法
最近因为在做一个关于linux下计算机取证的小项目,需要写一个图形界面,所以想到了用QT来写,选用了linux下的集成开发环境QT Creator5.5.1,但刚刚安装好,竟然连一个"hel ...
- (转)JAVA AJAX教程第四章—AJAX和MVC的简单结合
这里我们再理解了AJAX后,开始来用实例感受AJAX的力量. 今天我最后要实现的效果,当鼠标放到图片上时会根据,会把数据库库里的数据读出,通过显示框显示出来.这个在很多网上商店都有用到这里效果,我们这 ...
- [Android进阶]学习AccessibilityService实现微信抢红包插件
在你的手机更多设置或者高级设置中,我们会发现有个无障碍的功能,很多人不知道这个功能具体是干嘛的,其实这个功能是为了增强用户界面以帮助残障人士,或者可能暂时无法与设备充分交互的人们 它的具体实现是通过A ...
- [C#]Datatable和json互相转换操作
#region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...
- myeclipse破解
由于内容比较多,我就直接转载了 ,同时感谢原博主 http://blog.itpub.net/27042095/viewspace-1164998/
- [Android] Android5.1系统自带的应用启动次数统计
reference to : http://blog.csdn.net/elder_sword/article/details/50508257 前段时间要做一个统计手机中激活量的东东,这个统计不是单 ...
- js DOM对象
查找元素 根据id找 document.getElementById("b"): 根据class找 document.getElementsByClassName("aa ...
- javascript - 事件详解
一.事件流 1.事件流 描述的是在页面中接受事件的顺序 2.事件冒泡 由最具体的元素接收,然后逐级向上传播至最不具体的元素的节点 (最具体 –> 最不具体) 3.事件捕获 最不具体的节点先接收事 ...