ZOJ 3903 Ant(公式推导)
这个公式推导过程是看的这位大牛的http://blog.csdn.net/bigbigship/article/details/49123643

扩展欧几里德求模的逆元方法:
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std;
typedef long long ll;
const ll mod = 1e9 + ;
ll exgcd(ll a, ll b, ll &x, ll &y)
{
if (b == )
{
x = ;
y = ;
return a;
}
ll r = exgcd(b, a % b, x, y);
ll t = x % mod;
x = y % mod;
y = ((t - a / b * y) % mod + mod) % mod;
return r;
}
int main()
{
ll x, y;
ll inv2, inv4, inv6;
exgcd(, mod, inv2, y);
exgcd(, mod, inv4, y);
exgcd(, mod, inv6, y);
ll T, n;
printf("%lld, %lld, %lld\n", inv2, inv4, inv6);
scanf("%lld", &T);
while (T--)
{
scanf("%lld", &n);
n %= mod;
ll ans = (n * n % mod + n) % mod * n % mod * n % mod * inv2 % mod;
ans += ((n * (n + ) % mod) * n % mod * (n + ) % mod * inv2 % mod) % mod;
ans += (n + ) * n % mod * (n + ) % mod * ( * n + ) % mod * inv6 % mod;
ans =(((ans - n * n % mod * (n + ) % mod * (n + ) % mod * inv4 % mod + mod) % mod + mod) % mod);
printf("%lld\n", ans);
}
return ;
}
费马小定理求模的逆元法
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std;
typedef long long ll;
const ll mod = 1e9 + ;
ll power_mod(ll a, ll b, ll mod)
{
ll ans = ;
while (b)
{
if (b & ) ans = ans * a % mod;
a = a * a % mod;
b >>= ;
}
return ans;
}
int main()
{
ll inv2 = power_mod(, mod - , mod);
ll inv4 = power_mod(, mod - , mod);
ll inv6 = power_mod(, mod - , mod);
ll T, n;
scanf("%lld", &T);
while (T--)
{
scanf("%lld", &n);
n %= mod;
/*ll ans = (n * n % mod + n) % mod * n % mod * n % mod * inv2 % mod;
ans += ((n * (n + 1) % mod) * n % mod * (n + 1) % mod * inv2 % mod) % mod;
ans += (n + 2) * n % mod * (n + 1) % mod * (2 * n + 1) % mod * inv6 % mod;
ans =(((ans - n * n % mod * (n + 1) % mod * (n + 1) % mod * inv4 % mod + mod) % mod + mod) % mod);*/
ll ans = n * (n + ) % mod * n % mod * n % mod * inv2 % mod;
ans = (ans + n * (n + ) % mod * n % mod * (n + ) % mod * inv2 % mod) % mod;
ans = (ans + n * (n + ) % mod * (n + ) % mod * ( * n + ) % mod * inv6 % mod) % mod;
ans = (ans - n * n % mod * (n + ) % mod * (n + ) % mod * inv4 % mod + mod) % mod;
printf("%lld\n", ans);
}
return ;
}
ZOJ 3903 Ant(公式推导)的更多相关文章
- ZOJ 3903 Ant(数学,推公示+乘法逆元)
Ant Time Limit: 1 Second Memory Limit: 32768 KB There is an ant named Alice. Alice likes going ...
- ZOJ 3903 Ant ZOJ Monthly, October 2015 - A
Ant Time Limit: 1 Second Memory Limit: 32768 KB There is an ant named Alice. Alice likes going ...
- zoj 1199 几何公式推导
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=199 Point of Intersection Time Limit: ...
- HZNU Training 1 for Zhejiang Provincial Collegiate Programming Contest
赛后总结: TJ:今天我先到实验室,开始看题,一眼就看了一道防AK的题目,还居然觉得自己能做wwww.然后金姐和彭彭来了以后,我和他们讲了点题目.然后金姐开始搞dfs,我和彭彭看榜研究F题.想了很久脑 ...
- zoj 1671 Walking Ant【简单bfs】
Walking Ant Time Limit: 2 Seconds Memory Limit: 65536 KB Ants are quite diligent. They sometime ...
- zoj 1671 Walking Ant
Walking Ant Time Limit: 2 Seconds Memory Limit: 65536 KB Ants are quite diligent. They sometime ...
- HDU 4870 Rating(概率、期望、推公式) && ZOJ 3415 Zhou Yu
其实zoj 3415不是应该叫Yu Zhou吗...碰到ZOJ 3415之后用了第二个参考网址的方法去求通项,然后这次碰到4870不会搞.参考了chanme的,然后重新把周瑜跟排名都反复推导(不是推倒 ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- ZOJ 3279-Ants(线段树)
传送门:zoj 3279 Ants Ants Time Limit: 2 Seconds Memory Limit: 32768 KB echo is a curious and cleve ...
随机推荐
- Junit 源码剖析(二)
junit4 下的所有的testcase都是在Runner下执行的, 可以将Runner理解为junit运行的容器, 默认情况下junit会使用JUnit4ClassRunner作为所有testcas ...
- 查看linux服务器版本
cat /etc/issue Welcome to SUSE Linux Enterprise Server 10 SP1 (x86_64) - Kernel \r (\l).
- Linux内核监控模块-0-开篇简介
最近做了一个关于Linux内核编程的项目,主要实现的功能是对文件系统的监控. 我采用的方式是将监控的功能做成一个可加载模块(LKM)的形式,动态加载到Linux内核中.在这个内核层的“监控模块”中,我 ...
- [BZOJ - 2631] tree 【LCT】
题目链接:BZOJ - 2631 题目分析 LCT,像线段树区间乘,区间加那样打标记. 这道题我调了一下午. 提交之后TLE了,我一直以为是写错了导致了死循环. 于是一直在排查错误.直到.. 直到我看 ...
- Palindrome
poj3974:http://poj.org/problem?id=3974 题意:求给定长度最长回文串的长度. 题解:直接套manacher,搞定. #include<iostream> ...
- I2C总线之(三)---以C语言理解IIC
为了加深对I2C总线的理解,用C语言模拟IIC总线,边看源代码边读波形: 如下图所示的写操作的时序图: 读时序的理解同理.对于时序不理解的朋友请参考“I2C总线之(二)---时序” 完整的程序如下: ...
- 在多台服务器上简单实现Redis的数据主从复制
Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构.下面我演示下怎样在多台服务器上 ...
- TCP协议状态简介
原文出自:Vimer的程序世界 1.建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1.(2) 服务器端回应客户端的,这是三次握手中的第2个报文, ...
- Border - SGU 133(排序)
题目大意:有N对区间现在剔除一些区间,这些区间被另一些区间完全包含,如,Ai<Bi, Bj<Aj, A完全包含B,求出来这样被包含的区间个数. 分析:首先按照第一个数字先进行一下排序,然后 ...
- A Round Peg in a Ground Hole - POJ 1584 (判断凸多边形&判断点在多边形内&判断圆在多边形内)
题目大意:首先给一个圆的半径和圆心,然后给一个多边形的所有点(多边形按照顺时针或者逆时针给的),求,这个多边形是否是凸多边形,如果是凸多边形在判断这个圆是否在这个凸多边形内. 分析:判断凸多边形可 ...