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 ...
随机推荐
- 结构-行为-样式-Bootstrap笔记
1.自上而下的内容布局,中间内容可变,应该用: <div class=" container-fluid"> <div class=" row" ...
- JMeter在Linux系统中的环境变量配置
下载: 在线下载jmeter(或者本地上传): wget http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmet ...
- 蓝桥杯 C语言 基础训练 数列排序
问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列.1<=n<=200 输入格式 第一行为一个整数n. 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000. 输 ...
- 第一百三十四节,JavaScript,封装库--遮罩锁屏
JavaScript,封装库--遮罩锁屏 封装库新增1个方法 /** zhe_zhao_suo_ping()方法,将一个区块元素设置成遮罩锁屏区块 * 注意:一般需要在css文件将元素设置成隐藏 ** ...
- Python map多线程
import os import PIL from multiprocessing import Pool from PIL import Image SIZE = (75,75) SAVE_DIRE ...
- linux中如何查看某一进程的启动时间
mark下: ps -p PID -o lstart 其中PID是进程的pid ps的参数好多啊,够摸索一下了
- sort vector - leetcode 新用法
179. Largest Number sort(num.begin(), num.end(), [](int a, int b){ return to_string(a)+to_string(b) ...
- 系统不识别某些Android设备:adb devices不显示问题解决
1.获取厂商android设备ID 电脑连接android设备,然后执行命令: system_profiler SPUSBDataType 2.将厂商ID添加到 adb_usb.ini 文件中 Mac ...
- USACO 3.2 Stringsobits
StringsobitsKim Schrijvers Consider an ordered set S of strings of N (1 <= N <= 31) bits. Bits ...
- 【转】【Egit】如何将eclipse中的项目上传至Git
1.下载egit插件 打开Eclipse,git需要eclipse授权,通过网页是无法下载egit的安装包的.在菜单栏依次打开eclipse→help→install new software→add ...