找规律/数位DP HDOJ 4722 Good Numbers
/*
找规律/数位DP:我做的时候差一点做出来了,只是不知道最后的 is_one ()
http://www.cnblogs.com/crazyapple/p/3315436.html
数位DP:http://blog.csdn.net/libin56842/article/details/11580497
*/
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
using namespace std; const int MAXN = 1e5 + ;
const int INF = 0x3f3f3f3f; int is_one(long long n)
{
long long m = n;
long long i = n / * ; for (; i<=m; ++i)
{
long long tmp = i; int sum = ;
while (tmp)
{
sum += tmp % ;
tmp /= ;
}
if (sum % == ) return ;
} return ;
} long long get_num(long long n)
{
if (n < ) return ;
if (n <= ) return ; return n/ + is_one (n);
} int main(void) //HDOJ 4722 Good Numbers
{
//freopen ("G.in", "r", stdin); int t, cas = ;
long long l, r;
scanf ("%d", &t);
while (t--)
{
scanf ("%I64d%I64d", &l, &r); printf ("Case #%d: %I64d\n", ++cas, get_num (r) - get_num (l-));
} return ;
} /*
Case #1: 0
Case #2: 1
Case #3: 1
*/
/*
数位DP:基础题,对于一个数,把它每位数分出来,从最高位开始枚举。dp[i][(j+k)%10] += dp[i+1][j];
dp[i][j]表示前i位数和取模是j的个数
*/
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std; typedef long long ll;
const int MAXN = ;
const int INF = 0x3f3f3f3f;
ll dp[MAXN][MAXN];
int dig[MAXN]; ll work(ll n) {
ll tmp = n; int len = ;
memset (dig, , sizeof (dig));
while (tmp) {
dig[++len] = tmp % ;
tmp /= ;
}
memset (dp, , sizeof (dp)); int x = ;
for (int i=len; i>=; --i) {
for (int j=; j<; ++j) {
for (int k=; k<; ++k) {
dp[i][(j+k)%] += dp[i+][j];
}
}
for (int j=; j<dig[i]; ++j) dp[i][(x+j)%]++;
x = (x + dig[i]) % ;
}
if (!x) dp[][]++;
return dp[][];
} int main(void) { //HDOJ 4722 Good Numbers
int T, cas = ; scanf ("%d", &T);
while (T--) {
ll l, r; scanf ("%I64d%I64d", &l, &r);
printf ("Case #%d: %I64d\n", ++cas, work (r) - work (l-));
} return ;
}
数位DP
找规律/数位DP HDOJ 4722 Good Numbers的更多相关文章
- Codeforces D. Little Elephant and Interval(思维找规律数位dp)
题目描述: Little Elephant and Interval time limit per test 2 seconds memory limit per test 256 megabytes ...
- 2017年icpc西安网络赛 Maximum Flow (找规律+数位dp)
题目 https://nanti.jisuanke.com/t/17118 题意 有n个点0,1,2...n-1,对于一个点对(i,j)满足i<j,那么连一条边,边权为i xor j,求0到n- ...
- CF809C(找规律+数位DP)
老年选手需要多写一些思维题qwq. 通过打表很容易发现对于(i,j),值为(i-1)^(j-1)+1,然后本题就没了qwq. 矩阵差分还是很容易想到的,容斥成四个矩阵. 然后看到异或很容易想到三件事: ...
- [数位dp] spoj 10738 Ra-One Numbers
题意:给定x.y.为[x,y]之间有多少个数的偶数位和减去奇数位和等于一. 个位是第一位. 样例: 10=1-0=1 所以10是这种数 思路:数位dp[i][sum][ok] i位和为sum 是否含有 ...
- hdu 4722 Good Numbers 规律 数位dp
#include<iostream> #include<cstring> #include<cstdio> #include<vector> #incl ...
- Codeforces Round #260 (Div. 2) A , B , C 标记,找规律 , dp
A. Laptops time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- 数位DP CF 55D Beautiful numbers
题目链接 题意:定义"beautiful number"为一个数n能整除所有数位上非0的数字 分析:即n是数位所有数字的最小公倍数的倍数.LCM(1到9)=2520.n满足是252 ...
- 【数位DP】CF55D Beautiful numbers
$dp[x][p][pp]$表示第x位,当前已有数字mod 2520(1~9数字的lcm)为p,当前各位数字的lcm为pp 观察到数组太大,考虑压缩,第三维lcm最多只有9个数字,打表发现最多只有48 ...
- 剑指 Offer 44. 数字序列中某一位的数字 + 找规律 + 数位
剑指 Offer 44. 数字序列中某一位的数字 Offer_44 题目描述 题解分析 java代码 package com.walegarrett.offer; /** * @Author Wale ...
随机推荐
- HDU 2577 How to Type(dp题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2577 解题报告:有一个长度在100以内的字符串,并且这个字符串只有大写和小写字母组成,现在要把这些字符 ...
- 关于NGUI的动态加载后的刷新显示问题,解决办法!!
http://momowing.diandian.com/post/2012-09-06/40038001275 最近碰NGUI用到它的动态列表功能(ps:就是加东西,删除东西).我这里用的是UIDr ...
- ASP注入靶机
ASP: <% Dim Db,MyDbPath dim conn '可修改设置一:========================定义数据库类别,1为SQL数据库,0为Access数据库 ...
- 在ubuntu 15.04下安装VMware Tools
提出问题:在Ubuntu 15. 04版本上,不能实现剪贴板的共享 解决方法:发现没有装VMware Tools 安装VMware Tools步骤 1. 点击菜单栏,虚拟机 → 安装VMware工具 ...
- MySQL关闭过程详解和安全关闭MySQL的方法
MySQL关闭过程详解和安全关闭MySQL的方法 www.hongkevip.com 时间: -- : 阅读: 整理: 红客VIP 分享到: 红客VIP(http://www.hongkevip.co ...
- java前三本基础知识总结
基础软件:1:JDK,JRE,JVM(一些参数和作用),GC(机制和算法),Class,Loader(机种作用,加载顺序) 2:环境搭建:JAVA_HOME,path,class 语言基础:引用类型: ...
- 《转载》三年建站之路走得一事无成 今来A5撞墙反思
本文转载自A5站的蚕丝被.如果给站长带来不便之处,请联系博主. 时间过得真快,记得上一次在A5写文章已经是一年前的事了,这其中是有原因的,今天就跟大家来聊聊三年来个人失败经历的撞墙反思,也给一些有着同 ...
- 15.含有指针成员的类的拷贝[ClassCopyConstructorWithPointerMember]
[题目] 下面是一个数组类的声明与实现.请分析这个类有什么问题,并针对存在的问题提出几种解决方案. C++ Code 123456789101112131415161718192021222324 ...
- JavaScript设计模式 - 单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 一.实现一个标准的单例模式,用一个变量来标志当前是否已经为某个类创建过对象, 如果是,则在下一次获取该对象实例时,直接返回之前创建的对 ...
- sublime text3侧边栏主题不生效问题解决
sublime text3主题插件: Seti_UI 插件安装: 在线安装:需要FQ window: ctrl+shift+p 找install package:之后搜索 Seti_UI 安装完成后需 ...