HDU 4722 Good Numbers 2013年四川省赛题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722

题目大意:给定一个区间,求区间中有多少个满足每位上的数的和是10的倍数。

解题思路:先打表暴力求出前200项符合条件的个数,然后再找规律。

0~9    0    1个

10~19  9   1个

20~-29  18  1个

0~100         10个

0~200         20个

基本规律:r/10-(l-1)/10;只需要找两端点是否在范围内即可

#include<cstdio>
#include <iostream>
using namespace std;
long long is(long long x)
{
 long long k,l,r,ans;
 l=x/10*10;
 r=(x/10+1)*10;//cout<<"l="<<l<<",r="<<r<<endl;
 for(long long i=l;i<r;i++)
 {
  k=i;ans=0;
  while(k!=0)
 {
  ans+=k%10;
  k/=10;
  //cout<<"k="<<k<<",ans="<<ans<<endl;
 }
 if(ans%10==0) {return i;}
 }
}
int main()
{
 int t;
 scanf("%d",&t);
 for(int ca=1;ca<=t;ca++)
 {
  long long a,b,sum;
  cin>>a>>b;
  long long l=(a-1)/10,r=(b)/10;
  sum=r-l;
  if(is(a-1)<=(a-1)) sum-=1;
  if(is(b)<=b) sum+=1;
 //if(a!=0) sum-=1;
  printf("Case #%d: %lld\n",ca,sum);
 }
 return 0;
}
时间: 2024-08-07 16:43:56

HDU 4722 Good Numbers 2013年四川省赛题的相关文章

hdu 4722 Good Numbers(dp)

public static void main(String[] args) { String a=null; if("aa".equals(a))//这种情形,不出现空指针异常 //if(a.equals("aa"))//出现空指针异常 { System.out.println(true); } else { System.out.println(false); } } 上面的两句不同的比较语句测试,第一句不出现空指针异常,第二句出现. 所以在变量和常量比较的时候

hdu 4779 Tower Defense 2013杭州现场赛

1 /** 2 题意: 有两种塔,重塔,轻塔.每种塔,能攻击他所在的一行和他所在的一列, 轻塔不 能被攻击,而重塔可以被至多一个塔攻击,也就是说重塔只能被重塔攻击.在一个n*m 的矩阵中,最少放一个塔,可放多个 3 问,给定p个重塔,q个轻塔,问有多少种放法.. 4 5 思路: 1. 一行中有两个重塔, 6 2. 一列中有两个重塔 7 3. 在该行及在该行塔所在的列只有一个塔,重塔或者轻塔. 8 对以上三种情况 9 挨个处理: 10 1. 设有i行有两个重塔,j列有两个重塔,则一共占 i+2*j

hdu 4722 Good Numbers(初涉数位dp)

http://acm.hdu.edu.cn/showproblem.php?pid=4722 大致题意:若一个整数的各位数字之和是10的倍数,称这个数为"good number".给出区间[A,B],求出该区间内"good number"的数的个数. 第一道数位dp,折腾了半天才明白怎么回事. 设dp[site][mod]表示到第site位(由高位向低位)前面各位数字之和对10取余为mod的数的个数,进行记忆化搜索.有两个很重要的点,首先是变量up,表示是否到达边界

HDU 4722 Good Numbers (数位dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722 思路:数位dp,dp[i][j]表示到第i位,数字和%10为j,然后进行dp,注意完全匹配的情况是要+1,而其他情况是从0 到 9 都要考虑 代码: #include <stdio.h> #include <string.h> #include <algorithm> #include <iostream> using namespace std; int

hdu 4089 不错的DP 北京现场赛题

http://acm.hdu.edu.cn/showproblem.php?pid=4089 还有疑惑,需要重新推: 但是学到的: 1.A=a+b+c  abc是三种情况,那么P(A)=a*P(a->事件)+b*P(b->事件)+c*P(c->事件); a->事件意思是 在a情况下的事件,就是全概率公式的思想吧 2.一定注意每一步会不会出现分母为0 的情况,以及预处理的时候对于一些特殊情况导致自己的式子会出现分母为0的排除掉 3.概率DP经常出现推出了式子但是自己不会写代码的情况,

hdu 4722 Good Numbers(数位dp)

Good Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3453    Accepted Submission(s): 1090 Problem Description If we sum up every digit of a number and the result can be exactly divided

HDU - 4722 Good Numbers 【找规律 or 数位dp模板】

If we sum up every digit of a number and the result can be exactly divided by 10, we say this number is a good number. You are required to count the number of good numbers in the range from A to B, inclusive. InputThe first line has a number T (T <=

SCU 4436 Easy Math 2015年四川省赛题

题目链接:http://acm.scu.edu.cn/soj/problem/4436/ 题意:给你n个整数,求这n个数的平方根和是否是一个整数: 解题思路:如果这题每个数给他算出来,必然费时间,可能还会超精度,所以巧妙的方法就是判断这些整数是否全是完全平方数,如果有一个不是,则他们的平方根和肯定不是一个整数. AC代码: #include <cstdio> #include <cmath> #include <cstring> #include <algorit

(未完毕)电子设计省赛--2013年国赛题

//2014年4月17日 //2014年6月20日入"未完毕" 主要是功率因数校正 一种方案是 fft 算频谱,来实现. 学长当时用的是STM32的dsp库.结果表现不好. (频谱泄露比較严重) 怎样学长用的是同一时候採样电流和电压(包含相位).用功率因数的原本式子来计算,表现非常好.