All X

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1472 Accepted Submission(s): 658 Problem Description
F(x,m) 代表一个全是由数字x组成的m位数字。请计算,以下式子是否成立: F(x,m) mod k ≡ c Input
第一行一个整数T,表示T组数据。
每组测试数据占一行,包含四个数字x,m,k,c 1≤x≤9 1≤m≤1010 0≤c<k≤10,000 Output
对于每组数据,输出两行:
第一行输出:"Case #i:"。i代表第i组测试数据。
第二行输出“Yes” 或者 “No”,代表四个数字,是否能够满足题目中给的公式。 Sample Input
3
1 3 5 2
1 3 5 1
3 5 99 69 Sample Output
Case #1:
No
Case #2:
Yes
Case #3:
Yes Hint 对于第一组测试数据:111 mod 5 = 1,公式不成立,所以答案是”No”,而第二组测试数据中满足如上公式,所以答案是 “Yes”。

分析:

这道题对我来说简直惊艳:

m个x用数学公式表示:[(10^m)-1]/9*x·························@1

所以题目中的问题用数学公式表示:

@1%k=c?

因为/9会产生精度的损失,所以我们把上式两边同时乘以9:

[(10^m)-1)]*x%9k=9*c?···································@2

于是,我们可以用快速幂+取模计算,并得到答案。

这里强调一条性质:(a*b)%c<===>(a%c * b%c) %c

#include<iostream>
#include<stdio.h>
using namespace std;
long long fast_exp(int base,long long exp,int mod)
{
long long ans=1LL,a=base;
while(exp!=)
{
if(exp&1LL) ans*=a,ans%=mod;
a*=a,a%=mod;
exp>>=;
}
return ans%mod;
}
int main()
{
int t;
scanf("%d",&t);
int cas=;
while(t--)
{
int x,k,c;
long long m;
scanf("%d%I64d%d%d",&x,&m,&k,&c);
long long tmp=fast_exp(,m,0x3f3f3f3f);
//cout<<tmp<<endl;
long long ans= (fast_exp(,m,*k)-)%(*k);
printf("Case #%d:\n",cas++);
if(((ans*x)%(*k))==c*)
printf("Yes\n");
else
printf("No\n"); }
}

hdu 5690 All x的更多相关文章

  1. hdu 5690 2016"百度之星" - 初赛(Astar Round2A) All X 快速二次幂 || 寻找周期

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5690 题意:m个数字全为x mod k ?= c;其中m <= 1010,0 < c,k ...

  2. HDU 5690 All X 数学

    All X 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5690 Description F(x,m) 代表一个全是由数字x组成的m位数字.请计算, ...

  3. 百度之星初赛2A 1001 ALL X(HDU 5690)

    All X Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  4. HDU 5690:2016"百度之星" - 初赛 All X

    原文链接:https://www.dreamwings.cn/hdu5690/2657.html All X Time Limit: 2000/1000 MS (Java/Others)    Mem ...

  5. HDU 5690 All X 暴力循环节

    分析:暴力找循环节就好了 #include <iostream> #include <cstdio> #include <cstdlib> #include < ...

  6. HDU 5690——All X——————【快速幂 | 循环节】

    All X Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  7. 2016"百度之星" - 初赛(Astar Round2A)--HDU 5690 |数学转化+快速幂

    Sample Input 3 1 3 5 2 1 3 5 1 3 5 99 69   Sample Output Case #1: No Case #2: Yes Case #3: Yes Hint ...

  8. HDU 5690 矩阵快速幂

    All X Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  9. hdu 5690(模运算)

    All X Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

随机推荐

  1. Java for LeetCode 230 Kth Smallest Element in a BST

    解题思路: 直接修改中序遍历函数即可,JAVA实现如下: int res = 0; int k = 0; public int kthSmallest(TreeNode root, int k) { ...

  2. Metro各种流转换

    Ibuffer转byte[] ,(int)buffer.Length); Byte[]转Ibuffer WindowsRuntimeBufferExtensions.AsBuffer(bytes,,b ...

  3. PL/Proxy介绍

    PL/Proxy 介绍 一.概述 1.PL/Proxy 是一个采用PL Language语言的数据库分区系统. 目的:轻松访问分区数据库 它的理念是代理远程函数体内指定.函数调用同样标签创建的函数,所 ...

  4. ClassLoad的加载过程及分析

    -Xbootclasspath:bootclasspath 让jvm从指定路径(可以是分号分隔的目录.jar.或者zip)中加载bootclass,用来替换jdk的rt.jar:若非必要,一般不会用到 ...

  5. 获取http请求响应头

    一直都是在给服务器端发送请求的时候可能会出现设置头文件的情况,但这次获取HTTP 返回的头文件,着实让我纠结一番,但最终还是实现了,总结一下.(PS:其实最后方法很简单,只是分享一下纠结过程) 先看一 ...

  6. python基础——装饰器

    python基础——装饰器 由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数. >>> def now(): ... print('2015-3-25 ...

  7. zmq-ios framwork

    1.附件见zeromq-ios.framework百度网盘/iOS/zmq 2.zeromq-ios.framework解压拖进工程文件 3.objc-zmq见百度网盘/iOS/zmq 4.objc- ...

  8. nyoj1007(euler 函数)

    euler(x)公式能计算小于等于x的并且和x互质的数的个数: 我们再看一下如何求小于等于n的和n互质的数的和, 我们用sum(n)表示: 若gcd(x, a)=1,则有gcd(x, x-a)=1: ...

  9. hdu 1541 Stars

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541 思路:要求求出不同等级的星星的个数,开始怎么也想不到用树状数组,看完某些大神的博客之后才用树状数 ...

  10. mysqli扩展库的预处理技术 mysqli stmt

    //预编译演示 //1,创建mysqli对象 $mysqli=new mysqli("localhost","root",""," ...