ACdream 1064 完美数
数位dp.
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<iostream>
using namespace std;
typedef long long LL;
const double pi=acos(-1.0);
void File()
{
freopen("D:\\in.txt","r",stdin);
freopen("D:\\out.txt","w",stdout);
} int dp[][],t[]; void pre()
{
memset(dp,,sizeof dp); dp[][]=; // get时要× dp[][]=; // 0 1 2 4 5 6 7 9
dp[][]=; //
dp[][]=; // for(int i=;i<=;i++)
{
dp[i][]=*dp[i-][];
dp[i][]=dp[i-][]+*dp[i-][];
dp[i][]=dp[i-][]+*dp[i-][];
}
} int get(int x)
{
int sz=; while(x) t[sz++]=x%, x=x/;
for(int i=sz;i>=;i--) t[i]=t[i-]; int res=; bool san=,ba=; for(int i=sz;i>=;i--)
{
//该位可以放 0 1 2 3 4....t[i]-1
if(san==&&ba==)
{
//放 0 1 2
if(t[i]<=) res=res+
dp[i-][]*t[i]+
dp[i-][]*t[i]; //放 0 1 2 3 4 5 6 7
else if(t[i]<=) res=res+
dp[i-][]+
dp[i-][]*t[i]+
dp[i-][]*(t[i]-); //放 0 1 2 3 4 5 6 7 8
else if(t[i]==) res=res+
dp[i-][]+
dp[i-][]+
dp[i-][]*(t[i]-)+
dp[i-][]*(t[i]-); if(t[i]==) san=; if(t[i]==) ba=;
if(san==&&ba==) return res;
continue;
} int id,limit; if(san==) id=,limit=; else id=,limit=; //放 0 1 2 .. limit-1
if(t[i]<=limit) res=res+
dp[i-][]*t[i]+
dp[i-][id]*t[i]; //放 0 1 2 .. t[i]-1
else res=res+
dp[i-][]*(t[i]-)+
dp[i-][id]*(t[i]-); if(t[i]==) san=; if(t[i]==) ba=;
if(san==&&ba==) return res;
} return res;
} int main()
{
pre(); int T,L,R;
scanf("%d",&T); while(T--)
{
scanf("%d%d",&L,&R);
printf("%d\n",get(R+)-get(L));
}
return ;
}
ACdream 1064 完美数的更多相关文章
- 华为OJ平台——完美数
import java.util.Scanner; /** * * 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数. * 它所有的真因子(即除了自身以外的约数)的和(即 ...
- SDUT 1220 完美数
完美数 Time Limit: 1000ms Memory limit: 65536K 题目描述 任何一个自然数的约数中都有1和它本身,我们把小于它本身的因数叫做这个自然数的真约数. 如6的所有真 ...
- 1000以内完全数(完美数)获取实现---基于python
"""题目: 如果一个数恰好等于它的因子之和,则称该数为"完全数" .各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的 ...
- [51nod1232]完美数
如果一个数能够被组成它的各个非0数字整除,则称它是完美数.例如:1-9都是完美数,10,11,12,101都是完美数,但是13就不是完美数(因为13不能被数字3整除). 现在给定正整数x,y,求x和y ...
- [Swift]LeetCode507. 完美数 | Perfect Number
We define the Perfect Number is a positive integer that is equal to the sum of all its positive divi ...
- 51nod 1232 完美数 数位dp
1232 完美数 题目来源: 胡仁东 基准时间限制:2 秒 空间限制:131072 KB 如果一个数能够被组成它的各个非0数字整除,则称它是完美数.例如:1-9都是完美数,10,11,12,101都 ...
- Leetcode 507.完美数
完美数 对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为"完美数". 给定一个 正整数 n, 如果他是完美数,返回 True,否则返回 False 示例: ...
- 507 Perfect Number 完美数
对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”.给定一个 正整数 n, 如果他是完美数,返回 True,否则返回 False示例:输入: 28输出: True解释: ...
- Java实现 LeetCode 507 完美数
507. 完美数 对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为"完美数". 给定一个 整数 n, 如果他是完美数,返回 True,否则返回 False ...
随机推荐
- ruby web性能响应时间
可以统计单个web页面加载时间. require 'watir-webdriver' require 'watir-webdriver-performance' b = Watir::Browser. ...
- 曲演杂坛--SQLCMD下执行命令失败但没有任何错误提示的坑
今天使用SQLCMD导入到SQL SERVER数据库中,看着数据文件都成功执行,但是意外发现有一个文件数据没有成功导入,但执行不报错,很容易导致问题被忽略. 使用存在问题的文件做下测试,从界面上看几行 ...
- iOS软件架构——架构模式(Architectural Pattern)
一个架构模式描述软件系统里的基本的结构组织或纲要.架构模式提供一些事先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南.有些作者把这种架构模式叫做系统模式[STELTING02]. ...
- mysql中You can't specify target table for update in FROM clause
使用mysql在删除表中重复记录 delete from user where username in (select user name form(select username from user ...
- Beyond Compare V3.2.3 Beta 中文版
软件名称: Beyond Compare V3.2.3 Beta 中文版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win7 / Vista / Win2003 / WinXP 软件大小 ...
- WebForm 分页与组合查询
1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name) { List<Subject> ...
- 通过linux的iso镜像安装(RPM)扩展工具包
通过linux的iso镜像安装(RPM)扩展工具包 在linux安装软件时,现在越来越流行通过rpm指令安装完成,原因是:采用RPM安装简单方便:越来越多的软件提供RPM安装包:linux的IOS镜像 ...
- 《C++反汇编与逆向分析技术揭秘》——函数的工作原理
各种调用方式的考察 示例: cdecl方式是调用者清空堆栈: 如果执行的是fastcall: 借助两个寄存器传递参数: 参数1和2借助局部变量来存储: 返回值 如果返回值是结构体: 返回值存放在eax ...
- Swift3GCD
GCD的使用在Swift3中的方法 //串行队列 let q:DispatchQueue = DispatchQueue(label: "xiaosi") //并发队列 qos : ...
- ReactJS 生命周期、数据流与事件
React是一个JavaScript库文件,使用它的目的在于能够解决构建大的应用和数据的实时变更.该设计使用JSX允许你在构建标签结构时充分利用JavaScript的强大能力,而不必在笨拙的模板语言上 ...