找规律/数位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 ...
随机推荐
- =============Python安装与使用================
用文本编辑器写Python程序,然后保存为后缀为.py的文件,就可以用Python直接运行这个程序了. Python的交互模式和直接运行.py文件有什么区别呢? 直接输入python进入交互模式,相当 ...
- Toast工具类,Android中不用再每次都写烦人的Toast了
package com.zhanggeng.contact.tools; /** * Toasttool can make you use Toast more easy ; * * @author ...
- 【Django】Django 如何使用 Django设置的日志?
代码: from django.core.management.base import BaseCommand, CommandError from django.db import models # ...
- 【Python】Python XML 读写
class ACTIVE_FILE_PROTECT_RULE_VIEW(APIView): renderer_classes = (JSONRenderer, BrowsableAPIRenderer ...
- 《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的顶级控件,或是引用母版页的嵌套母版页。”
VS2005下,添加了母版页这个控件,我们可以讲N个页面中共同的部分放在母版页来实现,并让WEB窗体集成自我们的母版页,就可以让我们的站点具有统一的风格了.在VS2005SP1之前的版本中,我们只能创 ...
- OpenWRT
如何查日志:http://blog.appdevp.com/archives/382 logread OpenWrt下创建crontab任务: 确保/etc/crontab/下有名为"roo ...
- python中的引用
作为一个python初学者,今天被一个python列表和词典引用的问题折磨了很久,但其实了解了缘由也很简单,记录在此备忘. 首先背书python中的引用对象问题: 1. python不允许程序员选择采 ...
- Objective-C 和 C++中指针的格式和.方法 和内存分配
最近在看cocos2d-x,于是打算复习一下C++,在这里简单对比下,留个念想. 先看看oc中指针的用法 @interface ViewController : UIViewController { ...
- iOS 中的Certificate,Provisioning Profile 等在code singing中用到的信息
注册apple id 有1年多了,这些概念还是模模糊糊的,决定在这里总结一下. 请参阅官方文档 App Distribution Guide code singing的作用如下: Code signi ...
- 在cmd命令行中弹出Windows对话框
有时候用bat写一些小脚本最后会弹出对话框提示操作成功,可以用mshta.exe来实现,它是Windows系统的相关程序,用来执行.HTA文件,一般计算机上面都有这个程序,实现如下: mshta vb ...