ACM_同余+暴力找规律
Problem Description:
锴神:我尊重作者原意,你们出什么我就加什么。于是小光打了道水题(也就是这道),但是呢比赛的时候拿着自己的标程却AC不了,最后只能尴尬地打表!!为毛呢?!请你来看看这道题,为了缓解小光的尴尬,他决定不告诉你样例输入输出,神马?!没有输入输出?对,就是这么贼!
Input:
多组数据,输入n,求(1^n+2^n+3^n+4^n)mod 5,其中n范围是[10^5,10^(10^5)],数字可能有前导0。
Output:
当然是结果啦~
Sample Input:
不给你
Sample Output:
就是不给你
解题思路:题目的意思很简单,已经提示要找规律,于是(快速幂)暴力枚举查找,发现如果是4的倍数,计算结果是4,否则为0。其中红色部分n的区间数的位数是5位数到10万位数,因此字符串长度开10^5+5即可。注意读取的字符串可能前导有0,所以要去掉前导的'0'。
测试代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL mod_pow(LL base,LL n,LL mod){//快速幂
LL res=;
while(n){
if(n&)res=res*base%mod;
base=base*base%mod;
n>>=;
}
return res;
}
int main(){
LL sum=;//测试
for(int i=;i<;++i){
sum=(mod_pow(,i,)+mod_pow(,i,)+mod_pow(,i,)+)%;
cout<<i<<' '<<sum<<endl;
if(i%==)cout<<i<<"是可以的"<<endl;
}
return ;
}
AC代码:
#include<bits/stdc++.h>
using namespace std;
char s[];
int main(){
while(cin>>s){
int sum=,j=;
while(s[j]=='')++j;//去掉前导0
for(int i=j;i<(int)strlen(s);++i)
sum=(sum*+(s[i]-'')%)%;//同余方程
if(sum)cout<<''<<endl;//如果sum不是0则结果为0,否则为4
else cout<<''<<endl;
}
return ;
}
同余定理的还有:hdu 1212 Big Number
ACM_同余+暴力找规律的更多相关文章
- ZOJ 3939 The Lucky Week (暴力找规律)
题意:给定一个幸运日,求第 k 个幸运日是多少. 析:由于闰年,每400肯定会循环一次,所以我们就可以先找出每400年会有多少幸运日,是2058个,然后再暴力. 代码如下: #pragma comme ...
- Codeforces Round #265 (Div. 2) C 暴力+ 找规律+ 贪心
C. No to Palindromes! time limit per test 1 second memory limit per test 256 megabytes input standar ...
- BZOJ 1002 FJOI 2007 轮状病毒 暴力+找规律+高精度
题目大意: 思路:基尔霍夫矩阵求生成树个数,不会. 可是能够暴力打表.(我才不会说我调试force调试了20分钟... CODE(force.cc): #include <cstdio> ...
- ZZNU-oj-2141:2333--【O(N)求一个数字串能整除3的连续子串的个数,前缀和数组+对3取余组合数找规律】
2141: 2333 题目描述 “别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“ 宝儿姐考察你一道很简单的题目.给你一个数字串,你能判断有多少个连续子串能整除3吗? 输入 多实例输入,以E ...
- hdu 4708(暴力+找规律)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4708 思路:由于N不大,并且我们可以发现通过旋转得到的4个对角线的点的位置关系,以及所要旋转的最小步数 ...
- hdu 3951 - Coin Game(找规律)
这道题是有规律的博弈题目,,, 所以我们只需要找出规律来就ok了 牛人用sg函数暴力找规律,菜鸟手工模拟以求规律...[牢骚] if(m>=2) { if(n<=m) {first第一口就 ...
- 【poj 2478】Farey Sequence(数论--欧拉函数 找规律求前缀和)
题意:定义 Fn 序列表示一串 <1 的分数,分数为最简分数,且分母 ≤n .问该序列的个数.(2≤N≤10^6) 解法:先暴力找规律(代码见屏蔽处),发现 Fn 序列的个数就是 Φ(1)~Φ( ...
- 【ZOJ】3785 What day is that day? ——浅谈KMP在ACM竞赛中的暴力打表找规律中的应用
转载请声明出处:http://www.cnblogs.com/kevince/p/3887827.html ——By Kevince 首先声明一下,这里的规律指的是循环,即找到最小循环周期. 这 ...
- bzoj1002 轮状病毒 暴力打标找规律/基尔霍夫矩阵+高斯消元
基本思路: 1.先观察规律,写写画画未果 2.写程序暴力打表找规律,找出规律 1-15的答案:1 5 16 45 121 320 841 2205 5776 151 ...
随机推荐
- openjudge6252 带通配符的字符串匹配
描述 通配符是一类键盘字符,当我们不知道真正字符或者不想键入完整名字时,常常使用通配符代替一个或多个真正字符.通配符有问号(?)和星号(*)等,其中,“?”可以代替一个字符,而“*”可以代替零个或多个 ...
- 2017年12月14日 一个Java开发的Python之路----------------(二)
说一个收获最大的,就是这个关闭流对象 之前写java读取文件的时候,最后往往要关闭流对象,以前我一直不明白,为什么,我不使用.close()方法,文件也可以读取成功,总感觉没有什么意义 原来是因为,这 ...
- android中后一个activity传值给前一个activity的实现
前一个activity跳转到后一个activity设置code: Intent intent=new Intent(MainActivity.this,ActivityTwo.class); star ...
- 51nod 1010 只包含因子2 3 5的数 && poj - 1338 Ugly Numbers(打表)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1010 http://poj.org/problem?id=1338 首先 ...
- [bzoj4131]并行博弈_博弈论
并行博弈 bzoj-4131 题目大意:题目链接. 注释:略. 想法:我们发现无论如何操作都会使得$(1,1)$发生改变. 所以单个$ACG$的胜利条件就是$(1,1)$是否为黑色. 如果为黑色那么可 ...
- 笔记:Javac编译器
Javac编译器是把 *.java 文件转换为 *.class 文件,是一个前端编译器:对应着有一种把字节码转变为机器码的编译器,称为JIT编译器(Just In Time Compiler),比如 ...
- Vue.js组件的通信之父组件向子父组件的通信
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- HDU 5074 Hatsune Miku 2014 Asia AnShan Regional Contest dp(水
简单dp #include <stdio.h> #include <cstring> #include <iostream> #include <map> ...
- springmvc 中model中放入枚举类型
我们直接看样例: Map<String, String> mallMap = new HashMap<String, String>(); mallMap.put(MallSt ...
- 1451 - Average 高速求平均值
怎样高速求取一段区间的平均值 用前缀的思想来看 很easy 可是 本题题意要求的是 大于等于一段长度的区间的平均值的最大值 并且给出的数据范围非常大 O(n*L)的直白比較算法 用于解决此问题不合适 ...