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 <= 10,000;
法1:xxx = (10m-1)/9*x;但是n太大,需要同时mod。去除分母将式子变为:10m*x%(9k) - x%(9k) =? 9c ;其中 10m 快速二次幂即可;
时间复杂度为O(logn)
法2: 由于m个x数的产生对于mod具有可拆分性,所以直接求解周期即可;
- #include<bits/stdc++.h>
- using namespace std;
- #define rep0(i,l,r) for(int i = (l);i < (r);i++)
- #define rep1(i,l,r) for(int i = (l);i <= (r);i++)
- #define rep_0(i,r,l) for(int i = (r);i > (l);i--)
- #define rep_1(i,r,l) for(int i = (r);i >= (l);i--)
- #define MS0(a) memset(a,0,sizeof(a))
- #define MS1(a) memset(a,-1,sizeof(a))
- #define MSi(a) memset(a,0x3f,sizeof(a))
- #define inf 0x3f3f3f3f
- #define lson l, m, rt << 1
- #define rson m+1, r, rt << 1|1
- typedef pair<int,int> PII;
- #define A first
- #define B second
- #define MK make_pair
- typedef long long ll;
- typedef unsigned int uint;
- template<typename T>
- void read1(T &m)
- {
- T x=,f=;char ch=getchar();
- while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
- while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
- m = x*f;
- }
- template<typename T>
- void read2(T &a,T &b){read1(a);read1(b);}
- template<typename T>
- void read3(T &a,T &b,T &c){read1(a);read1(b);read1(c);}
- template<typename T>
- void out(T a)
- {
- if(a>) out(a/);
- putchar(a%+'');
- }
- const int maxn = 1e4+;
- int mp[maxn], rk[maxn];
- int main()
- {
- //freopen("data.txt","r",stdin);
- //freopen("out.txt","w",stdout);
- int T, kase = ;
- scanf("%d",&T);
- while(T--){
- MS1(mp);
- ll x, m, k, c, circle = -, aux = , start;
- read2(x,m); read2(k,c);
- rep1(i,,m){
- aux = (aux*+x)%k;
- rk[i] = aux;
- if(mp[rk[i]] != -){
- circle = i - mp[rk[i]];
- start = mp[rk[i]];
- break;
- }
- mp[rk[i]] = i;
- }
- //printf("\n%lld %lld\n\n",start,circle);
- printf("Case #%d:\n",kase++);
- if(circle == -)
- puts(aux == c?"Yes":"No");
- else{
- int ans = rk[(m - start)%circle + start];
- puts(ans == c?"Yes":"No");
- }
- }
- return ;
- }
hdu 5690 2016"百度之星" - 初赛(Astar Round2A) All X 快速二次幂 || 寻找周期的更多相关文章
- 2016百度之星-初赛(Astar Round2A)AII X
Problem Description F(x,m) 代表一个全是由数字x组成的m位数字.请计算,以下式子是否成立: F(x,m) mod k ≡ c Input 第一行一个整数T,表示T组数据. 每 ...
- 2016"百度之星" - 初赛(Astar Round2B) 1006 中位数计数
思路:统计当前数左边比它小|大 i个人,相应右边就应该是比它大|小i个人 l数组表示左边i个人的方案 r表示右边i个人的方案 数组下标不可能是负数所以要加n //#pragma comment(lin ...
- HDU 5690:2016"百度之星" - 初赛 All X
原文链接:https://www.dreamwings.cn/hdu5690/2657.html All X Time Limit: 2000/1000 MS (Java/Others) Mem ...
- 2016"百度之星" - 初赛(Astar Round2A)HDU 5695 拓扑排序+优先队列
Gym Class Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- 2016百度之星 初赛2A ABEF
只做了1001 1002 1005 1006.剩下2题可能以后补? http://acm.hdu.edu.cn/search.php?field=problem&key=2016%22%B0% ...
- 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 ...
- 2016"百度之星" - 初赛(Astar Round2A)1002 / HDU 5691 状态压缩DP
Sitting in Line Problem Description 度度熊是他同时代中最伟大的数学家,一切数字都要听命于他.现在,又到了度度熊和他的数字仆人们玩排排坐游戏的时候了.游戏的规则十 ...
- 2016"百度之星" - 初赛(Astar Round2A)
题目链接: http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=701 1001 : 矩阵快速幂 #include <iostre ...
- 杭电acm5698-瞬间移动(2016"百度之星" - 初赛(Astar Round2B))
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5698 Problem Description 有一个无限大的矩形,初始时你在左上角(即第一行第一列), ...
随机推荐
- UITextField的简单操作和实际应用
UITestField UITestField* testField = [UITestField alloc]initWithFrame]; /* 设置边框样式 typedef NS_ENUM(NS ...
- ARC 和 MRC 小结
ARC 和 MRC 内存管理 从 MRC—>ARC 就是将内存管理部分,从开发者的函数中转移到函数外部的runtime 中.由于 runtime 的开发简单,逻辑层次高,所以 runtime 的 ...
- iOS UITableView的一些方法
项目中用到的一些tabview 问题及对应方法: 一.tableview 1.下划线左对齐 //步骤一:(加在 viewdidload方法中) if([tabView respondsToSelect ...
- linux_机器信息查询
查看系统版本:[root@css-management ~]# lsb_release -aLSB Version: :core-4.0-amd64:core-4.0-noarch:graphics- ...
- C++构造/析构/赋值函数
在编写C++程序的时候,我们会为特定某一类对象申明类类型,几乎我们申明的每一个class都会有一个或多个构造函数.一个析构函数.一个赋值运算符重载=.以及拷贝构造函数.这些函数控制着类对象的基础操作, ...
- 以NameValueCollection 修改URL中的查询参数
以NameValueCollection 修改URL中的查询参数 本文参考于:http://www.c-sharpcorner.com/Blogs/9421/add-remove-or-modify- ...
- Speex回声消除代码分析
先说明下,这里的代码流程是修改过的Speex流程,但与Speex代码差异不大,应该不影响阅读. (1)用RemoveDCoffset函数进行去直流 (2)远端信号预加重后放入x[i+frame_s ...
- [__NSCFNumber length]: unrecognized selector sent to instance 0x8b3c310
出现这种问题一般是你把int类型的数值赋给了NSString. 比如: 你定义了一个NSString类型的属性sex,但是服务端返回的sex字段实际上是NSNumber类型, 你直接把NSNumber ...
- 编译项目报错: Ignoring file / xxx , missing required architecture i386 in file / xxx (2 slices)
.lib 或者 .a需用于真机版本,也就是ARM7的,如果你编译的是模拟器就会出现这个错误: 选择真机调试即可 .
- Android文字转语音
虽然视觉上的反馈通常是给用户提供信息最快的方式,但这要求用户把注意力设备上.当用户不能查看设备时,则需要一些其他通信的方法.Android提供了强大的文字转语音Text-to-Speech,TTS A ...