ACM学习历程—51NOD 1770数数字(循环节)

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1770

这是这次BSG白山极客挑战赛的A题。由于数字全部相同,乘上b必然会有循环节,于是模拟乘法,记录数据,出现循环就退出即可。

代码:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <set>
#include <map>
#include <queue>
#include <vector>
#include <string>
#define LL long long

using namespace std;

int a, b, d, n;

int main()
{
    //freopen("test.in", "r", stdin);
    int T, rest, to, pre;
    scanf("%d", &T);
    for (int times = 0; times < T; ++times)
    {
        int ans = 0, tmp;
        scanf("%d%d%d%d", &a, &b, &d, &n);
        rest = to = 0;
        pre = -1;
        for (int i = 0; i < n; ++i)
        {
            tmp = a*b+to;
            to = tmp/10;
            rest = tmp%10;
            if (tmp == pre)
            {
                if (rest == d) ans += n-i;
                break;
            }
            pre = tmp;
            if (rest == d) ans++;
        }
        if (to != 0 && to == d) ans++;
        printf("%d\n", ans);
    }
    return 0;
}

时间: 2024-11-10 11:31:37

ACM学习历程—51NOD 1770数数字(循环节)的相关文章

51nod 1770 数数字

1770 数数字 基准时间限制:1 秒 空间限制:262144 KB 分值: 20 难度:3级算法题  收藏  关注 统计一下 aaa ? aaan个a × b 的结果里面有多少个数字d,a,b,d均为一位数. 样例解释: 3333333333*3=9999999999,里面有10个9. Input 多组测试数据. 第一行有一个整数T,表示测试数据的数目.(1≤T≤5000) 接下来有T行,每一行表示一组测试数据,有4个整数a,b,d,n. (1≤a,b≤9,0≤d≤

ACM学习历程—51NOD 1412 AVL树的种类(递推)

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1770 这是这次BSG白山极客挑战赛的B题.设p(i, j)表示节点个数为i,高度为j的AVL树的个数. 那么,对于1 <= k <= i-1 p[i][j] += p[k][j-1]*p[i-1-k][j-1]%MOD; p[i][j] += p[k][j-2]*p[i-1-k][j-1]%MOD; p[i][j] += p[k][j-1]*p[i-1-k][j-2]

ACM学习历程—FZU2191完美的数字(数学)

Description Bob是个很喜欢数字的孩子,现在他正在研究一个与数字相关的题目,我们知道一个数字的完美度是 把这个数字分解成三个整数相乘A*A*B(0<A<=B)的方法数,例如数字80可以分解成1*1*80,2*2*20 ,4*4*5,所以80的完美度是3:数字5只有一种分解方法1*1*5,所以完美度是1,假设数字x的完美度为d(x),现在给定a,b(a<=b),请你帮Bob求出 S,S表示的是从a到b的所有数字的流行度之和,即S=d(a)+d(a+1)+…+d(b). Inpu

ACM学习历程—51NOD 1685 第K大区间2(二分 &amp;&amp; 树状数组 &amp;&amp; 中位数)

http://www.51nod.com/contest/problem.html#!problemId=1685 这是这次BSG白山极客挑战赛的E题. 这题可以二分答案t. 关键在于,对于一个t,如何判断它是否能成为第k大. 将序列中大于t的置为1,小于t的置为-1,等于t的置为0.那么区间中位数大于t的和就大于0,小于t的就小于0.于是就是判断区间和大于0的个数是否小于等于k. 维护前缀和sum(i),然后统计之前sum(j)小于sum(i)的有多少个,就是以i为右值的区间和大于0的个数.于

ACM学习历程—HDU 4726 Kia&#39;s Calculation( 贪心&amp;&amp;计数排序)

DescriptionDoctor Ghee is teaching Kia how to calculate the sum of two integers. But Kia is so careless and alway forget to carry a number when the sum of two digits exceeds 9. For example, when she calculates 4567+5789, she will get 9246, and for 12

1770 数数字

1770 数数字 基准时间限制:1 秒 空间限制:262144 KB 统计一下由数字a组成的n位数与b相乘结果中含有多少个数字d; (引自原题目) 样例解释: 3333333333*3=9999999999,里面有10个9. Input 多组测试数据. 第一行有一个整数T,表示测试数据的数目.(1≤T≤5000) 接下来有T行,每一行表示一组测试数据,有4个整数a,b,d,n. (1≤a,b≤9,0≤d≤9,1≤n≤10^9) Output 对于每一组数据,输出一个整数占一行,表示答案. Inp

ACM学习历程—HDU 5023 A Corrupt Mayor&#39;s Performance Art(广州赛区网赛)(线段树)

Problem Description Corrupt governors always find ways to get dirty money. Paint something, then sell the worthless painting at a high price to someone who wants to bribe him/her on an auction, this seemed a safe way for mayor X to make money. Becaus

ACM学习历程—UESTC 1226 Huatuo&#39;s Medicine(数学)(2015CCPC L)

题目链接:http://acm.uestc.edu.cn/#/problem/show/1226 题目就是构造一个对称的串,除了中间的那个只有1个,其余的两边都是对称的两个,自然答案就是2*n-1. 代码: #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <algorithm> #

ACM学习历程—HDU 5451 Best Solver(Fibonacci数列 &amp;&amp; 快速幂)(2015长春网赛1007题)

Problem Description The so-called best problem solver can easily solve this problem, with his/her childhood sweetheart. It is known that y=(5+2√6)^(1+2^x).For a given integer x (0≤x<2^32) and a given prime number M (M≤46337) , print [y]%M . ([y] mean